Skip to content

Commit ffd55c3

Browse files
committed
Update SourceCodeTextEditor dark mode
1 parent d07e94b commit ffd55c3

File tree

6 files changed

+56
-96
lines changed

6 files changed

+56
-96
lines changed

SnippetsLibrary.xcodeproj/project.pbxproj

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
B82561F726E8C9840040A67E /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = B82561F626E8C9840040A67E /* SearchBar.swift */; };
3535
B82561FB26E8CA040040A67E /* SnippetFileCardViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B82561FA26E8C9FF0040A67E /* SnippetFileCardViewModel.swift */; };
3636
B82561FC26E8CA040040A67E /* SnippetFileCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B82561F926E8C9FF0040A67E /* SnippetFileCardView.swift */; };
37-
B825620026E8CB8C0040A67E /* TextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B82561FF26E8CB8C0040A67E /* TextView.swift */; };
3837
B825620226E8D14A0040A67E /* NSTableView+BackgroundColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B825620126E8D14A0040A67E /* NSTableView+BackgroundColor.swift */; };
3938
B825621326E968380040A67E /* SnippetDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B825621226E968380040A67E /* SnippetDetailsView.swift */; };
4039
B84BFEA626F56A6A007E5109 /* CrashlyticsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B84BFEA526F56A6A007E5109 /* CrashlyticsService.swift */; };
@@ -59,6 +58,7 @@
5958
B8B6DE7E26EE4BB500E49C57 /* SnippetsParserService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8B6DE7D26EE4BB500E49C57 /* SnippetsParserService.swift */; };
6059
B8B6DE8126EE546800E49C57 /* DependencyContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8B6DE8026EE546800E49C57 /* DependencyContainer.swift */; };
6160
B8B6DE8326EE608500E49C57 /* SnippetPlist.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8B6DE8226EE608500E49C57 /* SnippetPlist.swift */; };
61+
B8C8755826FCF16E00DE4474 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = B88D4A3526F4E34900164BF5 /* GoogleService-Info.plist */; };
6262
B8EB5AD526F005CC00BE3EF6 /* CustomCodeTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8EB5AD426F005CC00BE3EF6 /* CustomCodeTheme.swift */; };
6363
B8EB5AD926F0061A00BE3EF6 /* SnippetFileCardViewState.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8EB5AD826F0061A00BE3EF6 /* SnippetFileCardViewState.swift */; };
6464
B8EB5ADB26F0076C00BE3EF6 /* PlistCodingKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8EB5ADA26F0076C00BE3EF6 /* PlistCodingKeys.swift */; };
@@ -121,7 +121,6 @@
121121
B82561F626E8C9840040A67E /* SearchBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBar.swift; sourceTree = "<group>"; };
122122
B82561F926E8C9FF0040A67E /* SnippetFileCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnippetFileCardView.swift; sourceTree = "<group>"; };
123123
B82561FA26E8C9FF0040A67E /* SnippetFileCardViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnippetFileCardViewModel.swift; sourceTree = "<group>"; };
124-
B82561FF26E8CB8C0040A67E /* TextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextView.swift; sourceTree = "<group>"; };
125124
B825620126E8D14A0040A67E /* NSTableView+BackgroundColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSTableView+BackgroundColor.swift"; sourceTree = "<group>"; };
126125
B825621226E968380040A67E /* SnippetDetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnippetDetailsView.swift; sourceTree = "<group>"; };
127126
B84BFEA526F56A6A007E5109 /* CrashlyticsService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CrashlyticsService.swift; sourceTree = "<group>"; };
@@ -303,7 +302,6 @@
303302
B82561D826E8223B0040A67E /* VisualEffectView.swift */,
304303
B82561DD26E822A80040A67E /* RecentSnippetCardView.swift */,
305304
B82561F626E8C9840040A67E /* SearchBar.swift */,
306-
B82561FF26E8CB8C0040A67E /* TextView.swift */,
307305
B8F95B0626EEAEB200335D77 /* SnippetDropCellView.swift */,
308306
);
309307
path = Views;
@@ -613,6 +611,7 @@
613611
isa = PBXResourcesBuildPhase;
614612
buildActionMask = 2147483647;
615613
files = (
614+
B8C8755826FCF16E00DE4474 /* GoogleService-Info.plist in Resources */,
616615
B82561BB26E81D580040A67E /* Preview Assets.xcassets in Resources */,
617616
B82561B826E81D580040A67E /* Assets.xcassets in Resources */,
618617
);
@@ -710,7 +709,6 @@
710709
B8B6DE8126EE546800E49C57 /* DependencyContainer.swift in Sources */,
711710
B8EB5AE826F00B4300BE3EF6 /* SnippetsParserServiceError.swift in Sources */,
712711
B8EB5AE426F00A7000BE3EF6 /* SnippetPlatform.swift in Sources */,
713-
B825620026E8CB8C0040A67E /* TextView.swift in Sources */,
714712
B8B6DE7E26EE4BB500E49C57 /* SnippetsParserService.swift in Sources */,
715713
B82561B426E81D570040A67E /* SnippetsLibraryApp.swift in Sources */,
716714
B88BB45626F55DDB00747631 /* LogsService.swift in Sources */,

