Sat, 09 Sep 2023 17:43:15 +0200
Added a Typing Completer and an associated configuration page.
--- a/ChangeLog Sat Dec 31 16:27:50 2022 +0100 +++ b/ChangeLog Sat Sep 09 17:43:15 2023 +0200 @@ -1,5 +1,9 @@ ChangeLog --------- +Version 10.3.0: +- bug fix +- added a Typing Completer and an associated configuration page + Version 10.2.1: - bug fix
--- a/PKGLIST Sat Dec 31 16:27:50 2022 +0100 +++ b/PKGLIST Sat Sep 09 17:43:15 2023 +0200 @@ -1,6 +1,9 @@ PluginProjectKivy.py ProjectKivy/APIs/kivy.api ProjectKivy/APIs/kivy.bas +ProjectKivy/CompleterKivy.py +ProjectKivy/CompleterKivyConfigWidget.py +ProjectKivy/CompleterKivyConfigWidget.ui ProjectKivy/Documentation/LICENSE.GPL ProjectKivy/KivyLexer.py ProjectKivy/__init__.py
--- a/PluginKivy.epj Sat Dec 31 16:27:50 2022 +0100 +++ b/PluginKivy.epj Sat Sep 09 17:43:15 2023 +0200 @@ -1,7 +1,7 @@ { "header": { "comment": "eric project file for project PluginKivy", - "copyright": "Copyright (C) 2022 Detlev Offenbach, detlev@die-offenbachs.de" + "copyright": "Copyright (C) 2023 Detlev Offenbach, detlev@die-offenbachs.de" }, "project": { "AUTHOR": "Detlev Offenbach", @@ -11,10 +11,14 @@ "AllowStarArgAny": false, "AllowUntypedDefs": false, "AllowUntypedNested": false, + "CheckFutureAnnotations": false, "DispatchDecorators": [ "singledispatch", "singledispatchmethod" ], + "ExemptedTypingSymbols": [ + "" + ], "ForceFutureAnnotations": false, "MaximumComplexity": 3, "MaximumLength": 7, @@ -62,7 +66,7 @@ "CopyrightAuthor": "", "CopyrightMinFileSize": 0, "DocstringType": "eric_black", - "EnabledCheckerCategories": "C, D, E, M, N, S, Y, W", + "EnabledCheckerCategories": "C, D, E, I, M, NO, N, S, Y, U, W", "ExcludeFiles": "*/Ui_*.py, */*_rc.py,", "ExcludeMessages": "C101,E265,E266,E305,E402,M201,M301,M302,M303,M304,M305,M306,M307,M308,M311,M312,M313,M314,M315,M321,M701,M702,M811,M834,N802,N803,N807,N808,N821,W293,W503,Y401,Y402", "FixCodes": "", @@ -70,7 +74,10 @@ "FutureChecker": "", "HangClosing": false, "ImportsChecker": { - "ApplicationPackageNames": [], + "ApplicationPackageNames": [ + "ProjectKivy", + "eric7" + ], "BanRelativeImports": "", "BannedModules": [] }, @@ -80,6 +87,17 @@ "MaxCodeComplexity": 10, "MaxDocLineLength": 88, "MaxLineLength": 88, + "NameOrderChecker": { + "ApplicationPackageNames": [ + "ProjectKivy", + "eric7" + ], + "CombinedAsImports": false, + "SortCaseSensitive": false, + "SortFromFirst": false, + "SortIgnoringStyle": false, + "SortOrder": "natural" + }, "NoFixCodes": "E501", "RepeatMessages": true, "SecurityChecker": { @@ -113,6 +131,19 @@ "WeakKeySizeRsaMedium": "2048" }, "ShowIgnored": false, + "UnusedChecker": { + "IgnoreAbstract": true, + "IgnoreDunderGlobals": true, + "IgnoreDunderMethods": true, + "IgnoreEventHandlerMethods": true, + "IgnoreLambdas": false, + "IgnoreNestedFunctions": false, + "IgnoreOverload": true, + "IgnoreOverride": true, + "IgnoreSlotMethods": true, + "IgnoreStubs": true, + "IgnoreVariadicNames": false + }, "ValidEncodings": "latin-1, utf-8" } }, @@ -131,6 +162,7 @@ ], "outputDirectory": "ProjectKivy/Documentation/source", "qtHelpEnabled": false, + "startDirectory": "", "useRecursion": true } }, @@ -141,7 +173,6 @@ "*.epj": "OTHERS", "*.idl": "INTERFACES", "*.md": "OTHERS", - "*.proto": "PROTOCOLS", "*.py": "SOURCES", "*.py3": "SOURCES", "*.pyw": "SOURCES", @@ -155,10 +186,12 @@ "Makefile": "OTHERS", "README": "OTHERS", "README.*": "OTHERS", - "Ui_*.py": "SOURCES", + "Ui_*.py": "__IGNORE__", "makefile": "OTHERS" }, - "FORMS": [], + "FORMS": [ + "ProjectKivy/CompleterKivyConfigWidget.ui" + ], "HASH": "edc66a361a68c8b839b94476f35c5809077c7a5d", "IDLPARAMS": { "DefinedNames": [], @@ -192,7 +225,7 @@ ], "OTHERTOOLSPARMS": { "Black": { - "exclude": "/(\\.direnv|\\.eggs|\\.git|\\.hg|\\.mypy_cache|\\.nox|\\.tox|\\.venv|venv|\\.svn|\\.ipynb_checkpoints|_build|buck-out|build|dist|__pypackages__)/", + "exclude": "/(\\.direnv|\\.eggs|\\.git|\\.hg|\\.ipynb_checkpoints|\\.mypy_cache|\\.nox|\\.pytest_cache|\\.ruff_cache|\\.tox|\\.svn|\\.venv|\\.vscode|__pypackages__|_build|buck-out|build|dist|venv)/", "extend-exclude": "", "force-exclude": "", "line-length": 88, @@ -200,6 +233,7 @@ "skip-string-normalization": false, "source": "project", "target-version": [ + "py312", "py311", "py310", "py39", @@ -239,10 +273,13 @@ "RESOURCES": [], "SOURCES": [ "PluginProjectKivy.py", + "ProjectKivy/CompleterKivy.py", + "ProjectKivy/CompleterKivyConfigWidget.py", "ProjectKivy/KivyLexer.py", "ProjectKivy/__init__.py", "__init__.py" ], + "SOURCESDIR": "", "SPELLEXCLUDES": "", "SPELLLANGUAGE": "en_US", "SPELLWORDS": "",
--- a/PluginProjectKivy.py Sat Dec 31 16:27:50 2022 +0100 +++ b/PluginProjectKivy.py Sat Sep 09 17:43:15 2023 +0200 @@ -7,6 +7,7 @@ Module implementing the Kivy project plug-in. """ +import contextlib import fnmatch import glob import os @@ -16,13 +17,14 @@ from eric7 import Preferences from eric7.EricWidgets.EricApplication import ericApp +from eric7.QScintilla import Lexers, TypingCompleters # Start-of-Header name = "Kivy Project Plugin" author = "Detlev Offenbach <detlev@die-offenbachs.de>" autoactivate = True deactivateable = True -version = "10.2.1" +version = "10.3.0" className = "ProjectKivyPlugin" packageName = "ProjectKivy" shortDescription = "Project support for Kivy projects." @@ -50,11 +52,20 @@ return [] +def prepareUninstall(): + """ + Module function to prepare for an uninstallation. + """ + Preferences.Prefs.settings.remove(ProjectKivyPlugin.PreferencesKey) + + class ProjectKivyPlugin(QObject): """ Class implementing the Kivy project plugin. """ + PreferencesKey = "Kivy" + lexerAssociations = { "*.kv": "Pygments|Kivy", "*.kivy": "Pygments|Kivy", @@ -80,6 +91,17 @@ self.__ui = ui self.__initialize() + self.__typingDefaults = { + "EnabledTypingAids": True, + "InsertClosingBrace": True, + "SkipBrace": True, + "InsertQuote": True, + "AutoIndentation": True, + "ColonDetection": True, + "InsertBlankColon": True, + "InsertBlankComma": True, + } + self.__translator = None self.__loadTranslator() @@ -96,8 +118,6 @@ @return tuple of None and activation status @rtype bool """ - from eric7.QScintilla import Lexers - self.__ericProject.registerProjectType( "Kivy", self.tr("Kivy"), @@ -108,7 +128,7 @@ try: # backward compatibility for eric7 < 22.12 - from eric7.Project.ProjectBrowser import ( + from eric7.Project.ProjectBrowser import ( # noqa: I101 FormsBrowserFlag, OthersBrowserFlag, SourcesBrowserFlag, @@ -139,15 +159,25 @@ ["*.kv", "*.kivy"], ) + with contextlib.suppress(AttributeError): + # Typing Completer (eric7 > 23.9) + TypingCompleters.registerCompleter( + language="Pygments|Kivy", + createCompleterFunction=self.createTypingCompleter, + createConfigPageFunction=self.createTypingCompleterConfigWidget, + ) + return None, True def deactivate(self): """ Public method to deactivate this plugin. """ - from eric7.QScintilla import Lexers + self.__ericProject.unregisterProjectType("Kivy") - self.__ericProject.unregisterProjectType("Kivy") + with contextlib.suppress(AttributeError): + # Typing Completer (eric7 > 23.9) + TypingCompleters.unregisterTypingCompleter("Pygments|Kivy") Lexers.unregisterLexer("Pygments|Kivy") if self.KivyLexerKey in LEXERS: @@ -228,6 +258,61 @@ else: return None + def getTypingPreferences(self, key): + """ + Public method to retrieve the typing completer settings. + + @param key the key of the value to get + @type str + @return value of the requested setting + @rtype Any + """ + return Preferences.toBool( + Preferences.Prefs.settings.value( + f"{self.PreferencesKey}/Typing/{key}", self.__typingDefaults[key] + ) + ) + + def setTypingPreferences(self, key, value): + """ + Public method to store the typing completer settings. + + @param key the key of the setting to be set + @type str + @param value value to be set + @type Any + """ + Preferences.Prefs.settings.setValue( + f"{self.PreferencesKey}/Typing/{key}", value + ) + + def createTypingCompleter(self, editor, parent=None): + """ + Public method to create a typing completer object for the given editor. + + @param editor reference to the editor object + @type Editor + @param parent reference to the parent object (defaults to None) + @type QObject (optional) + @return reference to the instantiated typing completer object + @rtype CompleterKivy + """ + from ProjectKivy.CompleterKivy import CompleterKivy + + return CompleterKivy(self, editor, parent) + + def createTypingCompleterConfigWidget(self): + """ + Public method to create and populate the typing completer configuration widget. + + @return instantiated and populated configuration widget + @rtype CompleterKivyConfigWidget + """ + from ProjectKivy.CompleterKivyConfigWidget import CompleterKivyConfigWidget + + widget = CompleterKivyConfigWidget(self) + return widget + # -# eflag: noqa = M801, M811 +# eflag: noqa = M801, M811, U200
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ProjectKivy/CompleterKivy.py Sat Sep 09 17:43:15 2023 +0200 @@ -0,0 +1,179 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2023 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the Kivy typing completer. +""" + +import re + +from PyQt6.Qsci import QsciScintilla + +from eric7.QScintilla.TypingCompleters.CompleterBase import CompleterBase + + +class CompleterKivy(CompleterBase): + """ + Class implementing the Kivy typing completer. + """ + + def __init__(self, plugin, editor, parent=None): + """ + Constructor + + @param plugin reference to the plugin object + @type ProjectKivyPlugin + @param editor reference to the editor object + @type Editor + @param parent reference to the parent object + @type QObject + """ + super().__init__(editor, parent) + + self.__plugin = plugin + + self.__autoIndentationRe = re.compile(r"(?:\(|\[|{|:)(\s*)\r?\n") + + self.readSettings() + + def readSettings(self): + """ + Public slot called to reread the configuration parameters. + """ + self.setEnabled(self.__plugin.getTypingPreferences("EnabledTypingAids")) + self.__insertClosingBrace = self.__plugin.getTypingPreferences( + "InsertClosingBrace" + ) + self.__skipBrace = self.__plugin.getTypingPreferences("SkipBrace") + self.__colonDetection = self.__plugin.getTypingPreferences("ColonDetection") + self.__autoIndentation = self.__plugin.getTypingPreferences("AutoIndentation") + self.__insertQuote = self.__plugin.getTypingPreferences("InsertQuote") + self.__insertBlankColon = self.__plugin.getTypingPreferences("InsertBlankColon") + self.__insertBlankComma = self.__plugin.getTypingPreferences("InsertBlankComma") + + def charAdded(self, charNumber): + """ + Public slot called to handle the user entering a character. + + @param charNumber value of the character entered + @type int + """ + char = chr(charNumber) + if char not in ( + "{", + "}", + "[", + "]", + "(", + ")", + "<", + ">", + "'", + '"', + ":", + ",", + "\n", + ): + return # take the short route + + line, col = self.editor.getCursorPosition() + + if self.__inComment(line, col): + return + + # open parenthesis + # insert closing parenthesis + if char == "(" and self.__insertClosingBrace: + self.editor.insert(")") + + # open curly bracket + # insert closing bracket + elif char == "{" and self.__insertClosingBrace: + self.editor.insert("}") + + # open bracket + # insert closing bracket + elif char == "[" and self.__insertClosingBrace: + self.editor.insert("]") + + # open tag bracket + # insert closing bracket + elif char == "<" and self.__insertClosingBrace: + self.editor.insert(">") + + # closing parenthesis + # skip matching closing parenthesis + elif char in (")", "}", "]", ">"): + txt = self.editor.text(line) + if col < len(txt) and char == txt[col] and self.__skipBrace: + self.editor.setSelection(line, col, line, col + 1) + self.editor.removeSelectedText() + + # colon + # 1. skip colon if not last character + # 2. insert blank if last character + elif char == ":": + text = self.editor.text(line) + if col < len(text) and char == text[col]: + if self.__colonDetection: + self.editor.setSelection(line, col, line, col + 1) + self.editor.removeSelectedText() + elif self.__insertBlankColon and col == len(text.rstrip()): + self.editor.insert(" ") + self.editor.setCursorPosition(line, col + 1) + + # comma + # insert blank + elif char == "," and self.__insertBlankComma: + self.editor.insert(" ") + self.editor.setCursorPosition(line, col + 1) + + # double quote + # insert double quote + elif char == '"' and self.__insertQuote: + self.editor.insert('"') + + # quote + # insert quote + elif char == "'" and self.__insertQuote: + self.editor.insert("'") + + # new line + # indent after line ending with ':' + elif char == "\n" and self.__autoIndentation: + txt = self.editor.text(line - 1) + match = self.__autoIndentationRe.search(txt) + if match is not None: + startBlanks = match.start(1) + endBlanks = match.end(1) + if startBlanks != -1 and startBlanks != endBlanks: + # previous line ends with whitespace, e.g. caused by + # blank insertion above + self.editor.setSelection(line - 1, startBlanks, line - 1, endBlanks) + self.editor.removeSelectedText() + + self.editor.indent(line) + self.editor.setCursorPosition(line, 0) + self.editor.editorCommand(QsciScintilla.SCI_VCHOME) + + def __inComment(self, line, col): + """ + Private method to check, if the cursor is inside a comment. + + @param line current line + @type int + @param col current position within line + @type int + @return flag indicating, if the cursor is inside a comment + @rtype bool + """ + txt = self.editor.text(line) + if col == len(txt): + col -= 1 + while col >= 0: + if txt[col] == "#": + return True + col -= 1 + return False
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ProjectKivy/CompleterKivyConfigWidget.py Sat Sep 09 17:43:15 2023 +0200 @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2023 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the configuration widget for the Kivy typing completer. +""" + +from PyQt6.QtWidgets import QWidget + +from .Ui_CompleterKivyConfigWidget import Ui_CompleterKivyConfigWidget + + +class CompleterKivyConfigWidget(QWidget, Ui_CompleterKivyConfigWidget): + """ + Class documentation goes here. + """ + + def __init__(self, plugin, parent=None): + """ + Constructor + + @param plugin reference to the plugin object + @type ProjectKivyPlugin + @param parent reference to the parent widget (defaults to None) + @type QWidget (optional) + """ + super().__init__(parent) + self.setupUi(self) + + self.__plugin = plugin + + # set initial values + self.kivyGroup.setChecked( + self.__plugin.getTypingPreferences("EnabledTypingAids") + ) + self.kivyInsertClosingBraceCheckBox.setChecked( + self.__plugin.getTypingPreferences("InsertClosingBrace") + ) + self.kivySkipBraceCheckBox.setChecked( + self.__plugin.getTypingPreferences("SkipBrace") + ) + self.kivyColonDetectionCheckBox.setChecked( + self.__plugin.getTypingPreferences("ColonDetection") + ) + self.kivyAutoIndentationCheckBox.setChecked( + self.__plugin.getTypingPreferences("AutoIndentation") + ) + self.kivyInsertQuoteCheckBox.setChecked( + self.__plugin.getTypingPreferences("InsertQuote") + ) + self.kivyInsertBlankColonCheckBox.setChecked( + self.__plugin.getTypingPreferences("InsertBlankColon") + ) + self.kivyInsertBlankCommaCheckBox.setChecked( + self.__plugin.getTypingPreferences("InsertBlankComma") + ) + + def save(self): + """ + Public method to save the Kivy Typing Completer configuration. + """ + self.__plugin.setTypingPreferences( + "EnabledTypingAids", self.kivyGroup.isChecked() + ) + self.__plugin.setTypingPreferences( + "InsertClosingBrace", self.kivyInsertClosingBraceCheckBox.isChecked() + ) + self.__plugin.setTypingPreferences( + "SkipBrace", self.kivySkipBraceCheckBox.isChecked() + ) + self.__plugin.setTypingPreferences( + "ColonDetection", self.kivyColonDetectionCheckBox.isChecked() + ) + self.__plugin.setTypingPreferences( + "AutoIndentation", self.kivyAutoIndentationCheckBox.isChecked() + ) + self.__plugin.setTypingPreferences( + "InsertQuote", self.kivyInsertQuoteCheckBox.isChecked() + ) + self.__plugin.setTypingPreferences( + "InsertBlankColon", self.kivyInsertBlankColonCheckBox.isChecked() + ) + self.__plugin.setTypingPreferences( + "InsertBlankComma", self.kivyInsertBlankCommaCheckBox.isChecked() + )
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ProjectKivy/CompleterKivyConfigWidget.ui Sat Sep 09 17:43:15 2023 +0200 @@ -0,0 +1,191 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>CompleterKivyConfigWidget</class> + <widget class="QWidget" name="CompleterKivyConfigWidget"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>528</width> + <height>426</height> + </rect> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <item> + <widget class="QGroupBox" name="kivyGroup"> + <property name="focusPolicy"> + <enum>Qt::TabFocus</enum> + </property> + <property name="toolTip"> + <string>Select to enable Kivy typing aids</string> + </property> + <property name="title"> + <string>Enable Kivy typing aids</string> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <property name="checked"> + <bool>true</bool> + </property> + <layout class="QVBoxLayout" name="verticalLayout_4"> + <item> + <widget class="QCheckBox" name="kivyInsertClosingBraceCheckBox"> + <property name="toolTip"> + <string>Select to insert a closing parenthesis</string> + </property> + <property name="text"> + <string>Automatic parenthesis insertion</string> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="_2"> + <item> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QCheckBox" name="kivySkipBraceCheckBox"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Select to skip matching braces when typing</string> + </property> + <property name="text"> + <string>Automatically skip matching braces when typing</string> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>131</width> + <height>21</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <widget class="QCheckBox" name="kivyColonDetectionCheckBox"> + <property name="toolTip"> + <string>Select to skip a ':', if typed next to another ':'</string> + </property> + <property name="text"> + <string>Automatic colon detection</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="kivyAutoIndentationCheckBox"> + <property name="toolTip"> + <string>Select to indent after typing 'return'</string> + </property> + <property name="text"> + <string>Automatic indent after '(', '{', '[' and ':'</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="kivyInsertQuoteCheckBox"> + <property name="toolTip"> + <string>Select to insert the matching quote character</string> + </property> + <property name="text"> + <string>Automatic quote insertion</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="kivyInsertBlankColonCheckBox"> + <property name="toolTip"> + <string>Select to insert a blank after ':'</string> + </property> + <property name="text"> + <string>Automatic insertion of ' ' (blank) after ':'</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="kivyInsertBlankCommaCheckBox"> + <property name="toolTip"> + <string>Select to insert a blank after ','</string> + </property> + <property name="text"> + <string>Automatic insertion of ' ' (blank) after ','</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <tabstops> + <tabstop>kivyGroup</tabstop> + <tabstop>kivyInsertClosingBraceCheckBox</tabstop> + <tabstop>kivySkipBraceCheckBox</tabstop> + <tabstop>kivyColonDetectionCheckBox</tabstop> + <tabstop>kivyAutoIndentationCheckBox</tabstop> + <tabstop>kivyInsertQuoteCheckBox</tabstop> + <tabstop>kivyInsertBlankColonCheckBox</tabstop> + <tabstop>kivyInsertBlankCommaCheckBox</tabstop> + </tabstops> + <resources/> + <connections> + <connection> + <sender>kivyInsertClosingBraceCheckBox</sender> + <signal>toggled(bool)</signal> + <receiver>kivySkipBraceCheckBox</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>133</x> + <y>52</y> + </hint> + <hint type="destinationlabel"> + <x>143</x> + <y>79</y> + </hint> + </hints> + </connection> + </connections> +</ui>
--- a/ProjectKivy/Documentation/source/Plugin_Project_Kivy.PluginProjectKivy.html Sat Dec 31 16:27:50 2022 +0100 +++ b/ProjectKivy/Documentation/source/Plugin_Project_Kivy.PluginProjectKivy.html Sat Sep 09 17:43:15 2023 +0200 @@ -33,6 +33,10 @@ <td><a href="#apiFiles">apiFiles</a></td> <td>Module function to return the API files made available by this plugin.</td> </tr> +<tr> +<td><a href="#prepareUninstall">prepareUninstall</a></td> +<td>Module function to prepare for an uninstallation.</td> +</tr> </table> <hr /> <hr /> @@ -47,7 +51,7 @@ <h3>Class Attributes</h3> <table> -<tr><td>KivyLexerEntry</td></tr><tr><td>KivyLexerKey</td></tr><tr><td>lexerAssociations</td></tr> +<tr><td>KivyLexerEntry</td></tr><tr><td>KivyLexerKey</td></tr><tr><td>PreferencesKey</td></tr><tr><td>lexerAssociations</td></tr> </table> <h3>Class Methods</h3> @@ -75,6 +79,14 @@ <td>Public method to activate this plugin.</td> </tr> <tr> +<td><a href="#ProjectKivyPlugin.createTypingCompleter">createTypingCompleter</a></td> +<td>Public method to create a typing completer object for the given editor.</td> +</tr> +<tr> +<td><a href="#ProjectKivyPlugin.createTypingCompleterConfigWidget">createTypingCompleterConfigWidget</a></td> +<td>Public method to create and populate the typing completer configuration widget.</td> +</tr> +<tr> <td><a href="#ProjectKivyPlugin.deactivate">deactivate</a></td> <td>Public method to deactivate this plugin.</td> </tr> @@ -87,9 +99,17 @@ <td>Public method to instantiate a Pygments Kivy lexer object.</td> </tr> <tr> +<td><a href="#ProjectKivyPlugin.getTypingPreferences">getTypingPreferences</a></td> +<td>Public method to retrieve the typing completer settings.</td> +</tr> +<tr> <td><a href="#ProjectKivyPlugin.lexerAssociationCallback">lexerAssociationCallback</a></td> <td>Public method to get the lexer association of the Kivy project type for a file.</td> </tr> +<tr> +<td><a href="#ProjectKivyPlugin.setTypingPreferences">setTypingPreferences</a></td> +<td>Public method to store the typing completer settings.</td> +</tr> </table> <h3>Static Methods</h3> @@ -144,6 +164,55 @@ bool </dd> </dl> +<a NAME="ProjectKivyPlugin.createTypingCompleter" ID="ProjectKivyPlugin.createTypingCompleter"></a> +<h4>ProjectKivyPlugin.createTypingCompleter</h4> +<b>createTypingCompleter</b>(<i>editor, parent=None</i>) + +<p> + Public method to create a typing completer object for the given editor. +</p> +<dl> + +<dt><i>editor</i> (Editor)</dt> +<dd> +reference to the editor object +</dd> +<dt><i>parent</i> (QObject (optional))</dt> +<dd> +reference to the parent object (defaults to None) +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +reference to the instantiated typing completer object +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +CompleterKivy +</dd> +</dl> +<a NAME="ProjectKivyPlugin.createTypingCompleterConfigWidget" ID="ProjectKivyPlugin.createTypingCompleterConfigWidget"></a> +<h4>ProjectKivyPlugin.createTypingCompleterConfigWidget</h4> +<b>createTypingCompleterConfigWidget</b>(<i></i>) + +<p> + Public method to create and populate the typing completer configuration widget. +</p> +<dl> +<dt>Return:</dt> +<dd> +instantiated and populated configuration widget +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +CompleterKivyConfigWidget +</dd> +</dl> <a NAME="ProjectKivyPlugin.deactivate" ID="ProjectKivyPlugin.deactivate"></a> <h4>ProjectKivyPlugin.deactivate</h4> <b>deactivate</b>(<i></i>) @@ -196,6 +265,32 @@ QsciLexer </dd> </dl> +<a NAME="ProjectKivyPlugin.getTypingPreferences" ID="ProjectKivyPlugin.getTypingPreferences"></a> +<h4>ProjectKivyPlugin.getTypingPreferences</h4> +<b>getTypingPreferences</b>(<i>key</i>) + +<p> + Public method to retrieve the typing completer settings. +</p> +<dl> + +<dt><i>key</i> (str)</dt> +<dd> +the key of the value to get +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +value of the requested setting +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +Any +</dd> +</dl> <a NAME="ProjectKivyPlugin.lexerAssociationCallback" ID="ProjectKivyPlugin.lexerAssociationCallback"></a> <h4>ProjectKivyPlugin.lexerAssociationCallback</h4> <b>lexerAssociationCallback</b>(<i>filename</i>) @@ -224,6 +319,24 @@ str </dd> </dl> +<a NAME="ProjectKivyPlugin.setTypingPreferences" ID="ProjectKivyPlugin.setTypingPreferences"></a> +<h4>ProjectKivyPlugin.setTypingPreferences</h4> +<b>setTypingPreferences</b>(<i>key, value</i>) + +<p> + Public method to store the typing completer settings. +</p> +<dl> + +<dt><i>key</i> (str)</dt> +<dd> +the key of the setting to be set +</dd> +<dt><i>value</i> (Any)</dt> +<dd> +value to be set +</dd> +</dl> <div align="right"><a href="#top">Up</a></div> <hr /> <hr /> @@ -255,4 +368,14 @@ </dl> <div align="right"><a href="#top">Up</a></div> <hr /> +<hr /> +<a NAME="prepareUninstall" ID="prepareUninstall"></a> +<h2>prepareUninstall</h2> +<b>prepareUninstall</b>(<i></i>) + +<p> + Module function to prepare for an uninstallation. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /> </body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ProjectKivy/Documentation/source/Plugin_Project_Kivy.ProjectKivy.CompleterKivy.html Sat Sep 09 17:43:15 2023 +0200 @@ -0,0 +1,155 @@ +<!DOCTYPE html> +<html><head> +<title>Plugin_Project_Kivy.ProjectKivy.CompleterKivy</title> +<meta charset="UTF-8"> +<link rel="stylesheet" href="styles.css"> +</head> +<body> +<a NAME="top" ID="top"></a> +<h1>Plugin_Project_Kivy.ProjectKivy.CompleterKivy</h1> + +<p> +Module implementing the Kivy typing completer. +</p> +<h3>Global Attributes</h3> + +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> + +<table> + +<tr> +<td><a href="#CompleterKivy">CompleterKivy</a></td> +<td>Class implementing the Kivy typing completer.</td> +</tr> +</table> +<h3>Functions</h3> + +<table> +<tr><td>None</td></tr> +</table> +<hr /> +<hr /> +<a NAME="CompleterKivy" ID="CompleterKivy"></a> +<h2>CompleterKivy</h2> + +<p> + Class implementing the Kivy typing completer. +</p> +<h3>Derived from</h3> +CompleterBase +<h3>Class Attributes</h3> + +<table> +<tr><td>None</td></tr> +</table> +<h3>Class Methods</h3> + +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> + +<table> + +<tr> +<td><a href="#CompleterKivy.__init__">CompleterKivy</a></td> +<td>Constructor</td> +</tr> +<tr> +<td><a href="#CompleterKivy.__inComment">__inComment</a></td> +<td>Private method to check, if the cursor is inside a comment.</td> +</tr> +<tr> +<td><a href="#CompleterKivy.charAdded">charAdded</a></td> +<td>Public slot called to handle the user entering a character.</td> +</tr> +<tr> +<td><a href="#CompleterKivy.readSettings">readSettings</a></td> +<td>Public slot called to reread the configuration parameters.</td> +</tr> +</table> +<h3>Static Methods</h3> + +<table> +<tr><td>None</td></tr> +</table> + +<a NAME="CompleterKivy.__init__" ID="CompleterKivy.__init__"></a> +<h4>CompleterKivy (Constructor)</h4> +<b>CompleterKivy</b>(<i>plugin, editor, parent=None</i>) + +<p> + Constructor +</p> +<dl> + +<dt><i>plugin</i> (ProjectKivyPlugin)</dt> +<dd> +reference to the plugin object +</dd> +<dt><i>editor</i> (Editor)</dt> +<dd> +reference to the editor object +</dd> +<dt><i>parent</i> (QObject)</dt> +<dd> +reference to the parent object +</dd> +</dl> +<a NAME="CompleterKivy.__inComment" ID="CompleterKivy.__inComment"></a> +<h4>CompleterKivy.__inComment</h4> +<b>__inComment</b>(<i>line, col</i>) + +<p> + Private method to check, if the cursor is inside a comment. +</p> +<dl> + +<dt><i>line</i> (int)</dt> +<dd> +current line +</dd> +<dt><i>col</i> (int)</dt> +<dd> +current position within line +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +flag indicating, if the cursor is inside a comment +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool +</dd> +</dl> +<a NAME="CompleterKivy.charAdded" ID="CompleterKivy.charAdded"></a> +<h4>CompleterKivy.charAdded</h4> +<b>charAdded</b>(<i>charNumber</i>) + +<p> + Public slot called to handle the user entering a character. +</p> +<dl> + +<dt><i>charNumber</i> (int)</dt> +<dd> +value of the character entered +</dd> +</dl> +<a NAME="CompleterKivy.readSettings" ID="CompleterKivy.readSettings"></a> +<h4>CompleterKivy.readSettings</h4> +<b>readSettings</b>(<i></i>) + +<p> + Public slot called to reread the configuration parameters. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ProjectKivy/Documentation/source/Plugin_Project_Kivy.ProjectKivy.CompleterKivyConfigWidget.html Sat Sep 09 17:43:15 2023 +0200 @@ -0,0 +1,99 @@ +<!DOCTYPE html> +<html><head> +<title>Plugin_Project_Kivy.ProjectKivy.CompleterKivyConfigWidget</title> +<meta charset="UTF-8"> +<link rel="stylesheet" href="styles.css"> +</head> +<body> +<a NAME="top" ID="top"></a> +<h1>Plugin_Project_Kivy.ProjectKivy.CompleterKivyConfigWidget</h1> + +<p> +Module implementing the configuration widget for the Kivy typing completer. +</p> +<h3>Global Attributes</h3> + +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> + +<table> + +<tr> +<td><a href="#CompleterKivyConfigWidget">CompleterKivyConfigWidget</a></td> +<td>Class documentation goes here.</td> +</tr> +</table> +<h3>Functions</h3> + +<table> +<tr><td>None</td></tr> +</table> +<hr /> +<hr /> +<a NAME="CompleterKivyConfigWidget" ID="CompleterKivyConfigWidget"></a> +<h2>CompleterKivyConfigWidget</h2> + +<p> + Class documentation goes here. +</p> +<h3>Derived from</h3> +QWidget, Ui_CompleterKivyConfigWidget +<h3>Class Attributes</h3> + +<table> +<tr><td>None</td></tr> +</table> +<h3>Class Methods</h3> + +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> + +<table> + +<tr> +<td><a href="#CompleterKivyConfigWidget.__init__">CompleterKivyConfigWidget</a></td> +<td>Constructor</td> +</tr> +<tr> +<td><a href="#CompleterKivyConfigWidget.save">save</a></td> +<td>Public method to save the Kivy Typing Completer configuration.</td> +</tr> +</table> +<h3>Static Methods</h3> + +<table> +<tr><td>None</td></tr> +</table> + +<a NAME="CompleterKivyConfigWidget.__init__" ID="CompleterKivyConfigWidget.__init__"></a> +<h4>CompleterKivyConfigWidget (Constructor)</h4> +<b>CompleterKivyConfigWidget</b>(<i>plugin, parent=None</i>) + +<p> + Constructor +</p> +<dl> + +<dt><i>plugin</i> (ProjectKivyPlugin)</dt> +<dd> +reference to the plugin object +</dd> +<dt><i>parent</i> (QWidget (optional))</dt> +<dd> +reference to the parent widget (defaults to None) +</dd> +</dl> +<a NAME="CompleterKivyConfigWidget.save" ID="CompleterKivyConfigWidget.save"></a> +<h4>CompleterKivyConfigWidget.save</h4> +<b>save</b>(<i></i>) + +<p> + Public method to save the Kivy Typing Completer configuration. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- a/ProjectKivy/Documentation/source/index-Plugin_Project_Kivy.ProjectKivy.html Sat Dec 31 16:27:50 2022 +0100 +++ b/ProjectKivy/Documentation/source/index-Plugin_Project_Kivy.ProjectKivy.html Sat Sep 09 17:43:15 2023 +0200 @@ -16,6 +16,14 @@ <table> <tr> +<td><a href="Plugin_Project_Kivy.ProjectKivy.CompleterKivy.html">CompleterKivy</a></td> +<td>Module implementing the Kivy typing completer.</td> +</tr> +<tr> +<td><a href="Plugin_Project_Kivy.ProjectKivy.CompleterKivyConfigWidget.html">CompleterKivyConfigWidget</a></td> +<td>Module implementing the configuration widget for the Kivy typing completer.</td> +</tr> +<tr> <td><a href="Plugin_Project_Kivy.ProjectKivy.KivyLexer.html">KivyLexer</a></td> <td>Module implementing a Pygments lexer for the Kivy language.</td> </tr>
--- a/ProjectKivy/i18n/kivy_de.ts Sat Dec 31 16:27:50 2022 +0100 +++ b/ProjectKivy/i18n/kivy_de.ts Sat Sep 09 17:43:15 2023 +0200 @@ -1,21 +1,104 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> -<TS version="2.0" language="de_DE" sourcelanguage=""> +<TS version="2.1" language="de_DE"> + <context> + <name>CompleterKivyConfigWidget</name> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to enable Kivy typing aids</source> + <translation>Auswählen, um die Kivy Eingabehilfen zu aktivieren</translation> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Enable Kivy typing aids</source> + <translation>Aktiviere Kivy Eingabehilfen</translation> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to insert a closing parenthesis</source> + <translation>Auswählen, um eine schließende Klammer einzufügen</translation> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic parenthesis insertion</source> + <translation>Automatisch Klammern einfügen</translation> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to skip matching braces when typing</source> + <translation>Auswählen, um bei der Eingabe gleiche Klammern zu überspringen</translation> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatically skip matching braces when typing</source> + <translation>Gleiche Klammern bei der Eingabe automatisch überspringen</translation> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to skip a ':', if typed next to another ':'</source> + <translation>Select to skip a ':', if typed next to another ':'</translation> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic colon detection</source> + <translation>Automatische Doppelpunkterkennung</translation> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to indent after typing 'return'</source> + <translation>Auswählen, um nach einem Zeilenvorschub einzurücken</translation> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic indent after '(', '{', '[' and ':'</source> + <translation>Automatische Einrückung nach '(', '{', '[' und ':'</translation> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to insert the matching quote character</source> + <translation>Auswählen, um ein passendes Anführungszeichen einzufügen</translation> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic quote insertion</source> + <translation>Anführungszeichen automatisch einfügen</translation> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to insert a blank after ':'</source> + <translation>Auswählen, um ein Leerzeichen nach ':' einzufügen</translation> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic insertion of ' ' (blank) after ':'</source> + <translation>Nach ':' automatisch ' ' (Leerzeichen) einfügen</translation> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to insert a blank after ','</source> + <translation>Auswählen, um ein Leerzeichen nach ',' einzufügen</translation> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic insertion of ' ' (blank) after ','</source> + <translation>Nach ',' automatisch ' ' (Leerzeichen) einfügen</translation> + </message> + </context> <context> <name>ProjectKivyPlugin</name> <message> - <location filename="../../PluginProjectKivy.py" line="124" /> - <location filename="../../PluginProjectKivy.py" line="104" /> + <location filename="../../PluginProjectKivy.py" line="154" /> + <location filename="../../PluginProjectKivy.py" line="123" /> <source>Kivy</source> <translation>Kivy</translation> </message> <message> - <location filename="../../PluginProjectKivy.py" line="127" /> + <location filename="../../PluginProjectKivy.py" line="157" /> <source>Kivy Files (*.kv *.kivy)</source> <translation>Kivy Dateien (*.kv *.kivy)</translation> </message> <message> - <location filename="../../PluginProjectKivy.py" line="128" /> + <location filename="../../PluginProjectKivy.py" line="158" /> <source>Kivy Files (*.kv)</source> <translation>Kivy Dateien (*.kv)</translation> </message>
--- a/ProjectKivy/i18n/kivy_en.ts Sat Dec 31 16:27:50 2022 +0100 +++ b/ProjectKivy/i18n/kivy_en.ts Sat Sep 09 17:43:15 2023 +0200 @@ -2,20 +2,103 @@ <!DOCTYPE TS> <TS version="2.0"> <context> + <name>CompleterKivyConfigWidget</name> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to enable Kivy typing aids</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Enable Kivy typing aids</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to insert a closing parenthesis</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic parenthesis insertion</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to skip matching braces when typing</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatically skip matching braces when typing</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to skip a ':', if typed next to another ':'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic colon detection</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to indent after typing 'return'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic indent after '(', '{', '[' and ':'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to insert the matching quote character</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic quote insertion</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to insert a blank after ':'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic insertion of ' ' (blank) after ':'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to insert a blank after ','</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic insertion of ' ' (blank) after ','</source> + <translation type="unfinished" /> + </message> + </context> + <context> <name>ProjectKivyPlugin</name> <message> - <location filename="../../PluginProjectKivy.py" line="124" /> - <location filename="../../PluginProjectKivy.py" line="104" /> + <location filename="../../PluginProjectKivy.py" line="154" /> + <location filename="../../PluginProjectKivy.py" line="123" /> <source>Kivy</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginProjectKivy.py" line="127" /> + <location filename="../../PluginProjectKivy.py" line="157" /> <source>Kivy Files (*.kv *.kivy)</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginProjectKivy.py" line="128" /> + <location filename="../../PluginProjectKivy.py" line="158" /> <source>Kivy Files (*.kv)</source> <translation type="unfinished" /> </message>
--- a/ProjectKivy/i18n/kivy_es.ts Sat Dec 31 16:27:50 2022 +0100 +++ b/ProjectKivy/i18n/kivy_es.ts Sat Sep 09 17:43:15 2023 +0200 @@ -2,20 +2,103 @@ <!DOCTYPE TS> <TS version="2.0" language="es_ES" sourcelanguage=""> <context> + <name>CompleterKivyConfigWidget</name> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to enable Kivy typing aids</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Enable Kivy typing aids</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to insert a closing parenthesis</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic parenthesis insertion</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to skip matching braces when typing</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatically skip matching braces when typing</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to skip a ':', if typed next to another ':'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic colon detection</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to indent after typing 'return'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic indent after '(', '{', '[' and ':'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to insert the matching quote character</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic quote insertion</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to insert a blank after ':'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic insertion of ' ' (blank) after ':'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to insert a blank after ','</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic insertion of ' ' (blank) after ','</source> + <translation type="unfinished" /> + </message> + </context> + <context> <name>ProjectKivyPlugin</name> <message> - <location filename="../../PluginProjectKivy.py" line="124" /> - <location filename="../../PluginProjectKivy.py" line="104" /> + <location filename="../../PluginProjectKivy.py" line="154" /> + <location filename="../../PluginProjectKivy.py" line="123" /> <source>Kivy</source> <translation>Kivy</translation> </message> <message> - <location filename="../../PluginProjectKivy.py" line="127" /> + <location filename="../../PluginProjectKivy.py" line="157" /> <source>Kivy Files (*.kv *.kivy)</source> <translation>Archivos Kivy (*.kv *.kivy)</translation> </message> <message> - <location filename="../../PluginProjectKivy.py" line="128" /> + <location filename="../../PluginProjectKivy.py" line="158" /> <source>Kivy Files (*.kv)</source> <translation>Archivos Kivy (*.kv)</translation> </message>
--- a/ProjectKivy/i18n/kivy_ru.ts Sat Dec 31 16:27:50 2022 +0100 +++ b/ProjectKivy/i18n/kivy_ru.ts Sat Sep 09 17:43:15 2023 +0200 @@ -2,20 +2,103 @@ <!DOCTYPE TS> <TS version="2.1" language="ru_RU"> <context> + <name>CompleterKivyConfigWidget</name> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to enable Kivy typing aids</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Enable Kivy typing aids</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to insert a closing parenthesis</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic parenthesis insertion</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to skip matching braces when typing</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatically skip matching braces when typing</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to skip a ':', if typed next to another ':'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic colon detection</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to indent after typing 'return'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic indent after '(', '{', '[' and ':'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to insert the matching quote character</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic quote insertion</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to insert a blank after ':'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic insertion of ' ' (blank) after ':'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Select to insert a blank after ','</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../CompleterKivyConfigWidget.ui" line="0" /> + <source>Automatic insertion of ' ' (blank) after ','</source> + <translation type="unfinished" /> + </message> + </context> + <context> <name>ProjectKivyPlugin</name> <message> - <location filename="../../PluginProjectKivy.py" line="124" /> - <location filename="../../PluginProjectKivy.py" line="104" /> + <location filename="../../PluginProjectKivy.py" line="154" /> + <location filename="../../PluginProjectKivy.py" line="123" /> <source>Kivy</source> <translation>Kivy</translation> </message> <message> - <location filename="../../PluginProjectKivy.py" line="127" /> + <location filename="../../PluginProjectKivy.py" line="157" /> <source>Kivy Files (*.kv *.kivy)</source> <translation>Файлы Kivy (*.kv *.kivy)</translation> </message> <message> - <location filename="../../PluginProjectKivy.py" line="128" /> + <location filename="../../PluginProjectKivy.py" line="158" /> <source>Kivy Files (*.kv)</source> <translation>Файлы Kivy (*.kv)</translation> </message>