Skip to content

Commit 9cf6bbf

Browse files
committed
Improve default color scheme for python console & script editor
1 parent 45b045d commit 9cf6bbf

5 files changed

Lines changed: 297 additions & 180 deletions

File tree

‎python/console/console_editor.py‎

Lines changed: 49 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,31 @@ def eventFilter(self, obj, event):
7777

7878

7979
class Editor(QsciScintilla):
80+
8081
MARKER_NUM = 6
82+
DEFAULT_COLOR = "#4d4d4c"
83+
KEYWORD_COLOR = "#8959a8"
84+
CLASS_COLOR = "#4271ae"
85+
METHOD_COLOR = "#4271ae"
86+
DECORATION_COLOR = "#3e999f"
87+
NUMBER_COLOR = "#c82829"
88+
COMMENT_COLOR = "#8e908c"
89+
COMMENT_BLOCK_COLOR = "#8e908c"
90+
BACKGROUND_COLOR = "#ffffff"
91+
CURSOR_COLOR = "#636363"
92+
CARET_LINE_COLOR = "#efefef"
93+
SINGLE_QUOTE_COLOR = "#718c00"
94+
DOUBLE_QUOTE_COLOR = "#718c00"
95+
TRIPLE_SINGLE_QUOTE_COLOR = "#eab700"
96+
TRIPLE_DOUBLE_QUOTE_COLOR = "#eab700"
97+
MARGIN_BACKGROUND_COLOR = "#efefef"
98+
MARGIN_FOREGROUND_COLOR = "#636363"
99+
SELECTION_BACKGROUND_COLOR = "#d7d7d7"
100+
SELECTION_FOREGROUND_COLOR = "#303030"
101+
MATCHED_BRACE_BACKGROUND_COLOR = "#b7f907"
102+
MATCHED_BRACE_FOREGROUND_COLOR = "#303030"
103+
EDGE_COLOR = "#efefef"
104+
FOLD_COLOR = "#efefef"
81105

82106
def __init__(self, parent=None):
83107
super(Editor, self).__init__(parent)
@@ -175,16 +199,16 @@ def __init__(self, parent=None):
175199
self.modificationAttempted.connect(self.fileReadOnly)
176200

177201
def settingsEditor(self):
178-
self.setSelectionForegroundColor(QColor(self.settings.value("pythonConsole/selectionForegroundColorEditor", QColor("#2e3436"))))
179-
self.setSelectionBackgroundColor(QColor(self.settings.value("pythonConsole/selectionBackgroundColorEditor", QColor("#babdb6"))))
180-
self.setMatchedBraceBackgroundColor(QColor(self.settings.value("pythonConsole/matchedBraceBackgroundColorEditor", QColor("#b7f907"))))
181-
self.setMatchedBraceForegroundColor(QColor(self.settings.value("pythonConsole/matchedBraceForegroundColorEditor", QColor("#000000"))))
182-
self.setMarginsForegroundColor(QColor(self.settings.value("pythonConsole/marginForegroundColorEditor", QColor("#3E3EE3"))))
183-
self.setMarginsBackgroundColor(QColor(self.settings.value("pythonConsole/marginBackgroundColorEditor", QColor("#f9f9f9"))))
184-
self.setIndentationGuidesForegroundColor(QColor(self.settings.value("pythonConsole/marginForegroundColorEditor", QColor("#3E3EE3"))))
185-
self.setIndentationGuidesBackgroundColor(QColor(self.settings.value("pythonConsole/marginBackgroundColorEditor", QColor("#f9f9f9"))))
186-
self.setEdgeColor(QColor(self.settings.value("pythonConsole/edgeColorEditor", QColor("#FF0000"))))
187-
foldColor = QColor(self.settings.value("pythonConsole/foldColorEditor", QColor("#f4f4f4")))
202+
self.setSelectionForegroundColor(QColor(self.settings.value("pythonConsole/selectionForegroundColorEditor", QColor(self.SELECTION_FOREGROUND_COLOR))))
203+
self.setSelectionBackgroundColor(QColor(self.settings.value("pythonConsole/selectionBackgroundColorEditor", QColor(self.SELECTION_BACKGROUND_COLOR))))
204+
self.setMatchedBraceBackgroundColor(QColor(self.settings.value("pythonConsole/matchedBraceBackgroundColorEditor", QColor(self.MATCHED_BRACE_BACKGROUND_COLOR))))
205+
self.setMatchedBraceForegroundColor(QColor(self.settings.value("pythonConsole/matchedBraceForegroundColorEditor", QColor(self.MATCHED_BRACE_FOREGROUND_COLOR))))
206+
self.setMarginsForegroundColor(QColor(self.settings.value("pythonConsole/marginForegroundColorEditor", QColor(self.MARGIN_FOREGROUND_COLOR))))
207+
self.setMarginsBackgroundColor(QColor(self.settings.value("pythonConsole/marginBackgroundColorEditor", QColor(self.MARGIN_BACKGROUND_COLOR))))
208+
self.setIndentationGuidesForegroundColor(QColor(self.settings.value("pythonConsole/marginForegroundColorEditor", QColor(self.MARGIN_FOREGROUND_COLOR))))
209+
self.setIndentationGuidesBackgroundColor(QColor(self.settings.value("pythonConsole/marginBackgroundColorEditor", QColor(self.MARGIN_BACKGROUND_COLOR))))
210+
self.setEdgeColor(QColor(self.settings.value("pythonConsole/edgeColorEditor", QColor(self.EDGE_COLOR))))
211+
foldColor = QColor(self.settings.value("pythonConsole/foldColorEditor", QColor(self.FOLD_COLOR)))
188212
self.setFoldMarginColors(foldColor, foldColor)
189213

