src/eric7/Preferences/ConfigurationPages/EditorKeywordsPage.py

Fri, 04 Nov 2022 13:52:26 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 04 Nov 2022 13:52:26 +0100
branch
eric7
changeset 9473
3f23dbf37dbe
parent 9413
80c06d472826
child 9482
a2bc06a54d9d
permissions
-rw-r--r--

Resorted the import statements using isort.

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
8881
54e42bc2437a Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
3 # Copyright (c) 2010 - 2022 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
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
14
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from .ConfigurationPageBase import ConfigurationPageBase
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 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
17
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
18
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 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
20 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 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
22 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
23
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
24 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
25
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 def __init__(self):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 Constructor
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
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
30 super().__init__()
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 self.setupUi(self)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 self.setObjectName("EditorKeywordsPage")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
33
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 # set initial values
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
35 from eric7.QScintilla import Lexers
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
36 from eric7.QScintilla.Lexers.LexerContainer import LexerContainer
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
37
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 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
39 "": {
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 "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
41 "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
42 "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
43 }
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3178
diff changeset
44 }
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
45
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
46 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
47 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
48 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
49 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
50 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
51 continue
45fe12e8533b Fixed a few issues related to the configurable keywords support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1446
diff changeset
52 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
53 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
54 # 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
55 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
56 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
57 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
58 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
59 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 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
61 else:
1457
45fe12e8533b Fixed a few issues related to the configurable keywords support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1446
diff changeset
62 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
63 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
64 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
65 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
66 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
67 kw = ""
45fe12e8533b Fixed a few issues related to the configurable keywords support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1446
diff changeset
68 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
69 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
70 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
71 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
72 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
73 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
74 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
75 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
76 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
77 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
78 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
79 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
80 "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
81 "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
82 "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
83 "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
84 }
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
85 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
86
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
87 self.currentLanguage = ""
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 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
89 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
90
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 def save(self):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 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
94 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 lang = self.languageCombo.currentText()
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 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
97 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
98
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 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
100 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
101
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
102 @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
103 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
104 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 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
106
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
107 @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
108 @type int
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 """
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
110 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
111
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
112 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
113 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
114
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 if self.currentLanguage == language:
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
117
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 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
119 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
120 if self.__keywords[language]["MaxSets"]:
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3178
diff changeset
121 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
122 last = self.__keywords[language]["MaxSets"]
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3178
diff changeset
123 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
124 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
125 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
126 if self.__keywords[language]["Descriptions"][kwSet] != "":
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3178
diff changeset
127 first = min(first, kwSet)
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3178
diff changeset
128 last = max(last, kwSet)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
129 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
130 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
131 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
132 self.setSpinBox.setMinimum(first)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 self.setSpinBox.setMaximum(last)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 self.setSpinBox.setValue(first)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 else:
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 self.setSpinBox.setMinimum(0)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 self.setSpinBox.setMaximum(0)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 self.setSpinBox.setValue(0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
139
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 @pyqtSlot(int)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 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
142 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 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
144
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
145 @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
146 @type int
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 language = self.languageCombo.currentText()
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 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
150 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
151
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
152 self.__keywords[self.currentLanguage]["Sets"][
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
153 self.currentSet
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
154 ] = self.keywordsEdit.toPlainText()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
155
1446
e2658efcdaf4 Continued with QScintilla 2.6 support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
156 self.currentLanguage = language
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 self.currentSet = kwSet
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
158 self.setDescriptionLabel.setText(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
159 "<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
160 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
161 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
162
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
163 @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
164 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
165 """
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 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
167 """
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
168 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
169 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
170 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
171 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
172 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
173 "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
174 " default values?"
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 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
177 if bool(self.keywordsEdit.toPlainText())
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
178 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
179 )
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
180 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
181 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
182 kwSet = self.setSpinBox.value()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
183 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
184 "DefaultSets"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
185 ][kwSet]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
186 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
187
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
188 @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
189 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
190 """
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 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
192 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
193 """
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
194 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
195 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
196 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
197 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
198 "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
199 " reset to default values?"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
200 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
201 )
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
202 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
203 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
204 kwSet = self.setSpinBox.value()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
205 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
206 "DefaultSets"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
207 ][:]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
208 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
209
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
210
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 def create(dlg):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 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
214
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 @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
216 @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
217 @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
218 @rtype ConfigurationPageBase
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 page = EditorKeywordsPage()
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 return page

eric ide

mercurial