Sat, 16 Mar 2019 14:08:02 +0100
PreferencesLexer, SubstyledLexer: completed the list of methods.
Preferences/PreferencesLexer.py | file | annotate | diff | comparison | revisions | |
QScintilla/Lexers/SubstyledLexer.py | file | annotate | diff | comparison | revisions |
--- a/Preferences/PreferencesLexer.py Thu Mar 14 19:43:40 2019 +0100 +++ b/Preferences/PreferencesLexer.py Sat Mar 16 14:08:02 2019 +0100 @@ -337,6 +337,76 @@ 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 + @type int + @return whitespace separated default list of words + @rtype str + """ + if substyle >= 0: + words = self.__lex.substyleDefaultWords(style, substyle) + else: + words = "" + + 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 + @type int + @return whitespace separated list of words + @rtype str + """ + if substyle >= 0: + words = self.__lex.substyleWords(style, substyle) + else: + words = "" + + 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 + @type int + @param substyle sub-style number + @type int + """ + 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 + @type int + @return default description of the style + @rtype str + """ + if substyle >= 0: + desc = self.__lex.substyleDefaultDescription(style, substyle) + else: + # for base styles return the hard coded description + desc = self.__lex.description(style) + + return desc + def description(self, style, substyle=-1): """ Public method to get a descriptive string for a style. @@ -348,7 +418,27 @@ @return description of the style @rtype str """ - return self.__lex.description(style) + if substyle >= 0: + desc = self.__lex.substyleDescription(style, substyle) + else: + desc = 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 + @type int + @param substyle sub-style number + @type int + """ + if substyle >= 0: + # only supported for sub-styles + self.__lex.setSubstyleDescription(description, style, substyle) def language(self): """ @@ -358,3 +448,32 @@ @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 + @type int + @return flag indicating the existence of a style definition + @rtype bool + """ + if substyle >= 0: + ok = self.__lex.hasSubstyle(style, substyle) + else: + ok = True + + return ok + + 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)
--- a/QScintilla/Lexers/SubstyledLexer.py Thu Mar 14 19:43:40 2019 +0100 +++ b/QScintilla/Lexers/SubstyledLexer.py Sat Mar 16 14:08:02 2019 +0100 @@ -249,9 +249,11 @@ key = "Scintilla/{0}/style{1}/SubStyleLength".format( self.language(), baseStyle) settings.setValue(key, len(self.__subStyles[baseStyle])) - for subStyle in self.__subStyles[baseStyle]: + subStyleIndex = -1 + for subStyle in sorted(self.__subStyles[baseStyle].keys()): + subStyleIndex += 1 substyleKey = "Scintilla/{0}/style{1}/substyle{2}/".format( - self.language(), baseStyle, subStyle) + self.language(), baseStyle, subStyleIndex) subStyleData = self.__subStyles[baseStyle][subStyle] if not subStyleData["Description"] and \ @@ -735,7 +737,7 @@ def delSubstyle(self, style, substyle): """ - Public method to delet a given sub-style definition. + Public method to delete a given sub-style definition. @param style base style number @type int @@ -751,3 +753,17 @@ ok = True return ok + + def hasSubstyle(self, style, substyle): + """ + Public method to test for a given sub-style definition. + + @param style base style number + @type int + @param substyle sub-style number + @type int + @return flag indicating the existence of a sub-style definition + @rtype bool + """ + return (style in self.__subStyles and + substyle in self.__subStyles[style])