190214
# Set Python lexer
@@ -203,8 +227,8 @@ def settingsEditor(self):
203227
else:
204228
self.setAutoCompletionSource(self.AcsNone)
205229

206-
caretLineColorEditor = self.settings.value("pythonConsole/caretLineColorEditor", QColor("#fcf3ed"))
207-
cursorColorEditor = self.settings.value("pythonConsole/cursorColorEditor", QColor(Qt.black))
230+
caretLineColorEditor = self.settings.value("pythonConsole/caretLineColorEditor", QColor(self.CARET_LINE_COLOR))
231+
cursorColorEditor = self.settings.value("pythonConsole/cursorColorEditor", QColor(self.CURSOR_COLOR))
208232
self.setCaretLineBackgroundColor(caretLineColorEditor)
209233
self.setCaretForegroundColor(cursorColorEditor)
210234

@@ -237,25 +261,25 @@ def setLexers(self):
237261
font.setPointSize(fontSize)
238262

239263
self.lexer.setDefaultFont(font)
240-
self.lexer.setDefaultColor(QColor(self.settings.value("pythonConsole/defaultFontColorEditor", QColor(Qt.black))))
241-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/commentFontColorEditor", QColor(Qt.gray))), 1)
242-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/numberFontColorEditor", QColor("#4e9a06"))), 2)
243-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/keywordFontColorEditor", QColor(Qt.darkGreen))), 5)
244-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/classFontColorEditor", QColor(Qt.blue))), 8)
245-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/methodFontColorEditor", QColor(Qt.darkGray))), 9)
246-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/decorFontColorEditor", QColor(Qt.darkBlue))), 15)
247-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/commentBlockFontColorEditor", QColor(Qt.gray))), 12)
248-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/singleQuoteFontColorEditor", QColor(Qt.blue))), 4)
249-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/doubleQuoteFontColorEditor", QColor(Qt.blue))), 3)
250-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/tripleSingleQuoteFontColorEditor", QColor(Qt.blue))), 6)
251-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/tripleDoubleQuoteFontColorEditor", QColor(Qt.blue))), 7)
264+
self.lexer.setDefaultColor(QColor(self.settings.value("pythonConsole/defaultFontColorEditor", QColor(self.DEFAULT_COLOR))))
265+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/commentFontColorEditor", QColor(self.COMMENT_COLOR))), 1)
266+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/numberFontColorEditor", QColor(self.NUMBER_COLOR))), 2)
267+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/keywordFontColorEditor", QColor(self.KEYWORD_COLOR))), 5)
268+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/classFontColorEditor", QColor(self.CLASS_COLOR))), 8)
269+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/methodFontColorEditor", QColor(self.METHOD_COLOR))), 9)
270+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/decorFontColorEditor", QColor(self.DECORATION_COLOR))), 15)
271+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/commentBlockFontColorEditor", QColor(self.COMMENT_BLOCK_COLOR))), 12)
272+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/singleQuoteFontColorEditor", QColor(self.SINGLE_QUOTE_COLOR))), 4)
273+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/doubleQuoteFontColorEditor", QColor(self.DOUBLE_QUOTE_COLOR))), 3)
274+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/tripleSingleQuoteFontColorEditor", QColor(self.TRIPLE_SINGLE_QUOTE_COLOR))), 6)
275+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/tripleDoubleQuoteFontColorEditor", QColor(self.TRIPLE_DOUBLE_QUOTE_COLOR))), 7)
252276
self.lexer.setFont(font, 1)
253277
self.lexer.setFont(font, 3)
254278
self.lexer.setFont(font, 4)
255279
self.lexer.setFont(font, QsciLexerPython.UnclosedString)
256280

