Skip to content

Commit 76941a3

Browse files
Merge branch 'main' into feat/editor-restoration
2 parents 8306cf2 + bcd5f11 commit 76941a3

File tree

5 files changed

+48
-16
lines changed

5 files changed

+48
-16
lines changed

CodeEdit.xcodeproj/project.pbxproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1765,8 +1765,8 @@
17651765
isa = XCRemoteSwiftPackageReference;
17661766
repositoryURL = "https://github.com/CodeEditApp/CodeEditSourceEditor";
17671767
requirement = {
1768-
kind = upToNextMajorVersion;
1769-
minimumVersion = 0.14.0;
1768+
kind = exactVersion;
1769+
version = 0.14.0;
17701770
};
17711771
};
17721772
6C85BB3E2C2105ED00EB5DEF /* XCRemoteSwiftPackageReference "CodeEditKit" */ = {

CodeEdit/Features/Editor/Views/CodeFileView.swift

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,12 @@ struct CodeFileView: View {
4646
var bracketEmphasis
4747
@AppSettings(\.textEditing.useSystemCursor)
4848
var useSystemCursor
49+
@AppSettings(\.textEditing.showGutter)
50+
var showGutter
4951
@AppSettings(\.textEditing.showMinimap)
5052
var showMinimap
53+
@AppSettings(\.textEditing.showFoldingRibbon)
54+
var showFoldingRibbon
5155
@AppSettings(\.textEditing.reformatAtColumn)
5256
var reformatAtColumn
5357
@AppSettings(\.textEditing.showReformattingGuide)
@@ -133,10 +137,10 @@ struct CodeFileView: View {
133137
additionalTextInsets: NSEdgeInsets(top: 2, left: 0, bottom: 0, right: 0)
134138
),
135139
peripherals: .init(
136-
showGutter: true,
140+
showGutter: showGutter,
137141
showMinimap: showMinimap,
138142
showReformattingGuide: showReformattingGuide,
139-
showFoldingRibbon: false,
143+
showFoldingRibbon: showFoldingRibbon,
140144
invisibleCharactersConfiguration: .empty,
141145
warningCharacters: []
142146
)

CodeEdit/Features/Settings/Pages/TextEditingSettings/Models/TextEditingSettings.swift

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,15 @@ extension SettingsData {
7474
/// Use the system cursor for the source editor.
7575
var useSystemCursor: Bool = true
7676

77+
/// Toggle the gutter in the editor.
78+
var showGutter: Bool = true
79+
7780
/// Toggle the minimap in the editor.
7881
var showMinimap: Bool = true
7982

83+
/// Toggle the code folding ribbon.
84+
var showFoldingRibbon: Bool = true
85+
8086
/// The column at which to reformat text
8187
var reformatAtColumn: Int = 80
8288

@@ -131,7 +137,9 @@ extension SettingsData {
131137
self.useSystemCursor = false
132138
}
133139

140+
self.showGutter = try container.decodeIfPresent(Bool.self, forKey: .showGutter) ?? true
134141
self.showMinimap = try container.decodeIfPresent(Bool.self, forKey: .showMinimap) ?? true
142+
self.showFoldingRibbon = try container.decodeIfPresent(Bool.self, forKey: .showFoldingRibbon) ?? true
135143
self.reformatAtColumn = try container.decodeIfPresent(Int.self, forKey: .reformatAtColumn) ?? 80
136144
self.showReformattingGuide = try container.decodeIfPresent(
137145
Bool.self,
@@ -172,12 +180,20 @@ extension SettingsData {
172180
}
173181
)
174182

183+
mgr.addCommand(name: "Toggle Minimap", title: "Toggle Minimap", id: "prefs.text_editing.toggle_minimap") {
184+
Settings[\.textEditing].showMinimap.toggle()
185+
}
186+
187+
mgr.addCommand(name: "Toggle Gutter", title: "Toggle Gutter", id: "prefs.text_editing.toggle_gutter") {
188+
Settings[\.textEditing].showGutter.toggle()
189+
}
190+
175191
mgr.addCommand(
176-
name: "Toggle Minimap",
177-
title: "Toggle Minimap",
178-
id: "prefs.text_editing.toggle_minimap"
192+
name: "Toggle Folding Ribbon",
193+
title: "Toggle Folding Ribbon",
194+
id: "prefs.text_editing.toggle_folding_ribbon"
179195
) {
180-
Settings[\.textEditing].showMinimap.toggle()
196+
Settings[\.textEditing].showFoldingRibbon.toggle()
181197
}
182198
}
183199

CodeEdit/Features/Settings/Pages/TextEditingSettings/TextEditingSettingsView.swift

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,11 @@ struct TextEditingSettingsView: View {
2020
wrapLinesToEditorWidth
2121
useSystemCursor
2222
overscroll
23+
}
24+
Section {
25+
showGutter
2326
showMinimap
27+
showFoldingRibbon
2428
reformatSettings
2529
}
2630
Section {
@@ -202,13 +206,28 @@ private extension TextEditingSettingsView {
202206
}
203207
}
204208

209+
@ViewBuilder private var showGutter: some View {
210+
Toggle("Show Gutter", isOn: $textEditing.showGutter)
211+
.help("The gutter displays line numbers and code folding regions.")
212+
}
213+
205214
@ViewBuilder private var showMinimap: some View {
206215
Toggle("Show Minimap", isOn: $textEditing.showMinimap)
207216
// swiftlint:disable:next line_length
208217
.help("The minimap gives you a high-level summary of your source code, with controls to quickly navigate your document.")
209218
}
210219

220+
@ViewBuilder private var showFoldingRibbon: some View {
221+
Toggle("Show Code Folding Ribbon", isOn: $textEditing.showFoldingRibbon)
222+
.disabled(!textEditing.showGutter) // Disabled when the gutter is disabled
223+
// swiftlint:disable:next line_length
224+
.help("The code folding ribbon lets you fold regions of code. When the gutter is disabled, the folding ribbon is disabled.")
225+
}
226+
211227
@ViewBuilder private var reformatSettings: some View {
228+
Toggle("Show Reformatting Guide", isOn: $textEditing.showReformattingGuide)
229+
.help("Shows a vertical guide at the reformat column.")
230+
212231
Stepper(
213232
"Reformat at Column",
214233
value: Binding<Double>(
@@ -219,9 +238,6 @@ private extension TextEditingSettingsView {
219238
step: 1,
220239
format: .number
221240
)
222-
.help("The column at which text should be reformatted")
223-
224-
Toggle("Show Reformatting Guide", isOn: $textEditing.showReformattingGuide)
225-
.help("Shows a vertical guide at the reformat column")
241+
.help("The column at which text should be reformatted.")
226242
}
227243
}

CodeEdit/Features/SplitView/Views/SplitViewControllerView.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -131,10 +131,6 @@ final class SplitViewController: NSSplitViewController {
131131
}
132132
}
133133

134-
override func splitView(_ splitView: NSSplitView, canCollapseSubview subview: NSView) -> Bool {
135-
false
136-
}
137-
138134
override func splitView(_ splitView: NSSplitView, shouldHideDividerAt dividerIndex: Int) -> Bool {
139135
// For some reason, AppKit _really_ wants to hide dividers when there's only one item (and no dividers)
140136
// so we do this check for them.

0 commit comments

Comments
 (0)