--- a/PluginProjectKivy.py Thu Dec 30 12:15:18 2021 +0100 +++ b/PluginProjectKivy.py Wed Sep 21 16:27:00 2022 +0200 @@ -28,9 +28,7 @@ className = "ProjectKivyPlugin" packageName = "ProjectKivy" shortDescription = "Project support for Kivy projects." -longDescription = ( - """This plugin implements project support for Kivy projects.""" -) +longDescription = """This plugin implements project support for Kivy projects.""" needsRestart = False pyqtApi = 2 # End-of-Header @@ -41,16 +39,15 @@ def apiFiles(language): """ Module function to return the API files made available by this plugin. - + @param language language to get API file for @type str @return list of API filenames @rtype list of str """ if language in ["Python3"]: - apisDir = os.path.join(os.path.dirname(__file__), - "ProjectKivy", "APIs") - return glob.glob(os.path.join(apisDir, '*.api')) + apisDir = os.path.join(os.path.dirname(__file__), "ProjectKivy", "APIs") + return glob.glob(os.path.join(apisDir, "*.api")) else: return [] @@ -59,91 +56,100 @@ """ Class implementing the Kivy project plugin. """ + lexerAssociations = { "*.kv": "Pygments|Kivy", "*.kivy": "Pygments|Kivy", } - - KivyLexerKey = 'KivyLexer' + + KivyLexerKey = "KivyLexer" KivyLexerEntry = ( - 'ProjectKivy.KivyLexer', - 'Kivy', - ('kivy', 'kv'), - ('*.kv', '*.kivy'), - ('application/x-kivy',) + "ProjectKivy.KivyLexer", + "Kivy", + ("kivy", "kv"), + ("*.kv", "*.kivy"), + ("application/x-kivy",), ) - + def __init__(self, ui): """ Constructor - + @param ui reference to the user interface object @type UserInterface """ QObject.__init__(self, ui) self.__ui = ui self.__initialize() - + self.__translator = None self.__loadTranslator() - + def __initialize(self): """ Private slot to (re)initialize the plugin. """ self.__ericProject = ericApp().getObject("Project") - + def activate(self): """ Public method to activate this plugin. - + @return tuple of None and activation status @rtype bool """ self.__ericProject.registerProjectType( - "Kivy", self.tr("Kivy"), self.fileTypesCallback, + "Kivy", + self.tr("Kivy"), + self.fileTypesCallback, lexerAssociationCallback=self.lexerAssociationCallback, - progLanguages=["Python3"]) - + progLanguages=["Python3"], + ) + from Project.ProjectBrowser import ( - SourcesBrowserFlag, FormsBrowserFlag, TranslationsBrowserFlag, - OthersBrowserFlag + SourcesBrowserFlag, + FormsBrowserFlag, + TranslationsBrowserFlag, + OthersBrowserFlag, ) + Preferences.setProjectBrowserFlagsDefault( "Kivy", - SourcesBrowserFlag | - FormsBrowserFlag | - TranslationsBrowserFlag | - OthersBrowserFlag, + SourcesBrowserFlag + | FormsBrowserFlag + | TranslationsBrowserFlag + | OthersBrowserFlag, ) - + LEXERS[self.KivyLexerKey] = self.KivyLexerEntry import QScintilla.Lexers + QScintilla.Lexers.registerLexer( "Pygments|Kivy", self.tr("Kivy"), "dummy.kv", self.getLexer, - [self.tr('Kivy Files (*.kv *.kivy)')], - [self.tr('Kivy Files (*.kv)')], - ['*.kv', '*.kivy'] + [self.tr("Kivy Files (*.kv *.kivy)")], + [self.tr("Kivy Files (*.kv)")], + ["*.kv", "*.kivy"], ) - + return None, True - + def deactivate(self): """ Public method to deactivate this plugin. """ self.__ericProject.unregisterProjectType("Kivy") - + import QScintilla.Lexers + QScintilla.Lexers.unregisterLexer("Kivy") if self.KivyLexerKey in LEXERS: del LEXERS[self.KivyLexerKey] - + self.__initialize() - + def __loadTranslator(self): """ Private method to load the translation file. @@ -152,7 +158,8 @@ loc = self.__ui.getLocale() if loc and loc != "C": locale_dir = os.path.join( - os.path.dirname(__file__), "ProjectKivy", "i18n") + os.path.dirname(__file__), "ProjectKivy", "i18n" + ) translation = "kivy_{0}".format(loc) translator = QTranslator(None) loaded = translator.load(translation, locale_dir) @@ -160,14 +167,16 @@ self.__translator = translator ericApp().installTranslator(self.__translator) else: - print("Warning: translation file '{0}' could not be" - " loaded.".format(translation)) + print( + "Warning: translation file '{0}' could not be" + " loaded.".format(translation) + ) print("Using default.") - + def fileTypesCallback(self): """ Public method get the filetype associations of the Kivy project type. - + @return dictionary with file type associations @rtype dict """ @@ -179,12 +188,12 @@ } else: return {} - + def lexerAssociationCallback(self, filename): """ Public method to get the lexer association of the Kivy project type for a file. - + @param filename name of the file @type str @return name of the lexer (Pygments lexers are prefixed with @@ -194,24 +203,26 @@ for pattern, language in self.lexerAssociations.items(): if fnmatch.fnmatch(filename, pattern): return language - + return "" - + def getLexer(self, parent=None): """ Public method to instantiate a Pygments Kivy lexer object. - + @param parent reference to the parent object @type QObject @return reference to the instanciated lexer object @rtype QsciLexer """ from QScintilla.Lexers.LexerPygments import LexerPygments + lexer = LexerPygments(parent, name="Kivy") if lexer.canStyle(): return lexer else: return None + # # eflag: noqa = M801, M811