ExtensionCorba/LexerIDL.py

Sat, 31 Dec 2022 16:27:42 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 31 Dec 2022 16:27:42 +0100
changeset 32
cab6795a8df6
parent 12
58b645cde6e3
child 52
ba2929194c7b
permissions
-rw-r--r--

Updated copyright for 2023.

12
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
32
cab6795a8df6 Updated copyright for 2023.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
3 # Copyright (c) 2002 - 2023 Detlev Offenbach <detlev@die-offenbachs.de>
12
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing an IDL lexer with some additional methods.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt6.Qsci import QsciLexerIDL, QsciScintilla
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from eric7 import Preferences
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from eric7.QScintilla.Lexers.Lexer import Lexer
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 class LexerIDL(Lexer, QsciLexerIDL):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 Subclass to implement some additional lexer dependant methods.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 def __init__(self, parent=None):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 Constructor
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 @param parent parent widget of this lexer
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 QsciLexerIDL.__init__(self, parent)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 Lexer.__init__(self)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 self.commentString = "//"
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 self.streamCommentString = {"start": "/* ", "end": " */"}
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 self.boxCommentString = {"start": "/* ", "middle": " * ", "end": " */"}
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 self.keywordSetDescriptions = [
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 self.tr("Primary keywords and identifiers"),
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 self.tr("Secondary keywords and identifiers"),
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 self.tr("Documentation comment keywords"),
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 self.tr("Global classes and typedefs"),
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 self.tr("Preprocessor definitions"),
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 self.tr("Task marker and error marker keywords"),
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 ]
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 def initProperties(self):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 Public slot to initialize the properties.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 self.setFoldComments(Preferences.getEditor("CppFoldComment"))
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.setFoldPreprocessor(Preferences.getEditor("CppFoldPreprocessor"))
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 self.setFoldAtElse(Preferences.getEditor("CppFoldAtElse"))
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 indentStyle = 0
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 if Preferences.getEditor("CppIndentOpeningBrace"):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 indentStyle |= QsciScintilla.AiOpening
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 if Preferences.getEditor("CppIndentClosingBrace"):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 indentStyle |= QsciScintilla.AiClosing
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.setAutoIndentStyle(indentStyle)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.setFoldCompact(Preferences.getEditor("AllFoldCompact"))
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 def isCommentStyle(self, style):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 Public method to check, if a style is a comment style.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 @param style style to check (integer)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 @return flag indicating a comment style (boolean)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 return style in [
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 QsciLexerIDL.Comment,
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 QsciLexerIDL.CommentDoc,
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 QsciLexerIDL.CommentLine,
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 QsciLexerIDL.CommentLineDoc,
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 ]
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 def isStringStyle(self, style):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 Public method to check, if a style is a string style.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 @param style style to check (integer)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 @return flag indicating a string style (boolean)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 return style in [
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 QsciLexerIDL.DoubleQuotedString,
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 QsciLexerIDL.SingleQuotedString,
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 QsciLexerIDL.UnclosedString,
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 QsciLexerIDL.VerbatimString,
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 ]
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 def defaultKeywords(self, kwSet):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 Public method to get the default keywords.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 @param kwSet number of the keyword set (integer)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 @return string giving the keywords (string) or None
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 return QsciLexerIDL.keywords(self, kwSet)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 def maximumKeywordSet(self):
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 Public method to get the maximum keyword set.
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 @return maximum keyword set (integer)
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 """
58b645cde6e3 Moved the IDL class browser to this plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 return 4

eric ide

mercurial