diff -r 495f084a737e -r 36a90a94765c src/eric7/EricGui/EricGenericDiffHighlighter.py --- a/src/eric7/EricGui/EricGenericDiffHighlighter.py Mon Sep 23 14:37:31 2024 +0200 +++ b/src/eric7/EricGui/EricGenericDiffHighlighter.py Tue Sep 24 17:52:41 2024 +0200 @@ -11,8 +11,6 @@ from PyQt6.QtGui import QFont, QSyntaxHighlighter, QTextCharFormat -from eric7 import Preferences - def TERMINAL(pattern): """ @@ -44,20 +42,6 @@ """ super().__init__(doc) - self.regenerateRules() - - def __initColours(self): - """ - Private method to initialize the highlighter colours. - """ - self.textColor = Preferences.getDiffColour("TextColor") - self.addedColor = Preferences.getDiffColour("AddedColor") - self.removedColor = Preferences.getDiffColour("RemovedColor") - self.replacedColor = Preferences.getDiffColour("ReplacedColor") - self.contextColor = Preferences.getDiffColour("ContextColor") - self.headerColor = Preferences.getDiffColour("HeaderColor") - self.whitespaceColor = Preferences.getDiffColour("BadWhitespaceColor") - def createRules(self, *rules): """ Public method to create the highlighting rules. @@ -112,7 +96,7 @@ @return format definiton @rtype QTextCharFormat """ - font = Preferences.getEditorOtherFonts("MonospacedFont") + font = QFont(self.baseFont) charFormat = QTextCharFormat() charFormat.setFontFamilies([font.family()]) charFormat.setFontPointSize(font.pointSize()) @@ -163,13 +147,26 @@ self.setFormat(start, start + length, formatStr[groupIndex]) start += length - def regenerateRules(self): + def regenerateRules(self, colors, font): """ Public method to initialize or regenerate the syntax highlighter rules. + + @param colors dictionary containing the different color values (keys are + "text", "added", "removed","replaced", "context", "header", "whitespace") + @type dict[str: QColor] + @param font font + @type QFont """ + self.baseFont = font self.normalFormat = self.makeFormat() - self.__initColours() + self.textColor = colors["text"] + self.addedColor = colors["added"] + self.removedColor = colors["removed"] + self.replacedColor = colors["replaced"] + self.contextColor = colors["context"] + self.headerColor = colors["header"] + self.whitespaceColor = colors["whitespace"] self._rules = [] self.generateRules()