src/eric7/Preferences/ConfigurationPages/EditorKeywordsPage.py

Sat, 31 Dec 2022 16:23:21 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 31 Dec 2022 16:23:21 +0100
branch
eric7
changeset 9653
e67609152c5e
parent 9482
a2bc06a54d9d
child 10069
435cc5875135
permissions
-rw-r--r--

Updated copyright for 2023.

131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
9653
e67609152c5e Updated copyright for 2023.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
3 # Copyright (c) 2010 - 2023 Detlev Offenbach <detlev@die-offenbachs.de>
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the editor highlighter keywords configuration page.
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
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.QtCore import pyqtSlot
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
12 from eric7 import Preferences
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.EricWidgets import EricMessageBox
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
14 from eric7.QScintilla import Lexers
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
15 from eric7.QScintilla.Lexers.LexerContainer import LexerContainer
6880
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
16
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 from .ConfigurationPageBase import ConfigurationPageBase
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 from .Ui_EditorKeywordsPage import Ui_EditorKeywordsPage
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
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: 791
diff changeset
20
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 class EditorKeywordsPage(ConfigurationPageBase, Ui_EditorKeywordsPage):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 Class implementing the editor highlighter keywords configuration page.
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
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
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
26 MaxKeywordSets = 8 # max. 8 sets are allowed
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
27
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 def __init__(self):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 Constructor
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8151
diff changeset
32 super().__init__()
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 self.setupUi(self)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 self.setObjectName("EditorKeywordsPage")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
35
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 # set initial values
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 self.__keywords = {
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
38 "": {
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 "Sets": [""] * (self.MaxKeywordSets + 1),
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 "Descriptions": [""] * (self.MaxKeywordSets + 1),
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 "MaxSets": 0,
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
42 }
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3178
diff changeset
43 }
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
44
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
45 languages = sorted([""] + list(Lexers.getSupportedLanguages().keys()))
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 for lang in languages:
1457
45fe12e8533b Fixed a few issues related to the configurable keywords support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1446
diff changeset
47 if lang:
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
48 lex = Lexers.getLexer(lang)
1457
45fe12e8533b Fixed a few issues related to the configurable keywords support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1446
diff changeset
49 if isinstance(lex, LexerContainer):
45fe12e8533b Fixed a few issues related to the configurable keywords support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1446
diff changeset
50 continue
45fe12e8533b Fixed a few issues related to the configurable keywords support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1446
diff changeset
51 keywords = Preferences.getEditorKeywords(lang)[:]
6879
a862f60853f9 EditorKeywordsPage: changed initialisation logic to load default keywords if a keyword set is empty.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6874
diff changeset
52 if keywords:
a862f60853f9 EditorKeywordsPage: changed initialisation logic to load default keywords if a keyword set is empty.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6874
diff changeset
53 # set empty entries to default values
a862f60853f9 EditorKeywordsPage: changed initialisation logic to load default keywords if a keyword set is empty.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6874
diff changeset
54 for kwSet in range(1, self.MaxKeywordSets + 1):
a862f60853f9 EditorKeywordsPage: changed initialisation logic to load default keywords if a keyword set is empty.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6874
diff changeset
55 if not keywords[kwSet]:
a862f60853f9 EditorKeywordsPage: changed initialisation logic to load default keywords if a keyword set is empty.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6874
diff changeset
56 kw = lex.defaultKeywords(kwSet)
a862f60853f9 EditorKeywordsPage: changed initialisation logic to load default keywords if a keyword set is empty.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6874
diff changeset
57 if kw is None:
a862f60853f9 EditorKeywordsPage: changed initialisation logic to load default keywords if a keyword set is empty.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6874
diff changeset
58 kw = ""
a862f60853f9 EditorKeywordsPage: changed initialisation logic to load default keywords if a keyword set is empty.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6874
diff changeset
59 keywords[kwSet] = kw
a862f60853f9 EditorKeywordsPage: changed initialisation logic to load default keywords if a keyword set is empty.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6874
diff changeset
60 else:
1457
45fe12e8533b Fixed a few issues related to the configurable keywords support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1446
diff changeset
61 keywords = [""]
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
62 descriptions = [""]
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
63 for kwSet in range(1, self.MaxKeywordSets + 1):
1457
45fe12e8533b Fixed a few issues related to the configurable keywords support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1446
diff changeset
64 kw = lex.keywords(kwSet)
45fe12e8533b Fixed a few issues related to the configurable keywords support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1446
diff changeset
65 if kw is None:
45fe12e8533b Fixed a few issues related to the configurable keywords support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1446
diff changeset
66 kw = ""
45fe12e8533b Fixed a few issues related to the configurable keywords support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1446
diff changeset
67 keywords.append(kw)
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
68 descriptions = [""]
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
69 for kwSet in range(1, self.MaxKeywordSets + 1):
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
70 desc = lex.keywordsDescription(kwSet)
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
71 descriptions.append(desc)
6880
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
72 defaults = [""]
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
73 for kwSet in range(1, self.MaxKeywordSets + 1):
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
74 dkw = lex.defaultKeywords(kwSet)
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
75 if dkw is None:
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
76 dkw = ""
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
77 defaults.append(dkw)
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
78 self.__keywords[lang] = {
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
79 "Sets": 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
80 "Descriptions": descriptions,
6880
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
81 "DefaultSets": defaults,
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
82 "MaxSets": lex.maximumKeywordSet(),
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
83 }
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
84 self.languageCombo.addItem(Lexers.getLanguageIcon(lang, False), lang)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
85
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
86 self.currentLanguage = ""
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 self.currentSet = 1
8151
8c1445825e7b Changed code to not use QComboBox.activated[str] and QComboBoc.highlighted[str] signals but the int variants instead.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
88 self.on_languageCombo_activated(0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
89
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 def save(self):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 Public slot to save the editor highlighter keywords configuration.
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 lang = self.languageCombo.currentText()
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 kwSet = self.setSpinBox.value()
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
96 self.__keywords[lang]["Sets"][kwSet] = self.keywordsEdit.toPlainText()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
97
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 for lang, keywords in self.__keywords.items():
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
99 Preferences.setEditorKeywords(lang, keywords["Sets"])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
100
8151
8c1445825e7b Changed code to not use QComboBox.activated[str] and QComboBoc.highlighted[str] signals but the int variants instead.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
101 @pyqtSlot(int)
8c1445825e7b Changed code to not use QComboBox.activated[str] and QComboBoc.highlighted[str] signals but the int variants instead.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
102 def on_languageCombo_activated(self, index):
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 Private slot to fill the keywords edit.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
105
8151
8c1445825e7b Changed code to not use QComboBox.activated[str] and QComboBoc.highlighted[str] signals but the int variants instead.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
106 @param index index of the selected entry
8c1445825e7b Changed code to not use QComboBox.activated[str] and QComboBoc.highlighted[str] signals but the int variants instead.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
107 @type int
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 """
8151
8c1445825e7b Changed code to not use QComboBox.activated[str] and QComboBoc.highlighted[str] signals but the int variants instead.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
109 language = self.languageCombo.itemText(index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
110
6880
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
111 self.defaultButton.setEnabled(bool(language))
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
112 self.allDefaultButton.setEnabled(bool(language))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
113
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 if self.currentLanguage == language:
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
116
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 if self.setSpinBox.value() == 1:
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 self.on_setSpinBox_valueChanged(1)
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
119 if self.__keywords[language]["MaxSets"]:
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3178
diff changeset
120 first = 1
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
121 last = self.__keywords[language]["MaxSets"]
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3178
diff changeset
122 else:
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
123 first, last = self.MaxKeywordSets + 1, 0
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
124 for kwSet in range(1, self.MaxKeywordSets + 1):
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
125 if self.__keywords[language]["Descriptions"][kwSet] != "":
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3178
diff changeset
126 first = min(first, kwSet)
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3178
diff changeset
127 last = max(last, kwSet)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
128 self.setSpinBox.setEnabled(language != "" and first <= self.MaxKeywordSets)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
129 self.keywordsEdit.setEnabled(language != "" and first <= self.MaxKeywordSets)
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
130 if first <= self.MaxKeywordSets:
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 self.setSpinBox.setMinimum(first)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 self.setSpinBox.setMaximum(last)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 self.setSpinBox.setValue(first)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 else:
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 self.setSpinBox.setMinimum(0)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 self.setSpinBox.setMaximum(0)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 self.setSpinBox.setValue(0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
138
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 @pyqtSlot(int)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 def on_setSpinBox_valueChanged(self, kwSet):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 Private slot to fill the keywords edit.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
143
6879
a862f60853f9 EditorKeywordsPage: changed initialisation logic to load default keywords if a keyword set is empty.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6874
diff changeset
144 @param kwSet number of the selected keyword set
a862f60853f9 EditorKeywordsPage: changed initialisation logic to load default keywords if a keyword set is empty.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6874
diff changeset
145 @type int
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 language = self.languageCombo.currentText()
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 if self.currentLanguage == language and self.currentSet == kwSet:
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
150
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
151 self.__keywords[self.currentLanguage]["Sets"][
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
152 self.currentSet
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
153 ] = self.keywordsEdit.toPlainText()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
154
1446
e2658efcdaf4 Continued with QScintilla 2.6 support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
155 self.currentLanguage = language
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 self.currentSet = kwSet
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
157 self.setDescriptionLabel.setText(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
158 "<b>{0}</b>".format(self.__keywords[language]["Descriptions"][kwSet])
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
159 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
160 self.keywordsEdit.setPlainText(self.__keywords[language]["Sets"][kwSet])
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
161
6880
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
162 @pyqtSlot()
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
163 def on_defaultButton_clicked(self):
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
164 """
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
165 Private slot to set the current keyword set to default values.
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
166 """
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
167 ok = (
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
168 EricMessageBox.yesNo(
6880
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
169 self,
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
170 self.tr("Reset to Default"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
171 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
172 "Shall the current keyword set really be reset to"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
173 " default values?"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
174 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
175 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
176 if bool(self.keywordsEdit.toPlainText())
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
177 else True
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
178 )
6880
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
179 if ok:
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
180 language = self.languageCombo.currentText()
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
181 kwSet = self.setSpinBox.value()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
182 self.__keywords[language]["Sets"][kwSet] = self.__keywords[language][
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
183 "DefaultSets"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
184 ][kwSet]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
185 self.keywordsEdit.setPlainText(self.__keywords[language]["Sets"][kwSet])
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
186
6880
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
187 @pyqtSlot()
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
188 def on_allDefaultButton_clicked(self):
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
189 """
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
190 Private slot to set all keyword sets of the current language to default
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
191 values.
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
192 """
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
193 ok = EricMessageBox.yesNo(
6880
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
194 self,
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
195 self.tr("Reset All to Default"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
196 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
197 "Shall all keyword sets of the current language really be"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
198 " reset to default values?"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
199 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
200 )
6880
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
201 if ok:
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
202 language = self.languageCombo.currentText()
51f8a56f0b42 EditorKeywordsPage: added the "Default" and "All to Default" buttons to reset one or all keyword sets of a language lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6879
diff changeset
203 kwSet = self.setSpinBox.value()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
204 self.__keywords[language]["Sets"] = self.__keywords[language][
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
205 "DefaultSets"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
206 ][:]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
207 self.keywordsEdit.setPlainText(self.__keywords[language]["Sets"][kwSet])
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
209
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 def create(dlg):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 Module function to create the configuration page.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
213
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 @param dlg reference to the configuration dialog
6879
a862f60853f9 EditorKeywordsPage: changed initialisation logic to load default keywords if a keyword set is empty.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6874
diff changeset
215 @type ConfigurationWidget
a862f60853f9 EditorKeywordsPage: changed initialisation logic to load default keywords if a keyword set is empty.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6874
diff changeset
216 @return reference to the instantiated page
a862f60853f9 EditorKeywordsPage: changed initialisation logic to load default keywords if a keyword set is empty.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6874
diff changeset
217 @rtype ConfigurationPageBase
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 page = EditorKeywordsPage()
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 return page

eric ide

mercurial