E5XML/HighlightingStylesWriter.py

branch
sub_styles
changeset 6863
e900929889dd
parent 6857
59f6251587fa
child 6867
97e86d2426a9
--- a/E5XML/HighlightingStylesWriter.py	Sat Mar 16 14:10:51 2019 +0100
+++ b/E5XML/HighlightingStylesWriter.py	Sat Mar 16 14:11:43 2019 +0100
@@ -18,7 +18,6 @@
 import Preferences
 
 
-# TODO: add support for sub-styling
 class HighlightingStylesWriter(XMLStreamWriterBase):
     """
     Class implementing the writer class for writing a highlighting styles XML
@@ -60,16 +59,27 @@
         for lexer in self.lexers:
             self.writeStartElement("Lexer")
             self.writeAttribute("name", lexer.language())
-            for style in lexer.descriptions:
+            for description, style, substyle in lexer.getStyles():
                 self.writeStartElement("Style")
                 self.writeAttribute("style", str(style))
-                self.writeAttribute("color", lexer.color(style).name())
-                self.writeAttribute("paper", lexer.paper(style).name())
-                self.writeAttribute("font", lexer.font(style).toString())
-                self.writeAttribute("eolfill", str(lexer.eolFill(style)))
-                self.writeCharacters(lexer.description(style))
-                self.writeEndElement()
-            self.writeEndElement()
+                self.writeAttribute("substyle", str(substyle))
+                self.writeAttribute("color",
+                                    lexer.color(style, substyle).name())
+                self.writeAttribute("paper",
+                                    lexer.paper(style, substyle).name())
+                self.writeAttribute("font",
+                                    lexer.font(style, substyle).toString())
+                self.writeAttribute("eolfill",
+                                    str(lexer.eolFill(style, substyle)))
+                self.writeStartElement("Description")
+                self.writeCharacters(lexer.description(style, substyle))
+                self.writeEndElement()      # Description
+                if substyle >= 0:
+                    self.writeStartElement("Words")
+                    self.writeCharacters(lexer.words(style, substyle).strip())
+                    self.writeEndElement()      # Words
+                self.writeEndElement()      # Style
+            self.writeEndElement()          # Lexer
         
-        self.writeEndElement()
+        self.writeEndElement()              # HighlightingStyles
         self.writeEndDocument()

eric ide

mercurial