PreferencesLexer, SubstyledLexer: completed the list of methods. sub_styles

Sat, 16 Mar 2019 14:08:02 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 16 Mar 2019 14:08:02 +0100
branch
sub_styles
changeset 6861
20899dc18e59
parent 6860
50069cc0ee49
child 6862
6f4237ccf576

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])

eric ide

mercurial