diff options
| author | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-07-09 08:54:22 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-07-09 08:54:22 +0200 |
| commit | 005c2048af141e3658a170c283dd41bd4fb5cdcb (patch) | |
| tree | 9a07100197681a38a78e663c66d034bfacf6ec71 /Map/Presentation | |
| parent | 1e89ea22d551cebfd6c0c0451000c3283ddb2d2e (diff) | |
Make soft-wrap configurable.
Diffstat (limited to 'Map/Presentation')
| -rw-r--r-- | Map/Presentation/Base Components/MapTextEditor.swift | 16 | ||||
| -rw-r--r-- | Map/Presentation/MapEditor.swift | 4 | ||||
| -rw-r--r-- | Map/Presentation/Preferences/EditorPreferencesView.swift | 9 |
3 files changed, 24 insertions, 5 deletions
diff --git a/Map/Presentation/Base Components/MapTextEditor.swift b/Map/Presentation/Base Components/MapTextEditor.swift index c4ac561..4295918 100644 --- a/Map/Presentation/Base Components/MapTextEditor.swift +++ b/Map/Presentation/Base Components/MapTextEditor.swift @@ -82,12 +82,20 @@ class MapTextEditorController: NSViewController { textView.font = NSFont.Theme.Editor.regular textView.textContainerInset = NSSize(width: 0, height: Dimensions.Spacing.coziest) - // Disable word wrapping to prevent flashing on soft-wrapped lines - textView.textContainer?.widthTracksTextView = false - textView.textContainer?.containerSize = NSSize( - width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude) + // Configure text wrapping based on user preference + let softWrapLines = UserDefaults.standard.bool(forKey: "softWrapLines") + if !softWrapLines { + // Disable word wrapping to prevent flashing on soft-wrapped lines + textView.textContainer?.widthTracksTextView = false + textView.textContainer?.containerSize = NSSize( + width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude) + } else { + textView.textContainer?.widthTracksTextView = true + } + textView.isHorizontallyResizable = true textView.isVerticallyResizable = true + self.view = scrollView } diff --git a/Map/Presentation/MapEditor.swift b/Map/Presentation/MapEditor.swift index 0f8f24e..c8ce5cd 100644 --- a/Map/Presentation/MapEditor.swift +++ b/Map/Presentation/MapEditor.swift @@ -32,6 +32,8 @@ struct MapEditor: View { @AppStorage("customEditorFontName") var customEditorFontName: String = UserPreferences.Defaults .customEditorFontName @AppStorage("editorFontSize") var editorFontSize: Double = UserPreferences.Defaults.editorFontSize + @AppStorage("softWrapLines") var softWrapLines: Bool = UserPreferences.Defaults + .softWrapLines let zoomRange = Constants.kMinZoom...Constants.kMaxZoom @AppStorage("zoom") var zoom = UserPreferences.Defaults.zoom @@ -110,7 +112,7 @@ struct MapEditor: View { highlightRanges: results, selectedRange: selectedTerm ) - .id("\(useCustomEditorFont)-\(customEditorFontName)-\(editorFontSize)") + .id("\(useCustomEditorFont)-\(customEditorFontName)-\(editorFontSize)-\(softWrapLines)") .background(Color.Theme.UI.background) .foregroundColor(Color.Theme.UI.foreground) .frame(minHeight: 96.0) diff --git a/Map/Presentation/Preferences/EditorPreferencesView.swift b/Map/Presentation/Preferences/EditorPreferencesView.swift index 23359b2..c08b03e 100644 --- a/Map/Presentation/Preferences/EditorPreferencesView.swift +++ b/Map/Presentation/Preferences/EditorPreferencesView.swift @@ -24,6 +24,8 @@ struct EditorPreferencesView: View { .customEditorFontName @AppStorage("editorFontSize") private var editorFontSize: Double = UserPreferences.Defaults .editorFontSize + @AppStorage("softWrapLines") private var softWrapLines: Bool = UserPreferences.Defaults + .softWrapLines var monospacedFonts: [String] { let fontManager = NSFontManager.shared @@ -79,6 +81,13 @@ struct EditorPreferencesView: View { VStack(alignment: .leading, spacing: Dimensions.Spacing.cozy) { Toggle( + isOn: $softWrapLines, + label: { + Text("preferences.editor.editor_style.soft_wrap_lines") + .font(.Theme.Body.regular) + }) + + Toggle( isOn: $useCustomEditorFont, label: { Text("preferences.editor.editor_style.use_custom_font") |