src/eric7/QScintilla/Lexers/LexerCoffeeScript.py

Tue, 18 Oct 2022 16:06:21 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 18 Oct 2022 16:06:21 +0200
branch
eric7
changeset 9413
80c06d472826
parent 9221
bf71ee032bb4
child 9473
3f23dbf37dbe
permissions
-rw-r--r--

Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.

3647
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
8881
54e42bc2437a Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
3 # Copyright (c) 2014 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
3647
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a CoffeeScript lexer with some additional methods.
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
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
10 from PyQt6.Qsci import QsciLexerCoffeeScript
3647
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from .Lexer import Lexer
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
13 from eric7 import Preferences
3647
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
16 class LexerCoffeeScript(Lexer, QsciLexerCoffeeScript):
3647
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 """
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 Subclass to implement some additional lexer dependant methods.
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
20
3647
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 def __init__(self, parent=None):
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
24
3647
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 @param parent parent widget of this lexer
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 """
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
27 QsciLexerCoffeeScript.__init__(self, parent)
3647
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 Lexer.__init__(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
29
3647
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 self.commentString = "#"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
31 self.streamCommentString = {"start": "###\n", "end": "\n###"}
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
32
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: 6645
diff changeset
33 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: 6645
diff changeset
34 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: 6645
diff changeset
35 self.tr("Secondary 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: 6645
diff changeset
36 self.tr("Unused"),
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: 6645
diff changeset
37 self.tr("Global classes"),
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: 6645
diff changeset
38 ]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
39
3647
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 def initProperties(self):
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 """
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 Public slot to initialize the properties.
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
44 self.setDollarsAllowed(Preferences.getEditor("CoffeeScriptDollarsAllowed"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
45 self.setFoldComments(Preferences.getEditor("CoffeScriptFoldComment"))
3647
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 self.setStylePreprocessor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
47 Preferences.getEditor("CoffeeScriptStylePreprocessor")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
48 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
49 self.setFoldCompact(Preferences.getEditor("AllFoldCompact"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
50
3647
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 def isCommentStyle(self, style):
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 """
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 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
54
3647
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 @param style style to check (integer)
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 @return flag indicating a comment style (boolean)
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
58 return style in [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
59 QsciLexerCoffeeScript.Comment,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
60 QsciLexerCoffeeScript.CommentDoc,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
61 QsciLexerCoffeeScript.CommentLine,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
62 QsciLexerCoffeeScript.CommentLineDoc,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
63 QsciLexerCoffeeScript.CommentBlock,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
64 QsciLexerCoffeeScript.BlockRegexComment,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
65 ]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
66
3647
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 def isStringStyle(self, style):
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 """
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 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
70
3647
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 @param style style to check (integer)
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 @return flag indicating a string style (boolean)
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
74 return style in [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
75 QsciLexerCoffeeScript.DoubleQuotedString,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
76 QsciLexerCoffeeScript.SingleQuotedString,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
77 QsciLexerCoffeeScript.UnclosedString,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
78 QsciLexerCoffeeScript.VerbatimString,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
79 ]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
80
3647
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 def defaultKeywords(self, kwSet):
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 """
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 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
84
3647
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 @param kwSet number of the keyword set (integer)
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 @return string giving the keywords (string) or None
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 """
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
88 return QsciLexerCoffeeScript.keywords(self, kwSet)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
89
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
90 def maximumKeywordSet(self):
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
91 """
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
92 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
93
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
94 @return maximum keyword set (integer)
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
95 """
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
96 return 4

eric ide

mercurial