Mon, 07 Nov 2022 17:19:58 +0100
Corrected/acknowledged some bad import style and removed some obsolete code.
# -*- coding: utf-8 -*- # Copyright (c) 2006 - 2022 Detlev Offenbach <detlev@die-offenbachs.de> # """ Module implementing the Editor Properties configuration page. """ from PyQt6.Qsci import QsciLexerPython from eric7 import Preferences from .ConfigurationPageBase import ConfigurationPageBase from .Ui_EditorPropertiesPage import Ui_EditorPropertiesPage class EditorPropertiesPage(ConfigurationPageBase, Ui_EditorPropertiesPage): """ Class implementing the Editor Properties configuration page. """ def __init__(self, lexers): """ Constructor @param lexers reference to the lexers dictionary """ super().__init__() self.setupUi(self) self.setObjectName("EditorPropertiesPage") self.languages = sorted(list(lexers.keys())[:]) # set initial values # All self.allFoldCompactCheckBox.setChecked(Preferences.getEditor("AllFoldCompact")) # Bash self.foldBashCommentCheckBox.setChecked( Preferences.getEditor("BashFoldComment") ) # C++ self.foldCppCommentCheckBox.setChecked(Preferences.getEditor("CppFoldComment")) self.foldCppPreprocessorCheckBox.setChecked( Preferences.getEditor("CppFoldPreprocessor") ) self.foldCppAtElseCheckBox.setChecked(Preferences.getEditor("CppFoldAtElse")) self.cppIndentOpeningBraceCheckBox.setChecked( Preferences.getEditor("CppIndentOpeningBrace") ) self.cppIndentClosingBraceCheckBox.setChecked( Preferences.getEditor("CppIndentClosingBrace") ) self.cppCaseInsensitiveCheckBox.setChecked( Preferences.getEditor("CppCaseInsensitiveKeywords") ) self.cppDollarAllowedCheckBox.setChecked( Preferences.getEditor("CppDollarsAllowed") ) self.cppStylePreprocessorCheckBox.setChecked( Preferences.getEditor("CppStylePreprocessor") ) self.cppHighlightTripleQuotedCheckBox.setChecked( Preferences.getEditor("CppHighlightTripleQuotedStrings") ) self.cppHighlightHashQuotedCheckBox.setChecked( Preferences.getEditor("CppHighlightHashQuotedStrings") ) self.cppHighlightBackQuotedCheckBox.setChecked( Preferences.getEditor("CppHighlightBackQuotedStrings") ) self.cppHighlightEsacepSequencesCheckBox.setChecked( Preferences.getEditor("CppHighlightEscapeSequences") ) self.cppVerbatimStringEscapeAllowedCheckBox.setChecked( Preferences.getEditor("CppVerbatimStringEscapeSequencesAllowed") ) # CMake self.cmakeFoldAtElseCheckBox.setChecked( Preferences.getEditor("CMakeFoldAtElse") ) # CoffeeScript if "CoffeeScript" in self.languages: self.foldCoffeeScriptCommentCheckBox.setChecked( Preferences.getEditor("CoffeScriptFoldComment") ) self.coffeeScriptDollarAllowedCheckBox.setChecked( Preferences.getEditor("CoffeeScriptDollarsAllowed") ) self.coffeeScriptStylePreprocessorCheckBox.setChecked( Preferences.getEditor("CoffeeScriptStylePreprocessor") ) else: self.coffeeScriptGroup.setEnabled(False) # CSS self.foldCssCommentCheckBox.setChecked(Preferences.getEditor("CssFoldComment")) self.cssHssCheckBox.setChecked(Preferences.getEditor("CssHssSupport")) self.cssLessCheckBox.setChecked(Preferences.getEditor("CssLessSupport")) self.cssSassyCheckBox.setChecked(Preferences.getEditor("CssSassySupport")) # D self.foldDCommentCheckBox.setChecked(Preferences.getEditor("DFoldComment")) self.foldDAtElseCheckBox.setChecked(Preferences.getEditor("DFoldAtElse")) self.dIndentOpeningBraceCheckBox.setChecked( Preferences.getEditor("DIndentOpeningBrace") ) self.dIndentClosingBraceCheckBox.setChecked( Preferences.getEditor("DIndentClosingBrace") ) # Gettext if "Gettext" in self.languages: self.foldPoCommentCheckBox.setChecked( Preferences.getEditor("PoFoldComment") ) else: self.gettextGroup.setEnabled(False) # HTML self.foldHtmlPreprocessorCheckBox.setChecked( Preferences.getEditor("HtmlFoldPreprocessor") ) self.htmlCaseSensitiveTagsCheckBox.setChecked( Preferences.getEditor("HtmlCaseSensitiveTags") ) self.foldHtmlScriptCommentsCheckBox.setChecked( Preferences.getEditor("HtmlFoldScriptComments") ) self.foldHtmlScriptHereDocsCheckBox.setChecked( Preferences.getEditor("HtmlFoldScriptHeredocs") ) self.htmlDjangoCheckBox.setChecked(Preferences.getEditor("HtmlDjangoTemplates")) self.htmlMakoCheckBox.setChecked(Preferences.getEditor("HtmlMakoTemplates")) # JSON if "JSON" in self.languages: self.jsonHighlightCommentsCheckBox.setChecked( Preferences.getEditor("JSONHightlightComments") ) self.jsonHighlightEscapeCheckBox.setChecked( Preferences.getEditor("JSONHighlightEscapeSequences") ) else: self.jsonGroup.setEnabled(False) # Pascal self.pascalGroup.setEnabled(True) self.foldPascalCommentCheckBox.setChecked( Preferences.getEditor("PascalFoldComment") ) self.foldPascalPreprocessorCheckBox.setChecked( Preferences.getEditor("PascalFoldPreprocessor") ) self.pascalSmartHighlightingCheckBox.setChecked( Preferences.getEditor("PascalSmartHighlighting") ) # Perl self.foldPerlCommentCheckBox.setChecked( Preferences.getEditor("PerlFoldComment") ) self.foldPerlPackagesCheckBox.setChecked( Preferences.getEditor("PerlFoldPackages") ) self.foldPerlPODBlocksCheckBox.setChecked( Preferences.getEditor("PerlFoldPODBlocks") ) self.foldPerlAtElseCheckBox.setChecked(Preferences.getEditor("PerlFoldAtElse")) # PostScript self.postscriptGroup.setEnabled(True) self.psFoldAtElseCheckBox.setChecked( Preferences.getEditor("PostScriptFoldAtElse") ) self.psMarkTokensCheckBox.setChecked( Preferences.getEditor("PostScriptTokenize") ) self.psLevelSpinBox.setValue(Preferences.getEditor("PostScriptLevel")) # Povray self.foldPovrayCommentCheckBox.setChecked( Preferences.getEditor("PovFoldComment") ) self.foldPovrayDirectivesCheckBox.setChecked( Preferences.getEditor("PovFoldDirectives") ) # Properties self.propertiesInitialSpacesCheckBox.setChecked( Preferences.getEditor("PropertiesInitialSpaces") ) # Python self.pythonBadIndentationComboBox.addItems( [ self.tr("No Warning"), self.tr("Inconsistent"), self.tr("Tabs after Spaces"), self.tr("Spaces"), self.tr("Tabs"), ] ) self.pythonBadIndentationComboBox.setCurrentIndex( Preferences.getEditor("PythonBadIndentation").value ) self.foldPythonCommentCheckBox.setChecked( Preferences.getEditor("PythonFoldComment") ) self.foldPythonStringCheckBox.setChecked( Preferences.getEditor("PythonFoldString") ) self.pythonAutoindentCheckBox.setChecked( Preferences.getEditor("PythonAutoIndent") ) self.pythonV2UnicodeAllowedCheckBox.setChecked( Preferences.getEditor("PythonAllowV2Unicode") ) self.pythonV3BinaryAllowedCheckBox.setChecked( Preferences.getEditor("PythonAllowV3Binary") ) self.pythonV3BytesAllowedCheckBox.setChecked( Preferences.getEditor("PythonAllowV3Bytes") ) self.foldPythonQuotesCheckBox.setChecked( Preferences.getEditor("PythonFoldQuotes") ) self.pythonStringsOverNewlineCheckBox.setChecked( Preferences.getEditor("PythonStringsOverNewLineAllowed") ) self.pythonHighlightSubidentifierCheckBox.setChecked( Preferences.getEditor("PythonHighlightSubidentifier") ) # Ruby self.foldRubyCommentCheckBox.setChecked( Preferences.getEditor("RubyFoldComment") ) # SQL self.foldSqlCommentCheckBox.setChecked(Preferences.getEditor("SqlFoldComment")) self.sqlBackslashEscapesCheckBox.setChecked( Preferences.getEditor("SqlBackslashEscapes") ) self.sqlFoldAtElseCheckBox.setChecked(Preferences.getEditor("SqlFoldAtElse")) self.sqlFoldOnlyBeginCheckBox.setChecked( Preferences.getEditor("SqlFoldOnlyBegin") ) self.sqlDottedWordsCheckBox.setChecked(Preferences.getEditor("SqlDottedWords")) self.sqlHashCommentsCheckBox.setChecked( Preferences.getEditor("SqlHashComments") ) self.sqlQuotedIdentifiersCheckBox.setChecked( Preferences.getEditor("SqlQuotedIdentifiers") ) # TCL self.foldTclCommentCheckBox.setChecked(Preferences.getEditor("TclFoldComment")) # TeX self.foldTexCommentCheckBox.setChecked(Preferences.getEditor("TexFoldComment")) self.texProcessCommentsCheckBox.setChecked( Preferences.getEditor("TexProcessComments") ) self.texProcessIfCheckBox.setChecked(Preferences.getEditor("TexProcessIf")) # VHDL self.vhdlFoldCommentCheckBox.setChecked( Preferences.getEditor("VHDLFoldComment") ) self.vhdlFoldAtElseCheckBox.setChecked(Preferences.getEditor("VHDLFoldAtElse")) self.vhdlFoldAtBeginCheckBox.setChecked( Preferences.getEditor("VHDLFoldAtBegin") ) self.vhdlFoldAtParenthesisCheckBox.setChecked( Preferences.getEditor("VHDLFoldAtParenthesis") ) # XML self.xmlSyleScriptsCheckBox.setChecked(Preferences.getEditor("XMLStyleScripts")) # YAML self.yamlGroup.setEnabled(True) self.foldYamlCommentCheckBox.setChecked( Preferences.getEditor("YAMLFoldComment") ) def save(self): """ Public slot to save the Editor Properties (1) configuration. """ # All Preferences.setEditor("AllFoldCompact", self.allFoldCompactCheckBox.isChecked()) # Bash Preferences.setEditor( "BashFoldComment", self.foldBashCommentCheckBox.isChecked() ) # CMake Preferences.setEditor( "CMakeFoldAtElse", self.cmakeFoldAtElseCheckBox.isChecked() ) # C++ Preferences.setEditor("CppFoldComment", self.foldCppCommentCheckBox.isChecked()) Preferences.setEditor( "CppFoldPreprocessor", self.foldCppPreprocessorCheckBox.isChecked() ) Preferences.setEditor("CppFoldAtElse", self.foldCppAtElseCheckBox.isChecked()) Preferences.setEditor( "CppIndentOpeningBrace", self.cppIndentOpeningBraceCheckBox.isChecked() ) Preferences.setEditor( "CppIndentClosingBrace", self.cppIndentClosingBraceCheckBox.isChecked() ) Preferences.setEditor( "CppCaseInsensitiveKeywords", self.cppCaseInsensitiveCheckBox.isChecked() ) Preferences.setEditor( "CppDollarsAllowed", self.cppDollarAllowedCheckBox.isChecked() ) Preferences.setEditor( "CppStylePreprocessor", self.cppStylePreprocessorCheckBox.isChecked() ) Preferences.setEditor( "CppHighlightTripleQuotedStrings", self.cppHighlightTripleQuotedCheckBox.isChecked(), ) Preferences.setEditor( "CppHighlightHashQuotedStrings", self.cppHighlightHashQuotedCheckBox.isChecked(), ) Preferences.setEditor( "CppHighlightBackQuotedStrings", self.cppHighlightBackQuotedCheckBox.isChecked(), ) Preferences.setEditor( "CppHighlightEscapeSequences", self.cppHighlightEsacepSequencesCheckBox.isChecked(), ) Preferences.setEditor( "CppVerbatimStringEscapeSequencesAllowed", self.cppVerbatimStringEscapeAllowedCheckBox.isChecked(), ) # CMake Preferences.setEditor( "CMakeFoldAtElse", self.cmakeFoldAtElseCheckBox.isChecked() ) # CoffeeScript if "CoffeeScript" in self.languages: Preferences.setEditor( "CoffeScriptFoldComment", self.foldCoffeeScriptCommentCheckBox.isChecked(), ) Preferences.setEditor( "CoffeeScriptDollarsAllowed", self.coffeeScriptDollarAllowedCheckBox.isChecked(), ) Preferences.setEditor( "CoffeeScriptStylePreprocessor", self.coffeeScriptStylePreprocessorCheckBox.isChecked(), ) # CSS Preferences.setEditor("CssFoldComment", self.foldCssCommentCheckBox.isChecked()) Preferences.setEditor("CssHssSupport", self.cssHssCheckBox.isChecked()) Preferences.setEditor("CssLessSupport", self.cssLessCheckBox.isChecked()) Preferences.setEditor("CssSassySupport", self.cssSassyCheckBox.isChecked()) # D Preferences.setEditor("DFoldComment", self.foldDCommentCheckBox.isChecked()) Preferences.setEditor("DFoldAtElse", self.foldDAtElseCheckBox.isChecked()) Preferences.setEditor( "DIndentOpeningBrace", self.dIndentOpeningBraceCheckBox.isChecked() ) Preferences.setEditor( "DIndentClosingBrace", self.dIndentClosingBraceCheckBox.isChecked() ) # Gettext if "Gettext" in self.languages: Preferences.setEditor( "PoFoldComment", self.foldPoCommentCheckBox.isChecked() ) # HTML Preferences.setEditor( "HtmlFoldPreprocessor", self.foldHtmlPreprocessorCheckBox.isChecked() ) Preferences.setEditor( "HtmlCaseSensitiveTags", self.htmlCaseSensitiveTagsCheckBox.isChecked() ) Preferences.setEditor( "HtmlFoldScriptComments", self.foldHtmlScriptCommentsCheckBox.isChecked() ) Preferences.setEditor( "HtmlFoldScriptHeredocs", self.foldHtmlScriptHereDocsCheckBox.isChecked() ) Preferences.setEditor( "HtmlDjangoTemplates", self.htmlDjangoCheckBox.isChecked() ) Preferences.setEditor("HtmlMakoTemplates", self.htmlMakoCheckBox.isChecked()) # JSON if "JSON" in self.languages: Preferences.setEditor( "JSONHightlightComments", self.jsonHighlightCommentsCheckBox.isChecked() ) Preferences.setEditor( "JSONHighlightEscapeSequences", self.jsonHighlightEscapeCheckBox.isChecked(), ) # Pascal Preferences.setEditor( "PascalFoldComment", self.foldPascalCommentCheckBox.isChecked() ) Preferences.setEditor( "PascalFoldPreprocessor", self.foldPascalPreprocessorCheckBox.isChecked() ) Preferences.setEditor( "PascalSmartHighlighting", self.pascalSmartHighlightingCheckBox.isChecked() ) # Perl Preferences.setEditor( "PerlFoldComment", self.foldPerlCommentCheckBox.isChecked() ) Preferences.setEditor( "PerlFoldPackages", self.foldPerlPackagesCheckBox.isChecked() ) Preferences.setEditor( "PerlFoldPODBlocks", self.foldPerlPODBlocksCheckBox.isChecked() ) Preferences.setEditor("PerlFoldAtElse", self.foldPerlAtElseCheckBox.isChecked()) # PostScript Preferences.setEditor( "PostScriptFoldAtElse", self.psFoldAtElseCheckBox.isChecked() ) Preferences.setEditor( "PostScriptTokenize", self.psMarkTokensCheckBox.isChecked() ) Preferences.setEditor("PostScriptLevel", self.psLevelSpinBox.value()) # Povray Preferences.setEditor( "PovFoldComment", self.foldPovrayCommentCheckBox.isChecked() ) Preferences.setEditor( "PovFoldDirectives", self.foldPovrayDirectivesCheckBox.isChecked() ) # Properties Preferences.setEditor( "PropertiesInitialSpaces", self.propertiesInitialSpacesCheckBox.isChecked() ) # Python Preferences.setEditor( "PythonFoldComment", self.foldPythonCommentCheckBox.isChecked() ) Preferences.setEditor( "PythonFoldString", self.foldPythonStringCheckBox.isChecked() ) Preferences.setEditor( "PythonBadIndentation", QsciLexerPython.IndentationWarning( self.pythonBadIndentationComboBox.currentIndex() ), ) Preferences.setEditor( "PythonAutoIndent", self.pythonAutoindentCheckBox.isChecked() ) Preferences.setEditor( "PythonAllowV2Unicode", self.pythonV2UnicodeAllowedCheckBox.isChecked() ) Preferences.setEditor( "PythonAllowV3Binary", self.pythonV3BinaryAllowedCheckBox.isChecked() ) Preferences.setEditor( "PythonAllowV3Bytes", self.pythonV3BytesAllowedCheckBox.isChecked() ) Preferences.setEditor( "PythonFoldQuotes", self.foldPythonQuotesCheckBox.isChecked() ) Preferences.setEditor( "PythonStringsOverNewLineAllowed", self.pythonStringsOverNewlineCheckBox.isChecked(), ) Preferences.setEditor( "PythonHighlightSubidentifier", self.pythonHighlightSubidentifierCheckBox.isChecked(), ) # Ruby Preferences.setEditor( "RubyFoldComment", self.foldRubyCommentCheckBox.isChecked() ) # SQL Preferences.setEditor("SqlFoldComment", self.foldSqlCommentCheckBox.isChecked()) Preferences.setEditor( "SqlBackslashEscapes", self.sqlBackslashEscapesCheckBox.isChecked() ) Preferences.setEditor("SqlFoldAtElse", self.sqlFoldAtElseCheckBox.isChecked()) Preferences.setEditor( "SqlFoldOnlyBegin", self.sqlFoldOnlyBeginCheckBox.isChecked() ) Preferences.setEditor("SqlDottedWords", self.sqlDottedWordsCheckBox.isChecked()) Preferences.setEditor( "SqlHashComments", self.sqlHashCommentsCheckBox.isChecked() ) Preferences.setEditor( "SqlQuotedIdentifiers", self.sqlQuotedIdentifiersCheckBox.isChecked() ) # TCL Preferences.setEditor("TclFoldComment", self.foldTclCommentCheckBox.isChecked()) # TeX Preferences.setEditor("TexFoldComment", self.foldTexCommentCheckBox.isChecked()) Preferences.setEditor( "TexProcessComments", self.texProcessCommentsCheckBox.isChecked() ) Preferences.setEditor("TexProcessIf", self.texProcessIfCheckBox.isChecked()) # VHDL Preferences.setEditor( "VHDLFoldComment", self.vhdlFoldCommentCheckBox.isChecked() ) Preferences.setEditor("VHDLFoldAtElse", self.vhdlFoldAtElseCheckBox.isChecked()) Preferences.setEditor( "VHDLFoldAtBegin", self.vhdlFoldAtBeginCheckBox.isChecked() ) Preferences.setEditor( "VHDLFoldAtParenthesis", self.vhdlFoldAtParenthesisCheckBox.isChecked() ) # XML Preferences.setEditor( "XMLStyleScripts", self.xmlSyleScriptsCheckBox.isChecked() ) # YAML Preferences.setEditor( "YAMLFoldComment", self.foldYamlCommentCheckBox.isChecked() ) def create(dlg): """ Module function to create the configuration page. @param dlg reference to the configuration dialog @return reference to the instantiated page (ConfigurationPageBase) """ page = EditorPropertiesPage(dlg.getLexers()) return page