--- a/src/eric7/Preferences/ConfigurationPages/EditorLanguageTabIndentOverrideDialog.py Wed Jul 13 11:16:20 2022 +0200 +++ b/src/eric7/Preferences/ConfigurationPages/EditorLanguageTabIndentOverrideDialog.py Wed Jul 13 14:55:47 2022 +0200 @@ -14,7 +14,7 @@ from PyQt6.QtWidgets import QDialog, QDialogButtonBox from .Ui_EditorLanguageTabIndentOverrideDialog import ( - Ui_EditorLanguageTabIndentOverrideDialog + Ui_EditorLanguageTabIndentOverrideDialog, ) @@ -25,13 +25,15 @@ Class implementing a dialog to set the tab and indentation width override for a language. """ + PygmentsMarker = "Pygments|" - - def __init__(self, *, editMode=False, languages=None, tabWidth=0, - indentWidth=0, parent=None): + + def __init__( + self, *, editMode=False, languages=None, tabWidth=0, indentWidth=0, parent=None + ): """ Constructor - + @keyparam editMode flag indicating the edit mode (Note: in edit mode the language is fixed) @type bool @@ -47,32 +49,31 @@ """ super().__init__(parent) self.setupUi(self) - + self.__extras = ["-----------", self.tr("Alternative")] - + if editMode: self.languageComboBox.addItems(languages) else: self.__populateLanguages(languages) self.tabWidthSpinBox.setValue(tabWidth) self.indentWidthSpinBox.setValue(indentWidth) - + def __populateLanguages(self, filterLanguages): """ Private method to populate the language combo boxes. - + @param filterLanguages list of languages to be filtered out @type list of str """ import QScintilla.Lexers - languages = list( - QScintilla.Lexers.getSupportedLanguages().keys()) + + languages = list(QScintilla.Lexers.getSupportedLanguages().keys()) for lang in filterLanguages: if lang in languages: languages.remove(lang) - self.languageComboBox.addItems( - [""] + sorted(languages) + self.__extras) - + self.languageComboBox.addItems([""] + sorted(languages) + self.__extras) + pygmentsLanguages = [lex[0] for lex in get_all_lexers()] for lang in filterLanguages: if lang.startswith(self.PygmentsMarker): @@ -80,11 +81,11 @@ if lang in pygmentsLanguages: pygmentsLanguages.remove(lang) self.pygmentsLexerCombo.addItems([""] + sorted(pygmentsLanguages)) - + def getData(self): """ Public method to get the entered data. - + @return tuple containing the language, the tab width and the indentation width @rtype tuple of (str, int, int) @@ -98,26 +99,26 @@ self.tabWidthSpinBox.value(), self.indentWidthSpinBox.value(), ) - + def __updateOkButton(self): """ Private method to set the enabled status of the OK button. """ lang = self.languageComboBox.currentText() if lang in self.__extras: - self.buttonBox.button( - QDialogButtonBox.StandardButton.Ok).setEnabled( - bool(self.pygmentsLexerCombo.currentText())) + self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled( + bool(self.pygmentsLexerCombo.currentText()) + ) else: - self.buttonBox.button( - QDialogButtonBox.StandardButton.Ok).setEnabled( - bool(lang)) - + self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled( + bool(lang) + ) + @pyqtSlot(int) def on_languageComboBox_currentIndexChanged(self, index): """ Private slot to handle the selection of a language. - + @param index index of the current item @type int """ @@ -128,14 +129,14 @@ else: self.pygmentsLexerCombo.setEnabled(False) self.pygmentsLabel.setEnabled(False) - + self.__updateOkButton() - + @pyqtSlot(int) def on_pygmentsLexerCombo_currentIndexChanged(self, index): """ Private slot to handle the selection of a language. - + @param index index of the current item @type int """