--- a/src/eric7/Preferences/PreferencesLexer.py Wed Jul 13 11:16:20 2022 +0200 +++ b/src/eric7/Preferences/PreferencesLexer.py Wed Jul 13 14:55:47 2022 +0200 @@ -18,27 +18,28 @@ """ Class defining a special error for the PreferencesLexer class. """ + def __init__(self): """ Constructor """ self._errorMessage = QCoreApplication.translate( - "PreferencesLexerError", - "Unspecific PreferencesLexer error.") - + "PreferencesLexerError", "Unspecific PreferencesLexer error." + ) + def __repr__(self): """ Special method returning a representation of the exception. - + @return string representing the error message @rtype str """ return repr(self._errorMessage) - + def __str__(self): """ Special method returning a string representation of the exception. - + @return string representing the error message @rtype str """ @@ -49,17 +50,18 @@ """ Class defining a special error for the PreferencesLexer class. """ + def __init__(self, language): """ Constructor - + @param language lexer language @type str """ PreferencesLexerError.__init__(self) self._errorMessage = QCoreApplication.translate( - "PreferencesLexerError", - 'Unsupported Lexer Language: {0}').format(language) + "PreferencesLexerError", "Unsupported Lexer Language: {0}" + ).format(language) class PreferencesLexer(QObject): @@ -67,10 +69,11 @@ Class implementing a Lexer facade for the highlighting styles configuration. """ + def __init__(self, language, parent=None): """ Constructor - + @param language language of the lexer @type str @param parent parent widget of this lexer (QWidget) @@ -78,7 +81,7 @@ lexer language """ super().__init__(parent) - + # These default font families are taken from QScintilla if Globals.isWindowsPlatform(): self.__defaultFontFamily = "Courier New" @@ -86,18 +89,19 @@ self.__defaultFontFamily = "Courier" else: self.__defaultFontFamily = "Bitstream Vera Sans Mono" - + # instantiate a lexer object for the given language import QScintilla.Lexers + self.__lex = QScintilla.Lexers.getLexer(language) if self.__lex is None: raise PreferencesLexerLanguageError(language) - + # read the last stored values from preferences file self.__lex.readSettings(Preferences.getSettings(), "Scintilla") if self.__lex.hasSubstyles(): self.__lex.loadSubstyles() - + def writeSettings(self): """ Public method to write the lexer settings. @@ -105,17 +109,17 @@ self.__lex.writeSettings(Preferences.getSettings(), "Scintilla") if self.__lex.hasSubstyles(): self.__lex.writeSubstyles() - + def getStyles(self): """ Public method to get a list of all supported styles. - + @return list of tuples each containing the description of the style, style number and sub-style number (or -1 for no sub-style) @rtype list of tuples of (str, int, int) """ styles = [] - + for i in range(QsciScintillaBase.STYLE_MAX): desc = self.__lex.description(i) if desc: @@ -125,13 +129,13 @@ for subStyle in range(self.__lex.substylesCount(baseStyle)): desc = self.__lex.substyleDescription(baseStyle, subStyle) styles.append((desc, baseStyle, subStyle)) - + return styles - + def getSubStyles(self, style): """ Public method to get a list of all sub-styles of a style. - + @param style style number @type int @return list of tuples each containing the description of the style, @@ -139,18 +143,18 @@ @rtype list of tuples of (str, int, int) """ styles = [] - + if self.isBaseStyle(style): for subStyle in range(self.__lex.substylesCount(style)): desc = self.__lex.substyleDescription(style, subStyle) styles.append((desc, style, subStyle)) - + return styles - + def defaultColor(self, style, substyle=-1): """ Public method to get the default color of a style. - + @param style style number @type int @param substyle sub-style number @@ -160,16 +164,16 @@ """ color = ( self.__lex.substyleDefaultColor(style, substyle) - if substyle >= 0 else - self.__lex.defaultColor(style) + if substyle >= 0 + else self.__lex.defaultColor(style) ) - + return color - + def color(self, style, substyle=-1): """ Public method to get the color of a style. - + @param style style number @type int @param substyle sub-style number @@ -179,16 +183,16 @@ """ color = ( self.__lex.substyleColor(style, substyle) - if substyle >= 0 else - self.__lex.color(style) + if substyle >= 0 + else self.__lex.color(style) ) - + return color - + def setColor(self, c, style, substyle=-1): """ Public method to set the color for a style. - + @param c color @type QColor @param style style number @@ -200,11 +204,11 @@ self.__lex.setSubstyleColor(c, style, substyle) else: self.__lex.setColor(c, style) - + def defaultPaper(self, style, substyle=-1): """ Public method to get the default background for a style. - + @param style style number @type int @param substyle sub-style number @@ -214,16 +218,16 @@ """ color = ( self.__lex.substyleDefaultPaper(style, substyle) - if substyle >= 0 else - self.__lex.defaultPaper(style) + if substyle >= 0 + else self.__lex.defaultPaper(style) ) - + return color - + def paper(self, style, substyle=-1): """ Public method to get the background for a style. - + @param style the style number @type int @param substyle sub-style number @@ -233,16 +237,16 @@ """ color = ( self.__lex.substylePaper(style, substyle) - if substyle >= 0 else - self.__lex.paper(style) + if substyle >= 0 + else self.__lex.paper(style) ) - + return color - + def setPaper(self, c, style, substyle=-1): """ Public method to set the background for a style. - + @param c background color @type QColor @param style style number @@ -254,11 +258,11 @@ self.__lex.setSubstylePaper(c, style, substyle) else: self.__lex.setPaper(c, style) - + def defaultEolFill(self, style, substyle=-1): """ Public method to get the default eolFill flag for a style. - + @param style style number @type int @param substyle sub-style number @@ -268,16 +272,16 @@ """ eolFill = ( self.__lex.substyleDefaultEolFill(style, substyle) - if substyle >= 0 else - self.__lex.defaultEolFill(style) + if substyle >= 0 + else self.__lex.defaultEolFill(style) ) - + return eolFill - + def eolFill(self, style, substyle=-1): """ Public method to get the eolFill flag for a style. - + @param style style number @type int @param substyle sub-style number @@ -287,16 +291,16 @@ """ eolFill = ( self.__lex.substyleEolFill(style, substyle) - if substyle >= 0 else - self.__lex.eolFill(style) + if substyle >= 0 + else self.__lex.eolFill(style) ) - + return eolFill - + def setEolFill(self, eolfill, style, substyle=-1): """ Public method to set the eolFill flag for a style. - + @param eolfill eolFill flag @type bool @param style style number @@ -308,11 +312,11 @@ self.__lex.setSubstyleEolFill(eolfill, style, substyle) else: self.__lex.setEolFill(eolfill, style) - + def defaultFont(self, style, substyle=-1): """ Public method to get the default font for a style. - + @param style style number @type int @param substyle sub-style number @@ -322,16 +326,16 @@ """ font = ( self.__lex.substyleDefaultFont(style, substyle) - if substyle >= 0 else - self.__lex.defaultFont(style) + if substyle >= 0 + else self.__lex.defaultFont(style) ) - + return font - + def font(self, style, substyle=-1): """ Public method to get the font for a style. - + @param style style number @type int @param substyle sub-style number @@ -341,16 +345,16 @@ """ font = ( self.__lex.substyleFont(style, substyle) - if substyle >= 0 else - self.__lex.font(style) + if substyle >= 0 + else self.__lex.font(style) ) - + return font - + def setFont(self, f, style, substyle=-1): """ Public method to set the font for a style. - + @param f font @type QFont @param style style number @@ -362,11 +366,11 @@ self.__lex.setSubstyleFont(f, style, substyle) else: self.__lex.setFont(f, style) - + def defaultWords(self, style, substyle=-1): """ Public method to get the default list of words for a style. - + @param style style number @type int @param substyle sub-style number @@ -375,17 +379,15 @@ @rtype str """ words = ( - self.__lex.substyleDefaultWords(style, substyle) - if substyle >= 0 else - "" + self.__lex.substyleDefaultWords(style, substyle) if substyle >= 0 else "" ) - + return words - + def words(self, style, substyle=-1): """ Public method to get the list of words for a style. - + @param style style number @type int @param substyle sub-style number @@ -393,15 +395,14 @@ @return whitespace separated list of words @rtype str """ - words = (self.__lex.substyleWords(style, substyle) if substyle >= 0 - else "") - + words = self.__lex.substyleWords(style, substyle) if substyle >= 0 else "" + return words - + def setWords(self, words, style, substyle=-1): """ Public method to set the list of words for a style. - + @param words whitespace separated list of words @type str @param style style number @@ -412,11 +413,11 @@ if substyle >= 0: # only supported for sub-styles self.__lex.setSubstyleWords(words, style, substyle) - + def defaultDescription(self, style, substyle=-1): """ Public method to get the default descriptive string for a style. - + @param style style number @type int @param substyle sub-style number @@ -426,17 +427,18 @@ """ desc = ( self.__lex.substyleDefaultDescription(style, substyle) - if substyle >= 0 else + if substyle >= 0 + else # for base styles return the hard coded description self.__lex.description(style) ) - + return desc - + def description(self, style, substyle=-1): """ Public method to get a descriptive string for a style. - + @param style style number @type int @param substyle sub-style number @@ -446,16 +448,16 @@ """ desc = ( self.__lex.substyleDescription(style, substyle) - if substyle >= 0 else - self.__lex.description(style) + if substyle >= 0 + else self.__lex.description(style) ) - + return desc - + def setDescription(self, description, style, substyle=-1): """ Public method to set a descriptive string for a style. - + @param description description for the style @type str @param style style number @@ -466,20 +468,20 @@ if substyle >= 0: # only supported for sub-styles self.__lex.setSubstyleDescription(description, style, substyle) - + def language(self): """ Public method to get the lexers programming language. - + @return lexer programming language @rtype str """ return self.__lex.language() - + def hasStyle(self, style, substyle): """ Public method to test for a given style definition. - + @param style style number @type int @param substyle sub-style number @@ -487,37 +489,36 @@ @return flag indicating the existence of a style definition @rtype bool """ - ok = (self.__lex.hasSubstyle(style, substyle) if substyle >= 0 - else True) - + ok = self.__lex.hasSubstyle(style, substyle) if substyle >= 0 else True + return ok - + def isBaseStyle(self, style): """ Public method to test, if a given style may have sub-styles. - + @param style base style number @type int @return flag indicating that the style may have sub-styles @rtype bool """ return self.__lex.hasSubstyles() and self.__lex.isBaseStyle(style) - + def addSubstyle(self, style): """ Public method to add an empty sub-style to a given style. - + @param style style number @type int @return allocated sub-style number or -1 to indicate an error @rtype int """ return self.__lex.addSubstyle(style) - + def delSubstyle(self, style, substyle): """ Public method to delete a given sub-style definition. - + @param style base style number @type int @param substyle sub-style number @@ -526,11 +527,11 @@ @rtype bool """ return self.__lex.delSubstyle(style, substyle) - + def loadDefaultSubStyles(self, style): """ Public method to load the default sub-styles for a given base style. - + @param style style number @type int """