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)