src/eric7/QScintilla/Lexers/LexerPython.py

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 9482
a2bc06a54d9d
child 9653
e67609152c5e
permissions
-rw-r--r--

Changed the way editor lexers are instantiated.

0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
8881
54e42bc2437a Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8343
diff changeset
3 # Copyright (c) 2002 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a Python lexer with some additional methods.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
10 import contextlib
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
11 import keyword
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import re
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
14 from PyQt6.Qsci import QsciLexerPython, QsciScintilla
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
16 from eric7 import Preferences
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
17
6845
4680adb641e0 Lexer: implemented basic support for sub-styles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
18 from .SubstyledLexer import SubstyledLexer
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 826
diff changeset
20
6845
4680adb641e0 Lexer: implemented basic support for sub-styles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
21 class LexerPython(SubstyledLexer, QsciLexerPython):
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 826
diff changeset
22 """
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 Subclass to implement some additional lexer dependant methods.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
25
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 826
diff changeset
26 def __init__(self, variant="", parent=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
29
802
e8882d16384c Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
30 @param variant name of the language variant (string)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 @param parent parent widget of this lexer
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 """
3462
6d6e7334a787 Fixed an issue with ALL lexers inheriting in the wrong order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
33 QsciLexerPython.__init__(self, parent)
6845
4680adb641e0 Lexer: implemented basic support for sub-styles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
34 SubstyledLexer.__init__(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
35
802
e8882d16384c Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
36 self.variant = variant
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 self.commentString = "#"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
38
6874
5a3a39442711 Lexers: extended the keyword set handling by introducing a keyword set description and some set adjustments (harmonized with SciTE).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6873
diff changeset
39 self.keywordSetDescriptions = [
5a3a39442711 Lexers: extended the keyword set handling by introducing a keyword set description and some set adjustments (harmonized with SciTE).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6873
diff changeset
40 self.tr("Keywords"),
5a3a39442711 Lexers: extended the keyword set handling by introducing a keyword set description and some set adjustments (harmonized with SciTE).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6873
diff changeset
41 self.tr("Highlighted identifiers"),
5a3a39442711 Lexers: extended the keyword set handling by introducing a keyword set description and some set adjustments (harmonized with SciTE).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6873
diff changeset
42 ]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
43
6845
4680adb641e0 Lexer: implemented basic support for sub-styles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
44 ##############################################################
4680adb641e0 Lexer: implemented basic support for sub-styles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
45 ## default sub-style definitions
4680adb641e0 Lexer: implemented basic support for sub-styles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
46 ##############################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
47
6845
4680adb641e0 Lexer: implemented basic support for sub-styles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
48 # list of style numbers, that support sub-styling
4680adb641e0 Lexer: implemented basic support for sub-styles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
49 self.baseStyles = [11]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
50
6845
4680adb641e0 Lexer: implemented basic support for sub-styles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
51 self.defaultSubStyles = {
6855
4d80c8cc99a1 SubstyledLexer: continued implementing the getter and setter methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6846
diff changeset
52 11: {
4d80c8cc99a1 SubstyledLexer: continued implementing the getter and setter methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6846
diff changeset
53 0: {
6873
47804e8cde27 LexerPython: added a default sub-style for "PyQt5 Modules"
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6872
diff changeset
54 "Description": self.tr("Standard Library Modules"),
6846
6ca9ef2c0907 Lexer: extended the basic support for sub-styles by a method to write the data to the settings file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6845
diff changeset
55 "Words": """
9359
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
56 __main__ abc aifc antigravity argparse array ast asynchat asyncio asyncore atexit
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
57 audioop base64 bdb binascii bisect builtins bz2 cProfile calendar cgi cgitb chunk cmath
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
58 cmd code codecs codeop collections colorsys compileall concurrent configparser
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
59 contextlib contextvars copy copyreg crypt csv ctypes curses dataclasses datetime dbm
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
60 decimal difflib dis distutils doctest email encodings ensurepip enum errno faulthandler
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
61 fcntl filecmp fileinput fnmatch fractions ftplib functools gc genericpath getopt
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
62 getpass gettext glob graphlib grp gzip hashlib heapq hmac html http idlelib imaplib
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
63 imghdr imp importlib inspect io ipaddress itertools json keyword lib2to3 linecache
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
64 locale logging lzma mailbox mailcap marshal math mimetypes mmap modulefinder msilib
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
65 msvcrt multiprocessing netrc nis nntplib nt ntpath nturl2path numbers opcode operator
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
66 optparse os ossaudiodev pathlib pdb pickle pickletools pipes pkgutil platform plistlib
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
67 poplib posix posixpath pprint profile pstats pty pwd py_compile pyclbr pydoc pydoc_data
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
68 pyexpat queue quopri random re readline reprlib resource rlcompleter runpy sched
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
69 secrets select selectors shelve shlex shutil signal site smtpd smtplib sndhdr socket
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
70 socketserver spwd sqlite3 sre_compile sre_constants sre_parse ssl stat statistics
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
71 string stringprep struct subprocess sunau symtable sys sysconfig syslog tabnanny
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
72 tarfile telnetlib tempfile termios textwrap this threading time timeit tkinter token
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
73 tokenize tomllib trace traceback tracemalloc tty turtle turtledemo types typing
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
74 unicodedata unittest urllib uu uuid venv warnings wave weakref webbrowser winreg
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
75 winsound wsgiref xdrlib xml xmlrpc zipapp zipfile zipimport zlib zoneinfo""",
6846
6ca9ef2c0907 Lexer: extended the basic support for sub-styles by a method to write the data to the settings file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6845
diff changeset
76 "Style": {
6ca9ef2c0907 Lexer: extended the basic support for sub-styles by a method to write the data to the settings file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6845
diff changeset
77 "fore": 0xDD9900,
6ca9ef2c0907 Lexer: extended the basic support for sub-styles by a method to write the data to the settings file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6845
diff changeset
78 "font_bold": True,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
79 },
6846
6ca9ef2c0907 Lexer: extended the basic support for sub-styles by a method to write the data to the settings file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6845
diff changeset
80 },
6855
4d80c8cc99a1 SubstyledLexer: continued implementing the getter and setter methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6846
diff changeset
81 1: {
6873
47804e8cde27 LexerPython: added a default sub-style for "PyQt5 Modules"
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6872
diff changeset
82 "Description": self.tr("__future__ Imports"),
6846
6ca9ef2c0907 Lexer: extended the basic support for sub-styles by a method to write the data to the settings file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6845
diff changeset
83 "Words": """
8255
2fc483702cd6 Python Lexer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
84 __future__ absolute_import annotations division generators generator_stop
2fc483702cd6 Python Lexer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
85 nested_scopes print_function unicode_literals with_statement""",
6846
6ca9ef2c0907 Lexer: extended the basic support for sub-styles by a method to write the data to the settings file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6845
diff changeset
86 "Style": {
6ca9ef2c0907 Lexer: extended the basic support for sub-styles by a method to write the data to the settings file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6845
diff changeset
87 "fore": 0xEE00AA,
6ca9ef2c0907 Lexer: extended the basic support for sub-styles by a method to write the data to the settings file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6845
diff changeset
88 "font_italic": True,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
89 },
6873
47804e8cde27 LexerPython: added a default sub-style for "PyQt5 Modules"
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6872
diff changeset
90 },
47804e8cde27 LexerPython: added a default sub-style for "PyQt5 Modules"
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6872
diff changeset
91 2: {
8255
2fc483702cd6 Python Lexer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
92 "Description": self.tr("PyQt5/6 Modules"),
6873
47804e8cde27 LexerPython: added a default sub-style for "PyQt5 Modules"
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6872
diff changeset
93 "Words": """
8255
2fc483702cd6 Python Lexer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
94 PyQt5 PyQt6 Qsci Qt Qt3DAnimation Qt3DCore Qt3DExtras Qt3DInput Qt3DLogic
8343
242d5dae2937 Corrected some place to import QtCharts instead of QtChart.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
95 Qt3DRender QtBluetooth QtChart QtCharts QtCore QtDataVisualization QtDBus
242d5dae2937 Corrected some place to import QtCharts instead of QtChart.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
96 QtDesigner QtGui QtHelp QtLocation QtMacExtras QtMultimedia
242d5dae2937 Corrected some place to import QtCharts instead of QtChart.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
97 QtMultimediaWidgets QtNetwork QtNetworkAuth QtNfc QtOpenGL QtOpenGLWidgets
9359
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
98 QtPdf QtPdfWidgets QtPositioning QtPrintSupport QtPurchasing QtQml QtQuick QtQuick3D
8343
242d5dae2937 Corrected some place to import QtCharts instead of QtChart.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
99 QtQuickWidgets QtRemoteObjects QtSensors QtSerialPort QtSql QtSvg QtSvgWidgets
9359
8d3f5cf4f819 Adjusted the list of Python standard library modules in the substyle definitions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
100 QtTest QtTextToSpeech QtWebChannel QtWebEngine QtWebEngineCore QtWebEngineQuick
8343
242d5dae2937 Corrected some place to import QtCharts instead of QtChart.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
101 QtWebEngineWidgets QtWebSockets QtWidgets QtWinExtras QtX11Extras QtXml
242d5dae2937 Corrected some place to import QtCharts instead of QtChart.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
102 QtXmlPatterns sip""",
6873
47804e8cde27 LexerPython: added a default sub-style for "PyQt5 Modules"
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6872
diff changeset
103 "Style": {
47804e8cde27 LexerPython: added a default sub-style for "PyQt5 Modules"
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6872
diff changeset
104 "fore": 0x44AADD,
47804e8cde27 LexerPython: added a default sub-style for "PyQt5 Modules"
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6872
diff changeset
105 "font_bold": True,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
106 },
6873
47804e8cde27 LexerPython: added a default sub-style for "PyQt5 Modules"
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6872
diff changeset
107 },
6881
054667c5c270 Lexers, LexerPython: changed support for Cython from Pygments to QScintilla based lexer with a sub-style for Cython specific words.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6877
diff changeset
108 3: {
054667c5c270 Lexers, LexerPython: changed support for Cython from Pygments to QScintilla based lexer with a sub-style for Cython specific words.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6877
diff changeset
109 "Description": self.tr("Cython Specifics"),
054667c5c270 Lexers, LexerPython: changed support for Cython from Pygments to QScintilla based lexer with a sub-style for Cython specific words.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6877
diff changeset
110 "Words": "cython pyximport Cython __cinit__ __dealloc__",
054667c5c270 Lexers, LexerPython: changed support for Cython from Pygments to QScintilla based lexer with a sub-style for Cython specific words.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6877
diff changeset
111 "Style": {
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
112 "fore": 0xDD0000,
6881
054667c5c270 Lexers, LexerPython: changed support for Cython from Pygments to QScintilla based lexer with a sub-style for Cython specific words.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6877
diff changeset
113 "font_bold": True,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
114 },
6881
054667c5c270 Lexers, LexerPython: changed support for Cython from Pygments to QScintilla based lexer with a sub-style for Cython specific words.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6877
diff changeset
115 },
6855
4d80c8cc99a1 SubstyledLexer: continued implementing the getter and setter methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6846
diff changeset
116 },
6845
4680adb641e0 Lexer: implemented basic support for sub-styles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
117 }
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
118
802
e8882d16384c Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
119 def language(self):
e8882d16384c Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
120 """
e8882d16384c Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
121 Public method to get the lexer language.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
122
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
123 @return lexer language (string)
802
e8882d16384c Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
124 """
e8882d16384c Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
125 if not self.variant:
e8882d16384c Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
126 return QsciLexerPython.language(self)
e8882d16384c Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
127 else:
e8882d16384c Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
128 return self.variant
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
129
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 def initProperties(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 Public slot to initialize the properties.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
134 self.setIndentationWarning(Preferences.getEditor("PythonBadIndentation"))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 self.setFoldComments(Preferences.getEditor("PythonFoldComment"))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 self.setFoldQuotes(Preferences.getEditor("PythonFoldString"))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 if not Preferences.getEditor("PythonAutoIndent"):
826
2e3e2055e715 Fixed a few PEP 8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 802
diff changeset
138 self.setAutoIndentStyle(QsciScintilla.AiMaintain)
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
139 with contextlib.suppress(AttributeError):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
140 self.setV2UnicodeAllowed(Preferences.getEditor("PythonAllowV2Unicode"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
141 self.setV3BinaryOctalAllowed(Preferences.getEditor("PythonAllowV3Binary"))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 self.setV3BytesAllowed(Preferences.getEditor("PythonAllowV3Bytes"))
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
143 with contextlib.suppress(AttributeError):
948
fe7b94ed01ec Added support for new lexer properties (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
144 self.setFoldQuotes(Preferences.getEditor("PythonFoldQuotes"))
fe7b94ed01ec Added support for new lexer properties (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
145 self.setStringsOverNewlineAllowed(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
146 Preferences.getEditor("PythonStringsOverNewLineAllowed")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
147 )
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
148 with contextlib.suppress(AttributeError):
1444
552d2d74f5cf Started to add support for QScintilla 2.6 (and newer).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
149 self.setHighlightSubidentifiers(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
150 Preferences.getEditor("PythonHighlightSubidentifier")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
151 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
152
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 def getIndentationDifference(self, line, editor):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3539
diff changeset
155 Public method to determine the difference for the new indentation.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
156
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 @param line line to perform the calculation for (integer)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 @param editor QScintilla editor
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 @return amount of difference in indentation (integer)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
161 indent_width = editor.getEditorConfig("IndentWidth")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
162
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 lead_spaces = editor.indentation(line)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
164
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 pline = line - 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
166 while pline >= 0 and re.match(r"^\s*(#.*)?$", editor.text(pline)):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 pline -= 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
168
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 if pline < 0:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 last = 0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 previous_lead_spaces = editor.indentation(pline)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 # trailing spaces
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
174 m = re.search(r":\s*(#.*)?$", editor.text(pline))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 last = previous_lead_spaces
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 if m:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 last += indent_width
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 # special cases, like pass (unindent) or return (also unindent)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
180 m = re.search(r"(pass\s*(#.*)?$)|(^[^#]return)", editor.text(pline))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 if m:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 last -= indent_width
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
183
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8255
diff changeset
184 indentDifference = (
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8255
diff changeset
185 last - lead_spaces
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
186 if (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
187 lead_spaces % indent_width != 0
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
188 or lead_spaces == 0
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
189 or self.lastIndented != line
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
190 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
191 else -indent_width # __IGNORE_WARNING_W503__
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8255
diff changeset
192 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
193
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 return indentDifference
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
195
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 def autoCompletionWordSeparators(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 Public method to return the list of separators for autocompletion.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
199
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 @return list of separators (list of strings)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
202 return ["."]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
203
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 def isCommentStyle(self, style):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 Public method to check, if a style is a comment style.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
207
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
208 @param style style to check (integer)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 @return flag indicating a comment style (boolean)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
211 return style in [QsciLexerPython.Comment, QsciLexerPython.CommentBlock]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
212
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 def isStringStyle(self, style):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 Public method to check, if a style is a string style.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
216
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
217 @param style style to check (integer)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 @return flag indicating a string style (boolean)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
220 return style in [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
221 QsciLexerPython.DoubleQuotedString,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
222 QsciLexerPython.SingleQuotedString,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
223 QsciLexerPython.TripleDoubleQuotedString,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
224 QsciLexerPython.TripleSingleQuotedString,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
225 QsciLexerPython.UnclosedString,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
226 ]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
227
130
fcce4cc20d95 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
228 def defaultKeywords(self, kwSet):
fcce4cc20d95 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
229 """
fcce4cc20d95 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
230 Public method to get the default keywords.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
231
167
7508e44f4853 Fixed an issue with a missing method in LexerPygments.py and corrected some source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 130
diff changeset
232 @param kwSet number of the keyword set (integer)
7508e44f4853 Fixed an issue with a missing method in LexerPygments.py and corrected some source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 130
diff changeset
233 @return string giving the keywords (string) or None
130
fcce4cc20d95 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
234 """
6872
96bb40e987f7 LexerPython: Define different keyword sets for Python 2 and Python 3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6855
diff changeset
235 if kwSet == 1:
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
236 if self.language() == "Python3":
7658
3975d0659673 LexerPython: made the list of default keywords dynamic getting them from the keyword module and introduced a separate list for MicroPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
237 keywords = " ".join(keyword.kwlist)
3975d0659673 LexerPython: made the list of default keywords dynamic getting them from the keyword module and introduced a separate list for MicroPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
238 elif self.language() == "MicroPython":
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
239 keywords = (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
240 "False None True and as assert break class "
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
241 "continue def del elif else except finally for "
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
242 "from global if import in is lambda nonlocal not "
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
243 "or pass raise return try while with yield"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
244 )
6881
054667c5c270 Lexers, LexerPython: changed support for Cython from Pygments to QScintilla based lexer with a sub-style for Cython specific words.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6877
diff changeset
245 elif self.language() == "Cython":
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
246 keywords = (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
247 "False None True and as assert break class "
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
248 "continue def del elif else except finally for "
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
249 "from global if import in is lambda nonlocal not "
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
250 "or pass raise return try while with yield "
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
251 "cdef cimport cpdef ctypedef"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
252 )
6872
96bb40e987f7 LexerPython: Define different keyword sets for Python 2 and Python 3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6855
diff changeset
253 else:
96bb40e987f7 LexerPython: Define different keyword sets for Python 2 and Python 3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6855
diff changeset
254 keywords = QsciLexerPython.keywords(self, kwSet)
6877
da5d6c7d5348 LexerPython: fixed an issue where keywords got used before it was defined.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6874
diff changeset
255 else:
da5d6c7d5348 LexerPython: fixed an issue where keywords got used before it was defined.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6874
diff changeset
256 keywords = QsciLexerPython.keywords(self, kwSet)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
257
6872
96bb40e987f7 LexerPython: Define different keyword sets for Python 2 and Python 3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6855
diff changeset
258 return keywords
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
259
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
260 def maximumKeywordSet(self):
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
261 """
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
262 Public method to get the maximum keyword set.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
263
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
264 @return maximum keyword set (integer)
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
265 """
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
266 return 2
9484
d2eb8f0a5bf0 Changed the way editor lexers are instantiated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
267
d2eb8f0a5bf0 Changed the way editor lexers are instantiated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
268
d2eb8f0a5bf0 Changed the way editor lexers are instantiated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
269 def createLexer(variant="", parent=None):
d2eb8f0a5bf0 Changed the way editor lexers are instantiated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
270 """
d2eb8f0a5bf0 Changed the way editor lexers are instantiated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
271 Function to instantiate a lexer object.
d2eb8f0a5bf0 Changed the way editor lexers are instantiated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
272
d2eb8f0a5bf0 Changed the way editor lexers are instantiated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
273 @param variant name of the language variant
d2eb8f0a5bf0 Changed the way editor lexers are instantiated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
274 @type str
d2eb8f0a5bf0 Changed the way editor lexers are instantiated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
275 @param parent parent widget of this lexer
d2eb8f0a5bf0 Changed the way editor lexers are instantiated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
276 @type QObject
d2eb8f0a5bf0 Changed the way editor lexers are instantiated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
277 @return instantiated lexer object
d2eb8f0a5bf0 Changed the way editor lexers are instantiated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
278 @rtype LexerPython
d2eb8f0a5bf0 Changed the way editor lexers are instantiated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
279 """
d2eb8f0a5bf0 Changed the way editor lexers are instantiated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
280 return LexerPython(variant=variant, parent=parent)

eric ide

mercurial