Skip to content

Commit cf6e1ab

Browse files
change theming structure
1 parent f86cf61 commit cf6e1ab

File tree

1 file changed

+34
-63
lines changed

1 file changed

+34
-63
lines changed

Sources/gitdiff/DiffTheme.swift

Lines changed: 34 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ public struct DiffTheme: Equatable, Hashable {
4848

4949
// MARK: - Built-in Themes
5050
public extension DiffTheme {
51-
/// GitHub's default diff colors
52-
static let github = DiffTheme(
51+
/// Light theme (GitHub style)
52+
static let light = DiffTheme(
5353
addedBackground: Color(red: 230/255, green: 255/255, blue: 237/255),
5454
addedText: Color(red: 34/255, green: 134/255, blue: 58/255),
5555
removedBackground: Color(red: 255/255, green: 238/255, blue: 240/255),
@@ -64,7 +64,23 @@ public extension DiffTheme {
6464
fileHeaderText: Color(red: 36/255, green: 41/255, blue: 47/255)
6565
)
6666

67-
/// GitLab's default diff colors
67+
/// Dark theme
68+
static let dark = DiffTheme(
69+
addedBackground: Color(red: 40/255, green: 60/255, blue: 40/255),
70+
addedText: Color(red: 135/255, green: 215/255, blue: 95/255),
71+
removedBackground: Color(red: 60/255, green: 40/255, blue: 40/255),
72+
removedText: Color(red: 245/255, green: 135/255, blue: 145/255),
73+
contextBackground: Color(red: 30/255, green: 30/255, blue: 30/255),
74+
contextText: Color(red: 212/255, green: 212/255, blue: 212/255),
75+
lineNumberBackground: Color(red: 38/255, green: 38/255, blue: 40/255),
76+
lineNumberText: Color(red: 133/255, green: 133/255, blue: 133/255),
77+
headerBackground: Color(red: 40/255, green: 40/255, blue: 60/255),
78+
headerText: Color(red: 156/255, green: 220/255, blue: 254/255),
79+
fileHeaderBackground: Color(red: 37/255, green: 37/255, blue: 38/255),
80+
fileHeaderText: Color(red: 204/255, green: 204/255, blue: 204/255)
81+
)
82+
83+
/// GitLab theme
6884
static let gitlab = DiffTheme(
6985
addedBackground: Color(red: 221/255, green: 244/255, blue: 221/255),
7086
addedText: Color(red: 24/255, green: 128/255, blue: 56/255),
@@ -80,67 +96,22 @@ public extension DiffTheme {
8096
fileHeaderText: Color(red: 31/255, green: 30/255, blue: 36/255)
8197
)
8298

83-
/// VS Code light theme colors
84-
static let vsCodeLight = DiffTheme(
85-
addedBackground: Color(red: 230/255, green: 255/255, blue: 237/255),
86-
addedText: Color(red: 0/255, green: 102/255, blue: 0/255),
87-
removedBackground: Color(red: 255/255, green: 230/255, blue: 230/255),
88-
removedText: Color(red: 153/255, green: 0/255, blue: 0/255),
89-
contextBackground: Color.white,
90-
contextText: Color.black,
91-
lineNumberBackground: Color(red: 245/255, green: 245/255, blue: 245/255),
92-
lineNumberText: Color(red: 110/255, green: 110/255, blue: 110/255),
93-
headerBackground: Color(red: 230/255, green: 230/255, blue: 255/255),
94-
headerText: Color(red: 0/255, green: 0/255, blue: 153/255),
95-
fileHeaderBackground: Color(red: 240/255, green: 240/255, blue: 240/255),
96-
fileHeaderText: Color.black
97-
)
99+
/// Default theme (alias for light)
100+
static let `default` = light
98101

99-
/// VS Code dark theme colors
100-
static let vsCodeDark = DiffTheme(
101-
addedBackground: Color(red: 40/255, green: 60/255, blue: 40/255),
102-
addedText: Color(red: 135/255, green: 215/255, blue: 95/255),
103-
removedBackground: Color(red: 60/255, green: 40/255, blue: 40/255),
104-
removedText: Color(red: 245/255, green: 135/255, blue: 145/255),
105-
contextBackground: Color(red: 30/255, green: 30/255, blue: 30/255),
106-
contextText: Color(red: 212/255, green: 212/255, blue: 212/255),
107-
lineNumberBackground: Color(red: 30/255, green: 30/255, blue: 30/255),
108-
lineNumberText: Color(red: 133/255, green: 133/255, blue: 133/255),
109-
headerBackground: Color(red: 40/255, green: 40/255, blue: 60/255),
110-
headerText: Color(red: 156/255, green: 220/255, blue: 254/255),
111-
fileHeaderBackground: Color(red: 37/255, green: 37/255, blue: 38/255),
112-
fileHeaderText: Color(red: 204/255, green: 204/255, blue: 204/255)
113-
)
102+
// Deprecated theme aliases for backward compatibility
103+
@available(*, deprecated, renamed: "light")
104+
static let github = light
114105

115-
/// Xcode light theme colors
116-
static let xcodeLight = DiffTheme(
117-
addedBackground: Color(red: 236/255, green: 253/255, blue: 240/255),
118-
addedText: Color(red: 28/255, green: 70/255, blue: 0/255),
119-
removedBackground: Color(red: 255/255, green: 238/255, blue: 240/255),
120-
removedText: Color(red: 196/255, green: 26/255, blue: 22/255),
121-
contextBackground: Color.white,
122-
contextText: Color.black,
123-
lineNumberBackground: Color(red: 242/255, green: 242/255, blue: 247/255),
124-
lineNumberText: Color(red: 142/255, green: 142/255, blue: 147/255),
125-
headerBackground: Color(red: 242/255, green: 242/255, blue: 247/255),
126-
headerText: Color(red: 59/255, green: 131/255, blue: 246/255),
127-
fileHeaderBackground: Color(red: 242/255, green: 242/255, blue: 247/255),
128-
fileHeaderText: Color.black
129-
)
106+
@available(*, deprecated, message: "Use .light or .dark instead")
107+
static let vsCodeLight = light
130108

131-
/// Xcode dark theme colors
132-
static let xcodeDark = DiffTheme(
133-
addedBackground: Color(red: 47/255, green: 74/255, blue: 58/255),
134-
addedText: Color(red: 145/255, green: 220/255, blue: 169/255),
135-
removedBackground: Color(red: 74/255, green: 47/255, blue: 47/255),
136-
removedText: Color(red: 255/255, green: 179/255, blue: 184/255),
137-
contextBackground: Color(red: 28/255, green: 28/255, blue: 30/255),
138-
contextText: Color.white,
139-
lineNumberBackground: Color(red: 38/255, green: 38/255, blue: 40/255),
140-
lineNumberText: Color(red: 142/255, green: 142/255, blue: 147/255),
141-
headerBackground: Color(red: 44/255, green: 44/255, blue: 46/255),
142-
headerText: Color(red: 147/255, green: 178/255, blue: 253/255),
143-
fileHeaderBackground: Color(red: 44/255, green: 44/255, blue: 46/255),
144-
fileHeaderText: Color.white
145-
)
109+
@available(*, deprecated, message: "Use .light or .dark instead")
110+
static let vsCodeDark = dark
111+
112+
@available(*, deprecated, message: "Use .light or .dark instead")
113+
static let xcodeLight = light
114+
115+
@available(*, deprecated, message: "Use .light or .dark instead")
116+
static let xcodeDark = dark
146117
}

0 commit comments

Comments
 (0)