Changed the way editor lexers are instantiated. eric7

Tue, 08 Nov 2022 11:14:44 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 08 Nov 2022 11:14:44 +0100
branch
eric7
changeset 9484
d2eb8f0a5bf0
parent 9483
1208b0ef8ccb
child 9485
0f3620304d7a

Changed the way editor lexers are instantiated.

src/eric7/QScintilla/Lexers/LexerBash.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerBatch.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerCMake.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerCPP.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerCSS.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerCSharp.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerCoffeeScript.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerD.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerDiff.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerFortran.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerFortran77.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerHTML.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerIDL.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerJSON.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerJava.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerJavaScript.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerLua.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerMakefile.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerMarkdown.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerMatlab.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerOctave.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerPO.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerPOV.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerPascal.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerPerl.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerPostScript.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerProperties.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerPython.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerQSS.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerRuby.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerSQL.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerTCL.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerTeX.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerVHDL.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerXML.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/LexerYAML.py file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Lexers/__init__.py file | annotate | diff | comparison | revisions
--- a/src/eric7/QScintilla/Lexers/LexerBash.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerBash.py	Tue Nov 08 11:14:44 2022 +0100
@@ -71,3 +71,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerBash.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerBash
+    """
+    return LexerBash(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerBatch.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerBatch.py	Tue Nov 08 11:14:44 2022 +0100
@@ -59,3 +59,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerBatch.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerBatch
+    """
+    return LexerBatch(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerCMake.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerCMake.py	Tue Nov 08 11:14:44 2022 +0100
@@ -68,3 +68,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerCMake.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerCMake
+    """
+    return LexerCMake(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerCPP.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerCPP.py	Tue Nov 08 11:14:44 2022 +0100
@@ -21,15 +21,16 @@
     Subclass to implement some additional lexer dependant methods.
     """
 
-    def __init__(self, parent=None, caseInsensitiveKeywords=False):
+    def __init__(self, parent=None):
         """
         Constructor
 
         @param parent parent widget of this lexer
-        @param caseInsensitiveKeywords flag indicating keywords are case
-            insensitive (boolean)
+        @type QObject
         """
-        QsciLexerCPP.__init__(self, parent, caseInsensitiveKeywords)
+        QsciLexerCPP.__init__(
+            self, parent, Preferences.getEditor("CppCaseInsensitiveKeywords")
+        )
         SubstyledLexer.__init__(self)
 
         self.commentString = "//"
@@ -187,3 +188,17 @@
         @return maximum keyword set (integer)
         """
         return 4
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerCPP
+    """
+    return LexerCPP(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerCSS.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerCSS.py	Tue Nov 08 11:14:44 2022 +0100
@@ -154,3 +154,17 @@
             return "selection ^-moz- ^-webkit- ^-o- ^-ms-"
 
         return QsciLexerCSS.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerCSS
+    """
+    return LexerCSS(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerCSharp.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerCSharp.py	Tue Nov 08 11:14:44 2022 +0100
@@ -100,3 +100,17 @@
         @return maximum keyword set (integer)
         """
         return 4
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerCSharp
+    """
+    return LexerCSharp(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerCoffeeScript.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerCoffeeScript.py	Tue Nov 08 11:14:44 2022 +0100
@@ -95,3 +95,17 @@
         @return maximum keyword set (integer)
         """
         return 4
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerCoffeeScript
+    """
+    return LexerCoffeeScript(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerD.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerD.py	Tue Nov 08 11:14:44 2022 +0100
@@ -104,3 +104,17 @@
         @return maximum keyword set (integer)
         """
         return 7
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerD
+    """
+    return LexerD(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerDiff.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerDiff.py	Tue Nov 08 11:14:44 2022 +0100
@@ -54,3 +54,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerDiff.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerDiff
+    """
+    return LexerDiff(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerFortran.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerFortran.py	Tue Nov 08 11:14:44 2022 +0100
@@ -80,3 +80,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerFortran.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerFortran
+    """
+    return LexerFortran(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerFortran77.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerFortran77.py	Tue Nov 08 11:14:44 2022 +0100
@@ -80,3 +80,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerFortran77.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerFortran77
+    """
+    return LexerFortran77(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerHTML.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerHTML.py	Tue Nov 08 11:14:44 2022 +0100
@@ -122,3 +122,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerHTML.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerHTML
+    """
+    return LexerHTML(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerIDL.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerIDL.py	Tue Nov 08 11:14:44 2022 +0100
@@ -100,3 +100,17 @@
         @return maximum keyword set (integer)
         """
         return 4
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerIDL
+    """
+    return LexerIDL(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerJSON.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerJSON.py	Tue Nov 08 11:14:44 2022 +0100
@@ -80,3 +80,17 @@
         @return maximum keyword set (integer)
         """
         return 2
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerJSON
+    """
+    return LexerJSON(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerJava.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerJava.py	Tue Nov 08 11:14:44 2022 +0100
@@ -100,3 +100,17 @@
         @return maximum keyword set (integer)
         """
         return 4
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerJava
+    """
+    return LexerJava(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerJavaScript.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerJavaScript.py	Tue Nov 08 11:14:44 2022 +0100
@@ -100,3 +100,17 @@
         @return maximum keyword set (integer)
         """
         return 4
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerJavaScript
+    """
+    return LexerJavaScript(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerLua.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerLua.py	Tue Nov 08 11:14:44 2022 +0100
@@ -94,3 +94,17 @@
         @return maximum keyword set (integer)
         """
         return 8
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerLua
+    """
+    return LexerLua(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerMakefile.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerMakefile.py	Tue Nov 08 11:14:44 2022 +0100
@@ -57,3 +57,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerMakefile.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerMakefile
+    """
+    return LexerMakefile(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerMarkdown.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerMarkdown.py	Tue Nov 08 11:14:44 2022 +0100
@@ -36,3 +36,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerMarkdown.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerMarkdown
+    """
+    return LexerMarkdown(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerMatlab.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerMatlab.py	Tue Nov 08 11:14:44 2022 +0100
@@ -61,3 +61,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerMatlab.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerMatlab
+    """
+    return LexerMatlab(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerOctave.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerOctave.py	Tue Nov 08 11:14:44 2022 +0100
@@ -61,3 +61,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerOctave.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerOctave
+    """
+    return LexerOctave(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerPO.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerPO.py	Tue Nov 08 11:14:44 2022 +0100
@@ -69,3 +69,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerPO.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerPO
+    """
+    return LexerPO(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerPOV.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerPOV.py	Tue Nov 08 11:14:44 2022 +0100
@@ -77,3 +77,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerPOV.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerPOV
+    """
+    return LexerPOV(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerPascal.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerPascal.py	Tue Nov 08 11:14:44 2022 +0100
@@ -92,3 +92,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerPascal.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerPascal
+    """
+    return LexerPascal(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerPerl.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerPerl.py	Tue Nov 08 11:14:44 2022 +0100
@@ -92,3 +92,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerPerl.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerPerl
+    """
+    return LexerPerl(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerPostScript.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerPostScript.py	Tue Nov 08 11:14:44 2022 +0100
@@ -81,3 +81,17 @@
         @return maximum keyword set (integer)
         """
         return 5
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerPostScript
+    """
+    return LexerPostScript(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerProperties.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerProperties.py	Tue Nov 08 11:14:44 2022 +0100
@@ -68,3 +68,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerProperties.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerProperties
+    """
+    return LexerProperties(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerPython.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerPython.py	Tue Nov 08 11:14:44 2022 +0100
@@ -264,3 +264,17 @@
         @return maximum keyword set (integer)
         """
         return 2
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerPython
+    """
+    return LexerPython(variant=variant, parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerQSS.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerQSS.py	Tue Nov 08 11:14:44 2022 +0100
@@ -169,3 +169,17 @@
         @return lexer name (string)
         """
         return "QSS"
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerQSS
+    """
+    return LexerQSS(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerRuby.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerRuby.py	Tue Nov 08 11:14:44 2022 +0100
@@ -87,3 +87,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerRuby.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerRuby
+    """
+    return LexerRuby(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerSQL.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerSQL.py	Tue Nov 08 11:14:44 2022 +0100
@@ -99,3 +99,17 @@
         @return maximum keyword set (integer)
         """
         return 8
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerSQL
+    """
+    return LexerSQL(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerTCL.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerTCL.py	Tue Nov 08 11:14:44 2022 +0100
@@ -92,3 +92,17 @@
         @return maximum keyword set (integer)
         """
         return 9
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerTCL
+    """
+    return LexerTCL(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerTeX.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerTeX.py	Tue Nov 08 11:14:44 2022 +0100
@@ -213,3 +213,17 @@
             return texKeywords + " " + etexKeywords + " " + pdftexKeywords
 
         return None
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerTeX
+    """
+    return LexerTeX(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerVHDL.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerVHDL.py	Tue Nov 08 11:14:44 2022 +0100
@@ -84,3 +84,17 @@
         @return maximum keyword set (integer)
         """
         return 7
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerVHDL
+    """
+    return LexerVHDL(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerXML.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerXML.py	Tue Nov 08 11:14:44 2022 +0100
@@ -120,3 +120,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerXML.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerXML
+    """
+    return LexerXML(parent=parent)
--- a/src/eric7/QScintilla/Lexers/LexerYAML.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/LexerYAML.py	Tue Nov 08 11:14:44 2022 +0100
@@ -66,3 +66,17 @@
         @return string giving the keywords (string) or None
         """
         return QsciLexerYAML.keywords(self, kwSet)
+
+
+def createLexer(variant="", parent=None):
+    """
+    Function to instantiate a lexer object.
+
+    @param variant name of the language variant
+    @type str
+    @param parent parent widget of this lexer
+    @type QObject
+    @return instantiated lexer object
+    @rtype LexerYAML
+    """
+    return LexerYAML(parent=parent)
--- a/src/eric7/QScintilla/Lexers/__init__.py	Mon Nov 07 19:07:21 2022 +0100
+++ b/src/eric7/QScintilla/Lexers/__init__.py	Tue Nov 08 11:14:44 2022 +0100
@@ -7,6 +7,8 @@
 Package implementing lexers for the various supported programming languages.
 """
 
+import importlib
+
 from PyQt6.QtCore import QCoreApplication
 
 from eric7 import Preferences
@@ -287,156 +289,56 @@
     @return reference to the instantiated lexer object (QsciLexer)
     """
     if not pyname:
+        languageLexerMapping = {
+            "Bash": "LexerBash",
+            "Batch": "LexerBatch",
+            "C#": "LexerCSharp",
+            "C++": "LexerCPP",
+            "CMake": "LexerCMake",
+            "CoffeeScript": "LexerCoffeeScript",
+            "CSS": "LexerCSS",
+            "Cython": "LexerPython",
+            "D": "LexerD",
+            "Diff": "LexerDiff",
+            "Fortran": "LexerFortran",
+            "Fortran77": "LexerFortran77",
+            "Gettext": "LexerPO",
+            "HTML": "LexerHTML",
+            "IDL": "LexerIDL",
+            "Java": "LexerJava",
+            "JavaScript": "LexerJavaScript",
+            "JSON": "LexerJSON",
+            "Lua": "LexerLua",
+            "Makefile": "LexerMakefile",
+            "Markdown": "LexerMarkdown",
+            "Matlab": "LexerMatlab",
+            "MicroPython": "LexerPython",
+            "Octave": "LexerOctave",
+            "Pascal": "LexerPascal",
+            "Perl": "LexerPerl",
+            "PostScript": "LexerPostScript",
+            "Properties": "LexerProperties",
+            "Povray": "LexerPOV",
+            "Python": "LexerPython",
+            "Python3": "LexerPython",
+            "QSS": "LexerQSS",
+            "Ruby": "LexerRuby",
+            "SQL": "LexerSQL",
+            "TCL": "LexerTCL",
+            "TeX": "LexerTeX",
+            "VHDL": "LexerVHDL",
+            "XML": "LexerXML",
+            "YAML": "LexerYAML",
+        }
         try:
-            if language in ["Python", "Python3", "Cython", "MicroPython"]:
-                from .LexerPython import LexerPython  # __IGNORE_WARNING_I101__
-
-                return LexerPython(language, parent)
-            elif language == "C++":
-                from .LexerCPP import LexerCPP  # __IGNORE_WARNING_I101__
-
-                return LexerCPP(
-                    parent, Preferences.getEditor("CppCaseInsensitiveKeywords")
+            if language in languageLexerMapping:
+                mod = importlib.import_module(
+                    "eric7.QScintilla.Lexers.{0}".format(languageLexerMapping[language])
                 )
-            elif language == "C#":
-                from .LexerCSharp import LexerCSharp  # __IGNORE_WARNING_I101__
-
-                return LexerCSharp(parent)
-            elif language == "IDL":
-                from .LexerIDL import LexerIDL  # __IGNORE_WARNING_I101__
-
-                return LexerIDL(parent)
-            elif language == "Java":
-                from .LexerJava import LexerJava  # __IGNORE_WARNING_I101__
-
-                return LexerJava(parent)
-            elif language == "JavaScript":
-                from .LexerJavaScript import LexerJavaScript  # __IGNORE_WARNING_I101__
-
-                return LexerJavaScript(parent)
-            elif language == "SQL":
-                from .LexerSQL import LexerSQL  # __IGNORE_WARNING_I101__
-
-                return LexerSQL(parent)
-            elif language == "HTML":
-                from .LexerHTML import LexerHTML  # __IGNORE_WARNING_I101__
-
-                return LexerHTML(parent)
-            elif language == "Perl":
-                from .LexerPerl import LexerPerl  # __IGNORE_WARNING_I101__
-
-                return LexerPerl(parent)
-            elif language == "Bash":
-                from .LexerBash import LexerBash  # __IGNORE_WARNING_I101__
-
-                return LexerBash(parent)
-            elif language == "Ruby":
-                from .LexerRuby import LexerRuby  # __IGNORE_WARNING_I101__
-
-                return LexerRuby(parent)
-            elif language == "Lua":
-                from .LexerLua import LexerLua  # __IGNORE_WARNING_I101__
-
-                return LexerLua(parent)
-            elif language == "CSS":
-                from .LexerCSS import LexerCSS  # __IGNORE_WARNING_I101__
-
-                return LexerCSS(parent)
-            elif language == "TeX":
-                from .LexerTeX import LexerTeX  # __IGNORE_WARNING_I101__
-
-                return LexerTeX(parent)
-            elif language == "Diff":
-                from .LexerDiff import LexerDiff  # __IGNORE_WARNING_I101__
-
-                return LexerDiff(parent)
-            elif language == "Makefile":
-                from .LexerMakefile import LexerMakefile  # __IGNORE_WARNING_I101__
-
-                return LexerMakefile(parent)
-            elif language == "Properties":
-                from .LexerProperties import LexerProperties  # __IGNORE_WARNING_I101__
-
-                return LexerProperties(parent)
-            elif language == "Batch":
-                from .LexerBatch import LexerBatch  # __IGNORE_WARNING_I101__
-
-                return LexerBatch(parent)
-            elif language == "D":
-                from .LexerD import LexerD  # __IGNORE_WARNING_I101__
-
-                return LexerD(parent)
-            elif language == "Povray":
-                from .LexerPOV import LexerPOV  # __IGNORE_WARNING_I101__
-
-                return LexerPOV(parent)
-            elif language == "CMake":
-                from .LexerCMake import LexerCMake  # __IGNORE_WARNING_I101__
-
-                return LexerCMake(parent)
-            elif language == "VHDL":
-                from .LexerVHDL import LexerVHDL  # __IGNORE_WARNING_I101__
-
-                return LexerVHDL(parent)
-            elif language == "TCL":
-                from .LexerTCL import LexerTCL  # __IGNORE_WARNING_I101__
-
-                return LexerTCL(parent)
-            elif language == "Fortran":
-                from .LexerFortran import LexerFortran  # __IGNORE_WARNING_I101__
-
-                return LexerFortran(parent)
-            elif language == "Fortran77":
-                from .LexerFortran77 import LexerFortran77  # __IGNORE_WARNING_I101__
-
-                return LexerFortran77(parent)
-            elif language == "Pascal":
-                from .LexerPascal import LexerPascal  # __IGNORE_WARNING_I101__
-
-                return LexerPascal(parent)
-            elif language == "PostScript":
-                from .LexerPostScript import LexerPostScript  # __IGNORE_WARNING_I101__
-
-                return LexerPostScript(parent)
-            elif language == "XML":
-                from .LexerXML import LexerXML  # __IGNORE_WARNING_I101__
-
-                return LexerXML(parent)
-            elif language == "YAML":
-                from .LexerYAML import LexerYAML  # __IGNORE_WARNING_I101__
-
-                return LexerYAML(parent)
-            elif language == "Matlab":
-                from .LexerMatlab import LexerMatlab  # __IGNORE_WARNING_I101__
-
-                return LexerMatlab(parent)
-            elif language == "Octave":
-                from .LexerOctave import LexerOctave  # __IGNORE_WARNING_I101__
-
-                return LexerOctave(parent)
-            elif language == "QSS":
-                from .LexerQSS import LexerQSS  # __IGNORE_WARNING_I101__
-
-                return LexerQSS(parent)
-            elif language == "Gettext":
-                from .LexerPO import LexerPO  # __IGNORE_WARNING_I101__
-
-                return LexerPO(parent)
-            elif language == "CoffeeScript":
-                from .LexerCoffeeScript import (  # __IGNORE_WARNING_I101__
-                    LexerCoffeeScript,
-                )
-
-                return LexerCoffeeScript(parent)
-            elif language == "JSON":
-                from .LexerJSON import LexerJSON  # __IGNORE_WARNING_I101__
-
-                return LexerJSON(parent)
-            elif language == "Markdown":
-                from .LexerMarkdown import LexerMarkdown  # __IGNORE_WARNING_I101__
-
-                return LexerMarkdown(parent)
-
+                if mod:
+                    return mod.createLexer(language, parent)
+                else:
+                    return __getPygmentsLexer(parent)
             elif language == "Protocol Buffer":
                 return __getPygmentsLexer(parent, name="Protocol Buffer")
 

eric ide

mercurial