eric7/QScintilla/Lexers/LexerCoffeeScript.py

Sun, 16 May 2021 20:07:24 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 16 May 2021 20:07:24 +0200
branch
eric7
changeset 8318
962bce857696
parent 8312
800c432b34c8
child 8881
54e42bc2437a
permissions
-rw-r--r--

Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.

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
7923
91e843545d9a Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7781
diff changeset
3 # Copyright (c) 2014 - 2021 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
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 import Preferences
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 """
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 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
21 """
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 Constructor
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
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 @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
25 """
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
26 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
27 Lexer.__init__(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
28
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 self.commentString = "#"
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.streamCommentString = {
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 'start': '###\n',
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 'end': '\n###'
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 }
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
34
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.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
36 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
37 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
38 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
39 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
40 ]
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
41
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
42 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
43 """
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 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
45 """
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.setDollarsAllowed(
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 Preferences.getEditor("CoffeeScriptDollarsAllowed"))
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.setFoldComments(
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 Preferences.getEditor("CoffeScriptFoldComment"))
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.setStylePreprocessor(
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 Preferences.getEditor("CoffeeScriptStylePreprocessor"))
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 self.setFoldCompact(
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 Preferences.getEditor("AllFoldCompact"))
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54
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 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
56 """
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 Public method to check, if a style is a comment 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
58
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 @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
60 @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
61 """
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
62 return style in [QsciLexerCoffeeScript.Comment,
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
63 QsciLexerCoffeeScript.CommentDoc,
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
64 QsciLexerCoffeeScript.CommentLine,
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
65 QsciLexerCoffeeScript.CommentLineDoc,
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
66 QsciLexerCoffeeScript.CommentBlock,
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
67 QsciLexerCoffeeScript.BlockRegexComment]
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
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 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
70 """
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 Public method to check, if a style is a string 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
72
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 @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
74 @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
75 """
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
76 return style in [QsciLexerCoffeeScript.DoubleQuotedString,
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
77 QsciLexerCoffeeScript.SingleQuotedString,
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
78 QsciLexerCoffeeScript.UnclosedString,
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
79 QsciLexerCoffeeScript.VerbatimString]
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
80
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.
fef91a1eb27b Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84
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)
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
89
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.
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3647
diff changeset
93
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