eric6/QScintilla/Lexers/LexerCoffeeScript.py

Wed, 30 Dec 2020 11:00:05 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 30 Dec 2020 11:00:05 +0100
changeset 7923
91e843545d9a
parent 7781
607a6098cb44
permissions
-rw-r--r--

Updated copyright for 2021.

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
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3654
diff changeset
10 from PyQt5.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