257281
for style in range(0, 33):
258-
paperColor = QColor(self.settings.value("pythonConsole/paperBackgroundColorEditor", QColor(Qt.white)))
282+
paperColor = QColor(self.settings.value("pythonConsole/paperBackgroundColorEditor", QColor(self.BACKGROUND_COLOR)))
259283
self.lexer.setPaper(paperColor, style)
260284

261285
self.api = QsciAPIs(self.lexer)

‎python/console/console_output.py‎

Lines changed: 44 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030

3131
class writeOut(object):
3232

33+
ERROR_COLOR = "#e31a1c"
34+
3335
def __init__(self, shellOut, out=None, style=None):
3436
"""
3537
This class allows writing to stdout and stderr
@@ -42,7 +44,7 @@ def __init__(self, shellOut, out=None, style=None):
4244
def write(self, m):
4345
if self.style == "_traceback":
4446
# Show errors in red
45-
stderrColor = QColor(self.sO.settings.value("pythonConsole/stderrFontColor", QColor(Qt.red)))
47+
stderrColor = QColor(self.sO.settings.value("pythonConsole/stderrFontColor", QColor(self.ERROR_COLOR)))
4648
self.sO.SendScintilla(QsciScintilla.SCI_STYLESETFORE, 0o01, stderrColor)
4749
self.sO.SendScintilla(QsciScintilla.SCI_STYLESETITALIC, 0o01, True)
4850
self.sO.SendScintilla(QsciScintilla.SCI_STYLESETBOLD, 0o01, True)
@@ -86,6 +88,28 @@ def isatty(self):
8688

8789
class ShellOutputScintilla(QsciScintilla):
8890

91+
DEFAULT_COLOR = "#4d4d4c"
92+
KEYWORD_COLOR = "#8959a8"
93+
CLASS_COLOR = "#4271ae"
94+
METHOD_COLOR = "#4271ae"
95+
DECORATION_COLOR = "#3e999f"
96+
NUMBER_COLOR = "#c82829"
97+
COMMENT_COLOR = "#8e908c"
98+
COMMENT_BLOCK_COLOR = "#8e908c"
99+
BACKGROUND_COLOR = "#ffffff"
100+
CURSOR_COLOR = "#636363"
101+
CARET_LINE_COLOR = "#efefef"
102+
SINGLE_QUOTE_COLOR = "#718c00"
103+
DOUBLE_QUOTE_COLOR = "#718c00"
104+
TRIPLE_SINGLE_QUOTE_COLOR = "#eab700"
105+
TRIPLE_DOUBLE_QUOTE_COLOR = "#eab700"
106+
MARGIN_BACKGROUND_COLOR = "#efefef"
107+
MARGIN_FOREGROUND_COLOR = "#636363"
108+
SELECTION_BACKGROUND_COLOR = "#d7d7d7"
109+
SELECTION_FOREGROUND_COLOR = "#303030"
110+
MATCHED_BRACE_BACKGROUND_COLOR = "#b7f907"
111+
MATCHED_BRACE_FOREGROUND_COLOR = "#303030"
112+
89113
def __init__(self, parent=None):
90114
super(ShellOutputScintilla, self).__init__(parent)
91115
self.parent = parent
@@ -159,13 +183,12 @@ def insertInitText(self):
159183
def refreshSettingsOutput(self):
160184
# Set Python lexer
161185
self.setLexers()
162-
self.setSelectionForegroundColor(QColor(self.settings.value("pythonConsole/selectionForegroundColor", QColor("#2e3436"))))
163-
self.setSelectionBackgroundColor(QColor(self.settings.value("pythonConsole/selectionBackgroundColor", QColor("#babdb6"))))
164-
self.setMatchedBraceBackgroundColor(QColor(self.settings.value("pythonConsole/matchedBraceColor", QColor("#b7f907"))))
165-
self.setMarginsForegroundColor(QColor(self.settings.value("pythonConsole/marginForegroundColor", QColor("#3E3EE3"))))
166-
self.setMarginsBackgroundColor(QColor(self.settings.value("pythonConsole/marginBackgroundColor", QColor("#f9f9f9"))))
167-
caretLineColor = self.settings.value("pythonConsole/caretLineColor", QColor("#fcf3ed"))
168-
cursorColor = self.settings.value("pythonConsole/cursorColor", QColor(Qt.black))
186+
self.setSelectionForegroundColor(QColor(self.settings.value("pythonConsole/selectionForegroundColor", QColor(self.SELECTION_FOREGROUND_COLOR))))
187+
self.setSelectionBackgroundColor(QColor(self.settings.value("pythonConsole/selectionBackgroundColor", QColor(self.SELECTION_BACKGROUND_COLOR))))
188+
self.setMarginsForegroundColor(QColor(self.settings.value("pythonConsole/marginForegroundColor", QColor(self.MARGIN_FOREGROUND_COLOR))))
189+
self.setMarginsBackgroundColor(QColor(self.settings.value("pythonConsole/marginBackgroundColor", QColor(self.MARGIN_BACKGROUND_COLOR))))
190+
caretLineColor = self.settings.value("pythonConsole/caretLineColor", QColor(self.CARET_LINE_COLOR))
191+
cursorColor = self.settings.value("pythonConsole/cursorColor", QColor(self.CURSOR_COLOR))
169192
self.setCaretLineBackgroundColor(caretLineColor)
170193
self.setCaretForegroundColor(cursorColor)
171194

@@ -182,18 +205,18 @@ def setLexers(self):
182205
font.setPointSize(fontSize)
183206

184207
self.lexer.setDefaultFont(font)
185-
self.lexer.setDefaultColor(QColor(self.settings.value("pythonConsole/defaultFontColor", QColor(Qt.black))))
186-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/commentFontColor", QColor(Qt.gray))), 1)
187-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/numberFontColorEditor", QColor("#4e9a06"))), 2)
188-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/keywordFontColor", QColor(Qt.darkGreen))), 5)
189-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/classFontColor", QColor(Qt.blue))), 8)
190-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/methodFontColor", QColor(Qt.darkGray))), 9)
191-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/decorFontColor", QColor(Qt.darkBlue))), 15)
192-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/commentBlockFontColor", QColor(Qt.gray))), 12)
193-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/singleQuoteFontColor", QColor(Qt.blue))), 4)
194-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/doubleQuoteFontColor", QColor(Qt.blue))), 3)
195-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/tripleSingleQuoteFontColor", QColor(Qt.blue))), 6)
196-
self.lexer.setColor(QColor(self.settings.value("pythonConsole/tripleDoubleQuoteFontColor", QColor(Qt.blue))), 7)
208+
self.lexer.setDefaultColor(QColor(self.settings.value("pythonConsole/defaultFontColor", QColor(self.DEFAULT_COLOR))))
209+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/commentFontColor", QColor(self.COMMENT_COLOR))), 1)
210+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/numberFontColor", QColor(self.NUMBER_COLOR))), 2)
211+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/keywordFontColor", QColor(self.KEYWORD_COLOR))), 5)
212+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/classFontColor", QColor(self.CLASS_COLOR))), 8)
213+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/methodFontColor", QColor(self.METHOD_COLOR))), 9)
214+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/decorFontColor", QColor(self.DECORATION_COLOR))), 15)
215+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/commentBlockFontColor", QColor(self.COMMENT_BLOCK_COLOR))), 12)
216+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/singleQuoteFontColor", QColor(self.SINGLE_QUOTE_COLOR))), 4)
217+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/doubleQuoteFontColor", QColor(self.DOUBLE_QUOTE_COLOR))), 3)
218+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/tripleSingleQuoteFontColor", QColor(self.TRIPLE_SINGLE_QUOTE_COLOR))), 6)
219+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/tripleDoubleQuoteFontColor", QColor(self.TRIPLE_DOUBLE_QUOTE_COLOR))), 7)
197220
self.lexer.setColor(QColor(Qt.red), 14)
198221
self.lexer.setFont(font, 1)
199222
self.lexer.setFont(font, 2)
@@ -202,7 +225,7 @@ def setLexers(self):
202225
self.lexer.setFont(font, QsciLexerPython.UnclosedString)
203226

204227
for style in range(0, 33):
205-
paperColor = QColor(self.settings.value("pythonConsole/paperBackgroundColor", QColor(Qt.white)))
228+
paperColor = QColor(self.settings.value("pythonConsole/paperBackgroundColor", QColor(self.BACKGROUND_COLOR)))
206229
self.lexer.setPaper(paperColor, style)
207230

208231
self.setLexer(self.lexer)

0 commit comments

Comments
 (0)