Skip to content

Commit 8c44d9c

Browse files
committed
Use New BracketPairEmphasis Type
1 parent 050c3e3 commit 8c44d9c

File tree

3 files changed

+26
-43
lines changed

3 files changed

+26
-43
lines changed

CodeEdit/Features/Editor/Views/CodeFileView.swift

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ struct CodeFileView: View {
4040
var matchAppearance
4141
@AppSettings(\.textEditing.letterSpacing)
4242
var letterSpacing
43-
@AppSettings(\.textEditing.bracketHighlight)
44-
var bracketHighlight
43+
@AppSettings(\.textEditing.bracketEmphasis)
44+
var bracketEmphasis
4545
@AppSettings(\.textEditing.useSystemCursor)
4646
var useSystemCursor
4747

@@ -99,23 +99,6 @@ struct CodeFileView: View {
9999

100100
@State private var font: NSFont = Settings[\.textEditing].font.current
101101

102-
@State private var bracketPairHighlight: BracketPairHighlight? = {
103-
let theme = ThemeModel.shared.selectedTheme ?? ThemeModel.shared.themes.first!
104-
let color = Settings[\.textEditing].bracketHighlight.useCustomColor
105-
? Settings[\.textEditing].bracketHighlight.color.nsColor
106-
: theme.editor.text.nsColor.withAlphaComponent(0.8)
107-
switch Settings[\.textEditing].bracketHighlight.highlightType {
108-
case .disabled:
109-
return nil
110-
case .flash:
111-
return .flash
112-
case .bordered:
113-
return .bordered(color: color)
114-
case .underline:
115-
return .underline(color: color)
116-
}
117-
}()
118-
119102
@Environment(\.edgeInsets)
120103
private var edgeInsets
121104

@@ -135,7 +118,7 @@ struct CodeFileView: View {
135118
contentInsets: edgeInsets.nsEdgeInsets,
136119
isEditable: isEditable,
137120
letterSpacing: letterSpacing,
138-
bracketPairHighlight: bracketPairHighlight,
121+
bracketPairEmphasis: getBracketPairEmphasis(),
139122
useSystemCursor: useSystemCursor,
140123
undoManager: undoManager,
141124
coordinators: textViewCoordinators
@@ -154,19 +137,18 @@ struct CodeFileView: View {
154137
.onChange(of: settingsFont) { newFontSetting in
155138
font = newFontSetting.current
156139
}
157-
.onChange(of: bracketHighlight) { _ in
158-
bracketPairHighlight = getBracketPairHighlight()
159-
}
160140
}
161141

162-
private func getBracketPairHighlight() -> BracketPairHighlight? {
163-
let color = if Settings[\.textEditing].bracketHighlight.useCustomColor {
164-
Settings[\.textEditing].bracketHighlight.color.nsColor
142+
/// Determines the style of bracket emphasis based on the `bracketEmphasis` setting and the current theme.
143+
/// - Returns: The emphasis style to use for bracket pair emphasis.
144+
private func getBracketPairEmphasis() -> BracketPairEmphasis? {
145+
let color = if Settings[\.textEditing].bracketEmphasis.useCustomColor {
146+
Settings[\.textEditing].bracketEmphasis.color.nsColor
165147
} else {
166148
currentTheme.editor.text.nsColor.withAlphaComponent(0.8)
167149
}
168150

169-
switch Settings[\.textEditing].bracketHighlight.highlightType {
151+
switch Settings[\.textEditing].bracketEmphasis.highlightType {
170152
case .disabled:
171153
return nil
172154
case .flash:

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

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ extension SettingsData {
2626
"Letter Spacing",
2727
"Autocomplete braces",
2828
"Enable type-over completion",
29+
"Bracket Pair Emphasis",
2930
"Bracket Pair Highlight"
3031
]
3132
if #available(macOS 14.0, *) {
@@ -64,7 +65,7 @@ extension SettingsData {
6465
var letterSpacing: Double = 1.0
6566

6667
/// The behavior of bracket pair highlights.
67-
var bracketHighlight: BracketPairHighlight = BracketPairHighlight()
68+
var bracketEmphasis: BracketPairEmphasis = BracketPairEmphasis()
6869

6970
/// Use the system cursor for the source editor.
7071
var useSystemCursor: Bool = true
@@ -107,10 +108,10 @@ extension SettingsData {
107108
Double.self,
108109
forKey: .letterSpacing
109110
) ?? 1
110-
self.bracketHighlight = try container.decodeIfPresent(
111-
BracketPairHighlight.self,
112-
forKey: .bracketHighlight
113-
) ?? BracketPairHighlight()
111+
self.bracketEmphasis = try container.decodeIfPresent(
112+
BracketPairEmphasis.self,
113+
forKey: .bracketEmphasis
114+
) ?? BracketPairEmphasis()
114115
if #available(macOS 14, *) {
115116
self.useSystemCursor = try container.decodeIfPresent(Bool.self, forKey: .useSystemCursor) ?? true
116117
} else {
@@ -164,7 +165,7 @@ extension SettingsData {
164165
}
165166
}
166167

167-
struct BracketPairHighlight: Codable, Hashable {
168+
struct BracketPairEmphasis: Codable, Hashable {
168169
/// The type of highlight to use
169170
var highlightType: HighlightType = .flash
170171
var useCustomColor: Bool = false

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

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -176,26 +176,26 @@ private extension TextEditingSettingsView {
176176
Group {
177177
Picker(
178178
"Bracket Pair Highlight",
179-
selection: $textEditing.bracketHighlight.highlightType
179+
selection: $textEditing.bracketEmphasis.highlightType
180180
) {
181-
Text("Disabled").tag(SettingsData.TextEditingSettings.BracketPairHighlight.HighlightType.disabled)
181+
Text("Disabled").tag(SettingsData.TextEditingSettings.BracketPairEmphasis.HighlightType.disabled)
182182
Divider()
183-
Text("Bordered").tag(SettingsData.TextEditingSettings.BracketPairHighlight.HighlightType.bordered)
184-
Text("Flash").tag(SettingsData.TextEditingSettings.BracketPairHighlight.HighlightType.flash)
185-
Text("Underline").tag(SettingsData.TextEditingSettings.BracketPairHighlight.HighlightType.underline)
183+
Text("Bordered").tag(SettingsData.TextEditingSettings.BracketPairEmphasis.HighlightType.bordered)
184+
Text("Flash").tag(SettingsData.TextEditingSettings.BracketPairEmphasis.HighlightType.flash)
185+
Text("Underline").tag(SettingsData.TextEditingSettings.BracketPairEmphasis.HighlightType.underline)
186186
}
187-
if [.bordered, .underline].contains(textEditing.bracketHighlight.highlightType) {
188-
Toggle("Use Custom Color", isOn: $textEditing.bracketHighlight.useCustomColor)
187+
if [.bordered, .underline].contains(textEditing.bracketEmphasis.highlightType) {
188+
Toggle("Use Custom Color", isOn: $textEditing.bracketEmphasis.useCustomColor)
189189
SettingsColorPicker(
190190
"Bracket Pair Highlight Color",
191-
color: $textEditing.bracketHighlight.color.swiftColor
191+
color: $textEditing.bracketEmphasis.color.swiftColor
192192
)
193193
.foregroundColor(
194-
textEditing.bracketHighlight.useCustomColor
194+
textEditing.bracketEmphasis.useCustomColor
195195
? Color(.labelColor)
196196
: Color(.secondaryLabelColor)
197197
)
198-
.disabled(!textEditing.bracketHighlight.useCustomColor)
198+
.disabled(!textEditing.bracketEmphasis.useCustomColor)
199199
}
200200
}
201201
}

0 commit comments

Comments
 (0)