SnippetsLibrary/Assets.xcassets/Colors/Color.colorset/Contents.json

Lines changed: 0 additions & 38 deletions
This file was deleted.

SnippetsLibrary/Modules/SnippetDetails/SnippetDetailsView.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ struct SnippetDetailsView: View {
2222

2323
// MARK: - Stored Properties
2424

25+
@Environment(\.colorScheme) var colorScheme
2526
@Environment (\.presentationMode) var presentationMode
2627

2728
@ObservedObject private(set) var viewModel: SnippetDetailsViewModel
@@ -52,10 +53,10 @@ struct SnippetDetailsView: View {
5253
text: $viewModel.snippet.content,
5354
customization: SourceCodeTextEditor.Customization(
5455
didChangeText: { _ in },
55-
insertionPointColor: { .white },
56+
insertionPointColor: { colorScheme == .dark ? .white : .black },
5657
lexerForSource: { _ in SwiftLexer() },
5758
textViewDidBeginEditing: { _ in },
58-
theme: { CustomCodeTheme() }
59+
theme: { CustomCodeTheme(colorScheme: colorScheme) }
5960
),
6061
shouldBecomeFirstResponder: false
6162
)

SnippetsLibrary/Supporting Files/CustomCodeTheme.swift

Lines changed: 47 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,32 +10,65 @@ import Sourceful
1010

1111
struct CustomCodeTheme: SourceCodeTheme {
1212

13+
private enum Constants {
14+
static let backgroundDarkColor = NSColor(red: 41/255, green: 42/255, blue: 48/255, alpha: 1.0)
15+
static let plainTypeLightColor = NSColor(red: 2/255, green: 2/255, blue: 2/255, alpha: 1.0)
16+
static let plainTypeDarkColor = NSColor(red: 223/255, green: 223/255, blue: 224/255, alpha: 1.0)
17+
static let numberTypeLightColor = NSColor(red: 40/255, green: 41/255, blue: 208/255, alpha: 1.0)
18+
static let numberTypeDarkColor = NSColor(red: 214/255, green: 202/255, blue: 134/255, alpha: 1.0)
19+
static let stringTypeLightColor = NSColor(red: 192/255, green: 62/255, blue: 41/255, alpha: 1.0)
20+
static let stringTypeDarkColor = NSColor(red: 239/255, green: 136/255, blue: 118/255, alpha: 1.0)
21+
static let identifierTypeLightColor = NSColor(red: 121/255, green: 82/255, blue: 178/255, alpha: 1.0)
22+
static let identifierTypeDarkColor = NSColor(red: 171/255, green: 131/255, blue: 228/255, alpha: 1.0)
23+
static let keywordTypeLightColor = NSColor(red: 160/255, green: 69/255, blue: 160/255, alpha: 1.0)
24+
static let keywordTypeDarkColor = NSColor(red: 238/255, green: 130/255, blue: 176/255, alpha: 1.0)
25+
static let commentColor = NSColor(red: 129/255.0, green: 140/255.0, blue: 150/255.0, alpha: 1.0)
26+
27+
static let font = NSFont.monospacedSystemFont(ofSize: 15, weight: .regular)
28+
static let gutterStyle = GutterStyle(backgroundColor: NSColor.clear, minimumWidth: 0)
29+
}
30+
31+
// MARK: - Stored Properties
32+
33+
private var colorScheme: ColorScheme = .dark
34+
1335
private static var lineNumbersColor: NSColor = .clear
14-
public let lineNumbersStyle: LineNumbersStyle? = nil
15-
public let gutterStyle: GutterStyle = GutterStyle(backgroundColor: Color.clear, minimumWidth: 0)
16-
public let font = NSFont.monospacedSystemFont(ofSize: 15, weight: .regular)
1736

18-
public let backgroundColor = Color(red: 41/255.0, green: 42/255, blue: 48/255, alpha: 1.0)
37+
internal let lineNumbersStyle: LineNumbersStyle? = nil
38+
internal let gutterStyle: GutterStyle = Constants.gutterStyle
39+
internal let font = Constants.font
40+
41+
// MARK: - Computed Properties
42+
43+
internal var backgroundColor: NSColor {
44+
return colorScheme == .dark ? Constants.backgroundDarkColor : NSColor.white
45+
}
46+
47+
// MARK: - Initialization
48+
49+
init(colorScheme: ColorScheme) {
50+
self.colorScheme = colorScheme
51+
}
52+
53+
// MARK: - Methods
1954

20-
public func color(for syntaxColorType: SourceCodeTokenType) -> NSColor {
55+
func color(for syntaxColorType: SourceCodeTokenType) -> NSColor {
2156
switch syntaxColorType {
2257
case .plain:
23-
return Color(red: 223/255, green: 223/255, blue: 224/255, alpha: 1.0)
58+
return colorScheme == .dark ? Constants.plainTypeDarkColor : Constants.plainTypeLightColor
2459
case .number:
25-
return Color(red: 214/255, green: 202/255, blue: 134/255, alpha: 1.0)
60+
return colorScheme == .dark ? Constants.numberTypeDarkColor : Constants.numberTypeLightColor
2661
case .string:
27-
return Color(red: 239/255, green: 136/255, blue: 118/255, alpha: 1.0)
62+
return colorScheme == .dark ? Constants.stringTypeDarkColor : Constants.stringTypeLightColor
2863
case .identifier:
29-
return Color(red: 171/255, green: 131/255, blue: 228/255, alpha: 1.0)
64+
return colorScheme == .dark ? Constants.identifierTypeDarkColor : Constants.identifierTypeLightColor
3065
case .keyword:
31-
return Color(red: 238/255, green: 130/255, blue: 176/255, alpha: 1.0)
66+
return colorScheme == .dark ? Constants.keywordTypeDarkColor : Constants.keywordTypeLightColor
3267
case .comment:
33-
return Color(red: 129/255.0, green: 140/255.0, blue: 150/255.0, alpha: 1.0)
68+
return Constants.commentColor
3469
case .editorPlaceholder:
35-
return .gray
70+
return colorScheme == .dark ? .gray : .lightGray
3671
}
3772
}
3873

39-
public init() {}
40-
4174
}

SnippetsLibrary/Views/SnippetFileCard/SnippetFileCardView.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ struct SnippetFileCardView: View {
2121

2222
// MARK: - Stored Properties
2323

24+
@Environment(\.colorScheme) var colorScheme
25+
2426
@ObservedObject private(set) var viewModel: SnippetFileCardViewModel
2527

2628
// MARK: - Views
@@ -35,10 +37,10 @@ struct SnippetFileCardView: View {
3537
text: .constant(viewModel.snippet.content),
3638
customization: SourceCodeTextEditor.Customization(
3739
didChangeText: { _ in },
38-
insertionPointColor: { .white },
40+
insertionPointColor: { colorScheme == .dark ? .white : .black },
3941
lexerForSource: { _ in SwiftLexer() },
4042
textViewDidBeginEditing: { _ in },
41-
theme: { CustomCodeTheme() }
43+
theme: { CustomCodeTheme(colorScheme: colorScheme) }
4244
),
4345
shouldBecomeFirstResponder: false
4446
)

SnippetsLibrary/Views/TextView.swift

Lines changed: 0 additions & 36 deletions
This file was deleted.

0 commit comments

Comments
 (0)