Tue, 08 Nov 2022 11:14:44 +0100
Changed the way editor lexers are instantiated.
--- 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")