src/eric7/Preferences/ConfigurationPages/EditorTypingPage.py

branch
eric7
changeset 10199
2cd5ff8e0e0f
parent 10069
435cc5875135
child 10201
5beaa25bdfbe
diff -r 94ab7a21c3ad -r 2cd5ff8e0e0f src/eric7/Preferences/ConfigurationPages/EditorTypingPage.py
--- a/src/eric7/Preferences/ConfigurationPages/EditorTypingPage.py	Fri Sep 08 10:16:05 2023 +0200
+++ b/src/eric7/Preferences/ConfigurationPages/EditorTypingPage.py	Sat Sep 09 17:17:11 2023 +0200
@@ -10,6 +10,7 @@
 from PyQt6.QtCore import pyqtSlot
 
 from eric7 import Preferences
+from eric7.QScintilla.TypingCompleters import CompleterRegistry
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_EditorTypingPage import Ui_EditorTypingPage
@@ -28,17 +29,25 @@
         self.setupUi(self)
         self.setObjectName("EditorTypingPage")
 
-        # set initial values
-        self.pageIds = {
+        self.__pageIds = {
             " ": self.stackedWidget.indexOf(self.emptyPage),
             "Python": self.stackedWidget.indexOf(self.pythonPage),
             "Ruby": self.stackedWidget.indexOf(self.rubyPage),
             "YAML": self.stackedWidget.indexOf(self.yamlPage),
         }
-        languages = sorted(self.pageIds.keys())
-        for language in languages:
-            self.languageCombo.addItem(language, self.pageIds[language])
 
+        self.__extensionPages = {}
+        for language in CompleterRegistry:
+            page = CompleterRegistry[language].createConfigPage()
+            if page is not None:
+                language = language.replace("Pygments|", "")  # more readable
+                self.__extensionPages[language] = page
+                self.__pageIds[language] = self.stackedWidget.addWidget(page)
+
+        for language in sorted(self.__pageIds.keys()):
+            self.languageCombo.addItem(language, self.__pageIds[language])
+
+        # set initial values
         # Python
         self.pythonGroup.setChecked(
             Preferences.getEditorTyping("Python/EnabledTypingAids")
@@ -240,6 +249,9 @@
             "Yaml/InsertBlankComma", self.yamlInsertBlankCommaCheckBox.isChecked()
         )
 
+        for page in self.__extensionPages.values():
+            page.save()
+
     @pyqtSlot(int)
     def on_languageCombo_activated(self, index):
         """
@@ -250,9 +262,9 @@
         """
         language = self.languageCombo.itemText(index)
         try:
-            index = self.pageIds[language]
+            index = self.__pageIds[language]
         except KeyError:
-            index = self.pageIds[" "]
+            index = self.__pageIds[" "]
         self.stackedWidget.setCurrentIndex(index)
 
 

eric ide

mercurial