eric6/Preferences/ConfigurationPages/EditorKeywordsPage.py

Tue, 24 Sep 2019 18:46:24 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 24 Sep 2019 18:46:24 +0200
changeset 7263
c1af2e327675
parent 7229
53054eb5b15a
child 7360
9190402e4505
permissions
-rw-r--r--

Continued to resolve code style issue M841.

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
6645
ad476851d7e0 Updated copyright for 2019.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
3 # Copyright (c) 2010 - 2019 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
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2408
diff changeset
10
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3654
diff changeset
11 from PyQt5.QtCore import pyqtSlot
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
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
13 from E5Gui import E5MessageBox
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
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 import Preferences
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 """
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
25 MaxKeywordSets = 8 # max. 8 sets are allowed
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
26
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 def __init__(self):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 Constructor
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2408
diff changeset
31 super(EditorKeywordsPage, self).__init__()
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 self.setupUi(self)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 self.setObjectName("EditorKeywordsPage")
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 # set initial values
2408
dc3a7c9d8f6e Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
36 import QScintilla.Lexers
dc3a7c9d8f6e Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
37 from QScintilla.Lexers.LexerContainer import LexerContainer
dc3a7c9d8f6e Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
38
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 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
40 "": {
5a3a39442711 Lexers: extended the keyword set handling by introducing a keyword set description and some set adjustments (harmonized with SciTE).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
41 "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
42 "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
43 "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
44 }
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3178
diff changeset
45 }
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3178
diff changeset
46
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2964
diff changeset
47 languages = sorted(
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2964
diff changeset
48 [''] + list(QScintilla.Lexers.getSupportedLanguages().keys()))
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 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
50 if lang:
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 lex = QScintilla.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
52 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
53 continue
45fe12e8533b Fixed a few issues related to the configurable keywords support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1446
diff changeset
54 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
55 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
56 # 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
57 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
58 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
59 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
60 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
61 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
62 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
63 else:
1457
45fe12e8533b Fixed a few issues related to the configurable keywords support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1446
diff changeset
64 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
65 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
66 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
67 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
68 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
69 kw = ""
45fe12e8533b Fixed a few issues related to the configurable keywords support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1446
diff changeset
70 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
71 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
72 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
73 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
74 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
75 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
76 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
77 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
78 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
79 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
80 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
81 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
82 "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
83 "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
84 "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
85 "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
86 }
5427
614e88cfbd84 Added some eye candy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
87 self.languageCombo.addItem(
614e88cfbd84 Added some eye candy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
88 QScintilla.Lexers.getLanguageIcon(lang, False),
614e88cfbd84 Added some eye candy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
89 lang)
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 self.currentLanguage = ''
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 self.currentSet = 1
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 self.on_languageCombo_activated(self.currentLanguage)
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 def save(self):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 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
98 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 lang = self.languageCombo.currentText()
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 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
101 self.__keywords[lang]["Sets"][kwSet] = self.keywordsEdit.toPlainText()
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 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
104 Preferences.setEditorKeywords(lang, keywords["Sets"])
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 @pyqtSlot(str)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 def on_languageCombo_activated(self, language):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 Private slot to fill the keywords edit.
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110
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
111 @param language selected language
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
112 @type str
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 """
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
114 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
115 self.allDefaultButton.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
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.currentLanguage == language:
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 return
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 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
121 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
122 if self.__keywords[language]["MaxSets"]:
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3178
diff changeset
123 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
124 last = self.__keywords[language]["MaxSets"]
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3178
diff changeset
125 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
126 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
127 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
128 if self.__keywords[language]["Descriptions"][kwSet] != "":
3654
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3178
diff changeset
129 first = min(first, kwSet)
ffeb85cdc72d Fixed and improved the CoffeeScript interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3178
diff changeset
130 last = max(last, kwSet)
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 self.setSpinBox.setEnabled(language != "" and
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
132 first <= self.MaxKeywordSets)
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
133 self.keywordsEdit.setEnabled(language != "" and
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
134 first <= self.MaxKeywordSets)
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
135 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
136 self.setSpinBox.setMinimum(first)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 self.setSpinBox.setMaximum(last)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 self.setSpinBox.setValue(first)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 else:
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 self.setSpinBox.setMinimum(0)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 self.setSpinBox.setMaximum(0)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 self.setSpinBox.setValue(0)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 @pyqtSlot(int)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 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
146 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 Private slot to fill the keywords edit.
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148
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
149 @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
150 @type int
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 language = self.languageCombo.currentText()
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 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
154 return
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155
7263
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
156 self.__keywords[self.currentLanguage]["Sets"][self.currentSet] = (
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 self.keywordsEdit.toPlainText()
7263
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
158 )
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159
1446
e2658efcdaf4 Continued with QScintilla 2.6 support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
160 self.currentLanguage = language
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 self.currentSet = kwSet
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
162 self.setDescriptionLabel.setText("<b>{0}</b>".format(
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
163 self.__keywords[language]["Descriptions"][kwSet]))
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
164 self.keywordsEdit.setPlainText(
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
165 self.__keywords[language]["Sets"][kwSet])
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
166
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 @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
168 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
169 """
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 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
171 """
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
172 if bool(self.keywordsEdit.toPlainText()):
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
173 ok = E5MessageBox.yesNo(
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
174 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
175 self.tr("Reset 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
176 self.tr("Shall the current keyword set really be reset to"
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
177 " 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
178 else:
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 ok = True
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()
7263
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
183 self.__keywords[language]["Sets"][kwSet] = (
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
184 self.__keywords[language]["DefaultSets"][kwSet]
7263
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
185 )
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
186 self.keywordsEdit.setPlainText(
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 self.__keywords[language]["Sets"][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
188
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 @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
190 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
191 """
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 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
193 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
194 """
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 ok = E5MessageBox.yesNo(
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,
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
197 self.tr("Reset All 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
198 self.tr("Shall all keyword sets of the current language really be"
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
199 " reset 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
200 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
201 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
202 kwSet = self.setSpinBox.value()
7263
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
203 self.__keywords[language]["Sets"] = (
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
204 self.__keywords[language]["DefaultSets"][:]
7263
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
205 )
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
206 self.keywordsEdit.setPlainText(
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
207 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.
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213
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