diff -r 50069cc0ee49 -r 20899dc18e59 QScintilla/Lexers/SubstyledLexer.py --- 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])