--- a/QScintilla/Lexers/SubstyledLexer.py Thu Mar 14 19:41:53 2019 +0100 +++ b/QScintilla/Lexers/SubstyledLexer.py Thu Mar 14 19:42:25 2019 +0100 @@ -73,14 +73,14 @@ key = "Scintilla/{0}/style{1}/SubStyleLength".format( self.language(), baseStyle) if settings.contains(key): - subStyleLength = int(settings.value(key), 0) + subStyleLength = int(settings.value(key)) if subStyleLength: self.__subStyles[baseStyle] = {} for subStyle in range(subStyleLength): substyleKey = \ "Scintilla/{0}/style{1}/substyle{2}/"\ .format(self.language(), baseStyle, subStyle) - if settings.contains(substyleKey): + if settings.contains(substyleKey + "Description"): subStyleData = {} subStyleData["Description"] = settings.value( substyleKey + "Description", "") @@ -122,6 +122,12 @@ self.__subStyles[baseStyle][subStyle] = \ subStyleData + + else: + # initialize with default + self.__subStyles[baseStyle][subStyle] = \ + copy.deepcopy(self.defaultSubStyles + [baseStyle][subStyle]) self.__subStylesInitialized = True @@ -231,9 +237,8 @@ key = "Scintilla/{0}/style{1}/SubStyleLength".format( self.language(), baseStyle) if settings.contains(key): - subStyleLength = int(settings.value(key), 0) + subStyleLength = int(settings.value(key)) if subStyleLength: - self.__subStyles[baseStyle] = {} for subStyle in range(subStyleLength): substyleKey = "Scintilla/{0}/style{1}/substyle{2}/"\ .format(self.language(), baseStyle, subStyle) @@ -304,7 +309,7 @@ underline = font.underline() settings.setValue(substyleKey + "font_underline", underline) - def hasSubStyles(self): + def hasSubstyles(self): """ Public method to indicate the support of sub-styles.