diff --git a/CodeEdit.xcodeproj/project.pbxproj b/CodeEdit.xcodeproj/project.pbxproj index 56acfca16..1ec8d8aa9 100644 --- a/CodeEdit.xcodeproj/project.pbxproj +++ b/CodeEdit.xcodeproj/project.pbxproj @@ -1622,7 +1622,7 @@ repositoryURL = "https://github.com/CodeEditApp/CodeEditSymbols"; requirement = { kind = exactVersion; - version = 0.2.2; + version = 0.2.3; }; }; 287136B1292A407E00E9F5F4 /* XCRemoteSwiftPackageReference "SwiftLintPlugin" */ = { @@ -1749,8 +1749,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/CodeEditApp/CodeEditSourceEditor"; requirement = { - kind = upToNextMajorVersion; - minimumVersion = 0.12.0; + kind = exactVersion; + version = 0.13.0; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/CodeEdit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/CodeEdit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 465ebbcf1..9a27060af 100644 --- a/CodeEdit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/CodeEdit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -33,8 +33,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/CodeEditApp/CodeEditSourceEditor", "state" : { - "revision" : "412b0a26cbeb3f3148a1933dd598c976defe92a6", - "version" : "0.12.0" + "revision" : "b96f270ab58bdbe0406de31d4c983d75732fccf5", + "version" : "0.13.0" } }, { @@ -42,8 +42,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/CodeEditApp/CodeEditSymbols", "state" : { - "revision" : "a794528172314f9be5d838f8579c4435895e0988", - "version" : "0.2.2" + "revision" : "ae69712b08571c4469c2ed5cd38ad9f19439793e", + "version" : "0.2.3" } }, { diff --git a/CodeEdit/Features/Editor/Views/CodeFileView.swift b/CodeEdit/Features/Editor/Views/CodeFileView.swift index ae5e167ad..ef0175131 100644 --- a/CodeEdit/Features/Editor/Views/CodeFileView.swift +++ b/CodeEdit/Features/Editor/Views/CodeFileView.swift @@ -50,6 +50,10 @@ struct CodeFileView: View { var useSystemCursor @AppSettings(\.textEditing.showMinimap) var showMinimap + @AppSettings(\.textEditing.reformatAtColumn) + var reformatAtColumn + @AppSettings(\.textEditing.showReformattingGuide) + var showReformattingGuide @Environment(\.colorScheme) private var colorScheme @@ -135,7 +139,9 @@ struct CodeFileView: View { useSystemCursor: useSystemCursor, undoManager: undoManager, coordinators: textViewCoordinators, - showMinimap: showMinimap + showMinimap: showMinimap, + reformatAtColumn: reformatAtColumn, + showReformattingGuide: showReformattingGuide ) .id(codeFile.fileURL) .background { diff --git a/CodeEdit/Features/Settings/Pages/TextEditingSettings/Models/TextEditingSettings.swift b/CodeEdit/Features/Settings/Pages/TextEditingSettings/Models/TextEditingSettings.swift index 3fa6a6bfc..ba54a4725 100644 --- a/CodeEdit/Features/Settings/Pages/TextEditingSettings/Models/TextEditingSettings.swift +++ b/CodeEdit/Features/Settings/Pages/TextEditingSettings/Models/TextEditingSettings.swift @@ -29,6 +29,8 @@ extension SettingsData { "Bracket Pair Emphasis", "Bracket Pair Highlight", "Show Minimap", + "Reformat at Column", + "Show Reformatting Guide", ] if #available(macOS 14.0, *) { keys.append("System Cursor") @@ -74,6 +76,12 @@ extension SettingsData { /// Toggle the minimap in the editor. var showMinimap: Bool = true + /// The column at which to reformat text + var reformatAtColumn: Int = 80 + + /// Show the reformatting guide in the editor + var showReformattingGuide: Bool = false + /// Default initializer init() { self.populateCommands() @@ -123,6 +131,11 @@ extension SettingsData { } self.showMinimap = try container.decodeIfPresent(Bool.self, forKey: .showMinimap) ?? true + self.reformatAtColumn = try container.decodeIfPresent(Int.self, forKey: .reformatAtColumn) ?? 80 + self.showReformattingGuide = try container.decodeIfPresent( + Bool.self, + forKey: .showReformattingGuide + ) ?? false self.populateCommands() } diff --git a/CodeEdit/Features/Settings/Pages/TextEditingSettings/TextEditingSettingsView.swift b/CodeEdit/Features/Settings/Pages/TextEditingSettings/TextEditingSettingsView.swift index fdaeeaaf4..d0b2bf22a 100644 --- a/CodeEdit/Features/Settings/Pages/TextEditingSettings/TextEditingSettingsView.swift +++ b/CodeEdit/Features/Settings/Pages/TextEditingSettings/TextEditingSettingsView.swift @@ -21,6 +21,7 @@ struct TextEditingSettingsView: View { useSystemCursor overscroll showMinimap + reformatSettings } Section { fontSelector @@ -206,4 +207,21 @@ private extension TextEditingSettingsView { // swiftlint:disable:next line_length .help("The minimap gives you a high-level summary of your source code, with controls to quickly navigate your document.") } + + @ViewBuilder private var reformatSettings: some View { + Stepper( + "Reformat at Column", + value: Binding( + get: { Double(textEditing.reformatAtColumn) }, + set: { textEditing.reformatAtColumn = Int($0) } + ), + in: 40...200, + step: 1, + format: .number + ) + .help("The column at which text should be reformatted") + + Toggle("Show Reformatting Guide", isOn: $textEditing.showReformattingGuide) + .help("Shows a vertical guide at the reformat column") + } }