Tue, 01 Nov 2022 16:46:35 +0100
Code Style Checker
- added a few imports style options and added a sorting function iaw. the 'isort' utility
--- a/docs/changelog.md Mon Oct 31 17:54:41 2022 +0100 +++ b/docs/changelog.md Tue Nov 01 16:46:35 2022 +0100 @@ -5,6 +5,9 @@ - Code Formatting - added an interface to resort the import statements of Python source files with the 'isort' utility +- Code Style Checker + - added a few imports style options and added a sorting function iaw. the 'isort' + utility - Previewers - added a button to copy the contents of the HTML previewer to the clipboard
--- a/src/eric7/APIs/Python3/eric7.api Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/APIs/Python3/eric7.api Tue Nov 01 16:46:35 2022 +0100 @@ -3536,6 +3536,7 @@ eric7.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.CodeStyleCheckerDialog.cryptoBitSelectionsEc?7 eric7.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.CodeStyleCheckerDialog.filenameRole?7 eric7.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.CodeStyleCheckerDialog.fixableRole?7 +eric7.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.CodeStyleCheckerDialog.getDefaults?4() eric7.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.CodeStyleCheckerDialog.hasResults?7 eric7.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.CodeStyleCheckerDialog.ignoredRole?7 eric7.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.CodeStyleCheckerDialog.lineRole?7 @@ -3643,7 +3644,10 @@ eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportNode.ImportNode?1(appNames, astNode, checker) eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.ImportsChecker.Codes?7 eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.ImportsChecker.getStandardModules?4() +eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.ImportsChecker.keyCallback?4() +eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.ImportsChecker.moduleKey?4(moduleName) eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.ImportsChecker.run?4() +eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.ImportsChecker.sorted?4(toSort, key=None, reverse=False) eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.ImportsChecker?1(source, filename, tree, select, ignore, expected, repeat, args) eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsEnums.GroupEnum.APPLICATION?7 eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsEnums.GroupEnum.FUTURE?7
--- a/src/eric7/Documentation/Help/source.qhp Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/Documentation/Help/source.qhp Tue Nov 01 16:46:35 2022 +0100 @@ -2848,6 +2848,7 @@ <keyword name="CodeStyleCheckerDialog.__updateStatistics" id="CodeStyleCheckerDialog.__updateStatistics" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.__updateStatistics" /> <keyword name="CodeStyleCheckerDialog.check" id="CodeStyleCheckerDialog.check" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.check" /> <keyword name="CodeStyleCheckerDialog.checkBatch" id="CodeStyleCheckerDialog.checkBatch" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.checkBatch" /> + <keyword name="CodeStyleCheckerDialog.getDefaults" id="CodeStyleCheckerDialog.getDefaults" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.getDefaults" /> <keyword name="CodeStyleCheckerDialog.on_addBuiltinButton_clicked" id="CodeStyleCheckerDialog.on_addBuiltinButton_clicked" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.on_addBuiltinButton_clicked" /> <keyword name="CodeStyleCheckerDialog.on_addWhitelistButton_clicked" id="CodeStyleCheckerDialog.on_addWhitelistButton_clicked" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.on_addWhitelistButton_clicked" /> <keyword name="CodeStyleCheckerDialog.on_builtinsAssignmentList_itemSelectionChanged" id="CodeStyleCheckerDialog.on_builtinsAssignmentList_itemSelectionChanged" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html#CodeStyleCheckerDialog.on_builtinsAssignmentList_itemSelectionChanged" /> @@ -9248,6 +9249,7 @@ <keyword name="ImportsChecker" id="ImportsChecker" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html#ImportsChecker" /> <keyword name="ImportsChecker (Constructor)" id="ImportsChecker (Constructor)" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html#ImportsChecker.__init__" /> <keyword name="ImportsChecker (Module)" id="ImportsChecker (Module)" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html" /> + <keyword name="ImportsChecker.__atoi" id="ImportsChecker.__atoi" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html#ImportsChecker.__atoi" /> <keyword name="ImportsChecker.__checkBannedImport" id="ImportsChecker.__checkBannedImport" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html#ImportsChecker.__checkBannedImport" /> <keyword name="ImportsChecker.__checkBannedRelativeImports" id="ImportsChecker.__checkBannedRelativeImports" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html#ImportsChecker.__checkBannedRelativeImports" /> <keyword name="ImportsChecker.__checkImportOrder" id="ImportsChecker.__checkImportOrder" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html#ImportsChecker.__checkImportOrder" /> @@ -9259,9 +9261,14 @@ <keyword name="ImportsChecker.__findNodes" id="ImportsChecker.__findNodes" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html#ImportsChecker.__findNodes" /> <keyword name="ImportsChecker.__ignoreCode" id="ImportsChecker.__ignoreCode" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html#ImportsChecker.__ignoreCode" /> <keyword name="ImportsChecker.__isModuleBanned" id="ImportsChecker.__isModuleBanned" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html#ImportsChecker.__isModuleBanned" /> + <keyword name="ImportsChecker.__naturalKeys" id="ImportsChecker.__naturalKeys" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html#ImportsChecker.__naturalKeys" /> + <keyword name="ImportsChecker.__naturally" id="ImportsChecker.__naturally" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html#ImportsChecker.__naturally" /> <keyword name="ImportsChecker.__tidyImports" id="ImportsChecker.__tidyImports" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html#ImportsChecker.__tidyImports" /> <keyword name="ImportsChecker.getStandardModules" id="ImportsChecker.getStandardModules" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html#ImportsChecker.getStandardModules" /> + <keyword name="ImportsChecker.keyCallback" id="ImportsChecker.keyCallback" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html#ImportsChecker.keyCallback" /> + <keyword name="ImportsChecker.moduleKey" id="ImportsChecker.moduleKey" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html#ImportsChecker.moduleKey" /> <keyword name="ImportsChecker.run" id="ImportsChecker.run" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html#ImportsChecker.run" /> + <keyword name="ImportsChecker.sorted" id="ImportsChecker.sorted" ref="eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html#ImportsChecker.sorted" /> <keyword name="ImportsDiagramBuilder" id="ImportsDiagramBuilder" ref="eric7.Graphics.ImportsDiagramBuilder.html#ImportsDiagramBuilder" /> <keyword name="ImportsDiagramBuilder (Constructor)" id="ImportsDiagramBuilder (Constructor)" ref="eric7.Graphics.ImportsDiagramBuilder.html#ImportsDiagramBuilder.__init__" /> <keyword name="ImportsDiagramBuilder (Module)" id="ImportsDiagramBuilder (Module)" ref="eric7.Graphics.ImportsDiagramBuilder.html" />
--- a/src/eric7/Documentation/Source/eric7.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/Documentation/Source/eric7.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog.html Tue Nov 01 16:46:35 2022 +0100 @@ -199,6 +199,10 @@ <td>Public method to start a style check batch job.</td> </tr> <tr> +<td><a href="#CodeStyleCheckerDialog.getDefaults">getDefaults</a></td> +<td>Public method to get a dictionary containing the default values.</td> +</tr> +<tr> <td><a href="#CodeStyleCheckerDialog.on_addBuiltinButton_clicked">on_addBuiltinButton_clicked</a></td> <td>Private slot to add a built-in assignment to be ignored.</td> </tr> @@ -942,6 +946,25 @@ <p> The results are reported to the __processResult slot. </p> +<a NAME="CodeStyleCheckerDialog.getDefaults" ID="CodeStyleCheckerDialog.getDefaults"></a> +<h4>CodeStyleCheckerDialog.getDefaults</h4> +<b>getDefaults</b>(<i></i>) + +<p> + Public method to get a dictionary containing the default values. +</p> +<dl> +<dt>Return:</dt> +<dd> +dictionary containing the default values +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +dict +</dd> +</dl> <a NAME="CodeStyleCheckerDialog.on_addBuiltinButton_clicked" ID="CodeStyleCheckerDialog.on_addBuiltinButton_clicked"></a> <h4>CodeStyleCheckerDialog.on_addBuiltinButton_clicked</h4> <b>on_addBuiltinButton_clicked</b>(<i></i>)
--- a/src/eric7/Documentation/Source/eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/Documentation/Source/eric7.Plugins.CheckerPlugins.CodeStyleChecker.Imports.ImportsChecker.html Tue Nov 01 16:46:35 2022 +0100 @@ -59,6 +59,10 @@ <td>Constructor</td> </tr> <tr> +<td><a href="#ImportsChecker.__atoi">__atoi</a></td> +<td>Private method to convert the given text to an integer number.</td> +</tr> +<tr> <td><a href="#ImportsChecker.__checkBannedImport">__checkBannedImport</a></td> <td>Private method to check import of banned modules.</td> </tr> @@ -103,6 +107,14 @@ <td>Private method to check, if the given module name banned.</td> </tr> <tr> +<td><a href="#ImportsChecker.__naturalKeys">__naturalKeys</a></td> +<td>Private method to generate keys for natural sorting.</td> +</tr> +<tr> +<td><a href="#ImportsChecker.__naturally">__naturally</a></td> +<td>Private method to sort the given list of names naturally.</td> +</tr> +<tr> <td><a href="#ImportsChecker.__tidyImports">__tidyImports</a></td> <td>Private method to check various other import related topics.</td> </tr> @@ -111,9 +123,21 @@ <td>Public method to get a list of modules of the standard library.</td> </tr> <tr> +<td><a href="#ImportsChecker.keyCallback">keyCallback</a></td> +<td></td> +</tr> +<tr> +<td><a href="#ImportsChecker.moduleKey">moduleKey</a></td> +<td>Public method to generate a key for the given module name.</td> +</tr> +<tr> <td><a href="#ImportsChecker.run">run</a></td> <td>Public method to check the given source against miscellaneous conditions.</td> </tr> +<tr> +<td><a href="#ImportsChecker.sorted">sorted</a></td> +<td>Public method to sort the given list of names.</td> +</tr> </table> <h3>Static Methods</h3> @@ -163,6 +187,32 @@ dictionary of arguments for the various checks </dd> </dl> +<a NAME="ImportsChecker.__atoi" ID="ImportsChecker.__atoi"></a> +<h4>ImportsChecker.__atoi</h4> +<b>__atoi</b>(<i>text</i>) + +<p> + Private method to convert the given text to an integer number. +</p> +<dl> + +<dt><i>text</i> (str)</dt> +<dd> +text to be converted +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +integer number +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +int +</dd> +</dl> <a NAME="ImportsChecker.__checkBannedImport" ID="ImportsChecker.__checkBannedImport"></a> <h4>ImportsChecker.__checkBannedImport</h4> <b>__checkBannedImport</b>(<i>node</i>) @@ -377,6 +427,71 @@ bool </dd> </dl> +<a NAME="ImportsChecker.__naturalKeys" ID="ImportsChecker.__naturalKeys"></a> +<h4>ImportsChecker.__naturalKeys</h4> +<b>__naturalKeys</b>(<i>text</i>) + +<p> + Private method to generate keys for natural sorting. +</p> +<dl> + +<dt><i>text</i> (str)</dt> +<dd> +text to generate a key for +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +key for natural sorting +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +list of str or int +</dd> +</dl> +<a NAME="ImportsChecker.__naturally" ID="ImportsChecker.__naturally"></a> +<h4>ImportsChecker.__naturally</h4> +<b>__naturally</b>(<i>toSort, key=None, reverse=False</i>) + +<p> + Private method to sort the given list of names naturally. +</p> +<p> + Note: Natural sorting maintains the sort order of numbers (i.e. + [Q1, Q10, Q2] is sorted as [Q1, Q2, Q10] while the Python + standard sort would yield [Q1, Q10, Q2]. +</p> +<dl> + +<dt><i>toSort</i> (list of str)</dt> +<dd> +list of names to be sorted +</dd> +<dt><i>key</i> (function (optional))</dt> +<dd> +function to generate keys (defaults to None) +</dd> +<dt><i>reverse</i> (bool (optional))</dt> +<dd> +flag indicating a reverse sort (defaults to False) +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +sorted list of names +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +list of str +</dd> +</dl> <a NAME="ImportsChecker.__tidyImports" ID="ImportsChecker.__tidyImports"></a> <h4>ImportsChecker.__tidyImports</h4> <b>__tidyImports</b>(<i></i>) @@ -403,6 +518,36 @@ set of str </dd> </dl> +<a NAME="ImportsChecker.keyCallback" ID="ImportsChecker.keyCallback"></a> +<h4>ImportsChecker.keyCallback</h4> +<b>keyCallback</b>(<i></i>) + +<a NAME="ImportsChecker.moduleKey" ID="ImportsChecker.moduleKey"></a> +<h4>ImportsChecker.moduleKey</h4> +<b>moduleKey</b>(<i>moduleName</i>) + +<p> + Public method to generate a key for the given module name. +</p> +<dl> + +<dt><i>moduleName</i> (str)</dt> +<dd> +module name +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +generated key +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str +</dd> +</dl> <a NAME="ImportsChecker.run" ID="ImportsChecker.run"></a> <h4>ImportsChecker.run</h4> <b>run</b>(<i></i>) @@ -411,6 +556,40 @@ Public method to check the given source against miscellaneous conditions. </p> +<a NAME="ImportsChecker.sorted" ID="ImportsChecker.sorted"></a> +<h4>ImportsChecker.sorted</h4> +<b>sorted</b>(<i>toSort, key=None, reverse=False</i>) + +<p> + Public method to sort the given list of names. +</p> +<dl> + +<dt><i>toSort</i> (list of str)</dt> +<dd> +list of names to be sorted +</dd> +<dt><i>key</i> (function (optional))</dt> +<dd> +function to generate keys (defaults to None) +</dd> +<dt><i>reverse</i> (bool (optional))</dt> +<dd> +flag indicating a reverse sort (defaults to False) +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +sorted list of names +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +list of str +</dd> +</dl> <div align="right"><a href="#top">Up</a></div> <hr /> </body></html> \ No newline at end of file
--- a/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py Tue Nov 01 16:46:35 2022 +0100 @@ -39,6 +39,7 @@ from .Miscellaneous.MiscellaneousDefaults import MiscellaneousCheckerDefaultArgs from .Annotations.AnnotationsCheckerDefaults import AnnotationsCheckerDefaultArgs +from .Security.SecurityDefaults import SecurityDefaults class CodeStyleCheckerDialog(QDialog, Ui_CodeStyleCheckerDialog): @@ -151,6 +152,9 @@ self.ecHighRiskCombo.addItems(CodeStyleCheckerDialog.cryptoBitSelectionsEc) self.ecMediumRiskCombo.addItems(CodeStyleCheckerDialog.cryptoBitSelectionsEc) + self.sortOrderComboBox.addItem("Natural", "natural") + self.sortOrderComboBox.addItem("Native Python", "native") + self.statisticsButton.setEnabled(False) self.showButton.setEnabled(False) self.cancelButton.setEnabled(True) @@ -417,142 +421,56 @@ else: self.allowAllButton.setChecked(True) - def prepare(self, fileList, project): + def getDefaults(self): """ - Public method to prepare the dialog with a list of filenames. - - @param fileList list of filenames - @type list of str - @param project reference to the project object - @type Project - """ - self.__fileOrFileList = fileList[:] - self.__project = project - self.__forProject = True - - self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(True) - self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(True) - self.cancelButton.setEnabled(False) + Public method to get a dictionary containing the default values. - self.__data = self.__project.getData("CHECKERSPARMS", "Pep8Checker") - if self.__data is None or len(self.__data) < 6: - # initialize the data structure - self.__data = { - "ExcludeFiles": "", - "ExcludeMessages": pycodestyle.DEFAULT_IGNORE, - "IncludeMessages": "", - "RepeatMessages": False, - "FixCodes": "", - "FixIssues": False, - } - if "EnabledCheckerCategories" not in self.__data: - self.__data["EnabledCheckerCategories"] = ",".join( + @return dictionary containing the default values + @rtype dict + """ + defaults = { + # General + "ExcludeFiles": "", + "ExcludeMessages": pycodestyle.DEFAULT_IGNORE, + "IncludeMessages": "", + "RepeatMessages": False, + "FixCodes": "", + "FixIssues": False, + "EnabledCheckerCategories": ",".join( CodeStyleCheckerDialog.checkCategories.keys() - ) - if "MaxLineLength" not in self.__data: - self.__data["MaxLineLength"] = 88 + ), + "MaxLineLength": 88, # better code formatting than pycodestyle.MAX_LINE_LENGTH # see the Black tool - if "MaxDocLineLength" not in self.__data: - self.__data["MaxDocLineLength"] = 88 - if "BlankLines" not in self.__data: - self.__data["BlankLines"] = (2, 1) - # top level, method - if "HangClosing" not in self.__data: - self.__data["HangClosing"] = False - if "NoFixCodes" not in self.__data: - self.__data["NoFixCodes"] = "E501" - if "DocstringType" not in self.__data: - self.__data["DocstringType"] = "pep257" - if "ShowIgnored" not in self.__data: - self.__data["ShowIgnored"] = False - if "MaxCodeComplexity" not in self.__data: - self.__data["MaxCodeComplexity"] = 10 - if "LineComplexity" not in self.__data: - self.__data["LineComplexity"] = 15 - if "LineComplexityScore" not in self.__data: - self.__data["LineComplexityScore"] = 10 - if "ValidEncodings" not in self.__data: - self.__data["ValidEncodings"] = MiscellaneousCheckerDefaultArgs[ - "CodingChecker" - ] - if ( - "CopyrightMinFileSize" not in self.__data - or "CopyrightAuthor" not in self.__data - ): - self.__data["CopyrightMinFileSize"] = MiscellaneousCheckerDefaultArgs[ - "CopyrightChecker" - ]["MinFilesize"] - self.__data["CopyrightAuthor"] = MiscellaneousCheckerDefaultArgs[ - "CopyrightChecker" - ]["Author"] - if "FutureChecker" not in self.__data: - self.__data["FutureChecker"] = "" - if "BuiltinsChecker" not in self.__data: - self.__data["BuiltinsChecker"] = copy.deepcopy( + "MaxDocLineLength": 88, + "BlankLines": (2, 1), # top level, method + "HangClosing": False, + "NoFixCodes": "E501", + "DocstringType": "pep257", + "ShowIgnored": False, + # Complexity + "MaxCodeComplexity": 10, + "LineComplexity": 15, + "LineComplexityScore": 10, + # Miscellaneous + "ValidEncodings": MiscellaneousCheckerDefaultArgs["CodingChecker"], + "CopyrightMinFileSize": MiscellaneousCheckerDefaultArgs["CopyrightChecker"][ + "MinFilesize" + ], + "CopyrightAuthor": MiscellaneousCheckerDefaultArgs["CopyrightChecker"][ + "Author" + ], + "FutureChecker": "", + "BuiltinsChecker": copy.deepcopy( MiscellaneousCheckerDefaultArgs["BuiltinsChecker"] - ) - - if "CommentedCodeChecker" not in self.__data: - self.__data["CommentedCodeChecker"] = copy.deepcopy( + ), + "CommentedCodeChecker": copy.deepcopy( MiscellaneousCheckerDefaultArgs["CommentedCodeChecker"] - ) - if "WhiteList" not in self.__data["CommentedCodeChecker"]: - self.__data["CommentedCodeChecker"][ - "WhiteList" - ] = MiscellaneousCheckerDefaultArgs["CommentedCodeChecker"]["WhiteList"][:] - - if "AnnotationsChecker" not in self.__data: - self.__data["AnnotationsChecker"] = copy.deepcopy( - AnnotationsCheckerDefaultArgs - ) - else: - # We are upgrading from an older data structure - if "MaximumLength" not in self.__data["AnnotationsChecker"]: - # MaximumLength is the sentinel for the first extension - self.__data["AnnotationsChecker"].update( - { - "MaximumLength": AnnotationsCheckerDefaultArgs["MaximumLength"], - "SuppressNoneReturning": AnnotationsCheckerDefaultArgs[ - "SuppressNoneReturning" - ], - "SuppressDummyArgs": AnnotationsCheckerDefaultArgs[ - "SuppressDummyArgs" - ], - "AllowUntypedDefs": AnnotationsCheckerDefaultArgs[ - "AllowUntypedDefs" - ], - "AllowUntypedNested": AnnotationsCheckerDefaultArgs[ - "AllowUntypedNested" - ], - "MypyInitReturn": AnnotationsCheckerDefaultArgs[ - "MypyInitReturn" - ], - "DispatchDecorators": AnnotationsCheckerDefaultArgs[ - "DispatchDecorators" - ], - "OverloadDecorators": AnnotationsCheckerDefaultArgs[ - "OverloadDecorators" - ], - } - ) - if "AllowStarArgAny" not in self.__data["AnnotationsChecker"]: - # AllowStarArgAny is the sentinel for the second extension - self.__data["AnnotationsChecker"].update( - { - "AllowStarArgAny": AnnotationsCheckerDefaultArgs[ - "AllowStarArgAny" - ], - "ForceFutureAnnotations": AnnotationsCheckerDefaultArgs[ - "ForceFutureAnnotations" - ], - } - ) - - if "SecurityChecker" not in self.__data: - from .Security.SecurityDefaults import SecurityDefaults - - self.__data["SecurityChecker"] = { + ), + # Annotations + "AnnotationsChecker": copy.deepcopy(AnnotationsCheckerDefaultArgs), + # Security + "SecurityChecker": { "HardcodedTmpDirectories": SecurityDefaults[ "hardcoded_tmp_directories" ], @@ -571,14 +489,105 @@ "WeakKeySizeEcHigh": str(SecurityDefaults["weak_key_size_ec_high"]), "WeakKeySizeEcMedium": str(SecurityDefaults["weak_key_size_ec_medium"]), "CheckTypedException": SecurityDefaults["check_typed_exception"], - } - - if "ImportsChecker" not in self.__data: - self.__data["ImportsChecker"] = { + }, + # Imports + "ImportsChecker": { "ApplicationPackageNames": [], "BannedModules": [], "BanRelativeImports": "", - } + "SortOrder": "natural", + "SortCaseSensitive": False, + }, + } + + return defaults + + def prepare(self, fileList, project): + """ + Public method to prepare the dialog with a list of filenames. + + @param fileList list of filenames + @type list of str + @param project reference to the project object + @type Project + """ + self.__fileOrFileList = fileList[:] + self.__project = project + self.__forProject = True + + self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(True) + self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(True) + self.cancelButton.setEnabled(False) + + defaultParameters = self.getDefaults() + self.__data = self.__project.getData("CHECKERSPARMS", "Pep8Checker") + if self.__data is None or len(self.__data) < 6: + # initialize the data structure + self.__data = defaultParameters + else: + for key in defaultParameters: + if key not in self.__data: + self.__data[key] = defaultParameters[key] + + if "WhiteList" not in self.__data["CommentedCodeChecker"]: + self.__data["CommentedCodeChecker"]["WhiteList"] = defaultParameters[ + "CommentedCodeChecker" + ]["WhiteList"][:] + + # Upgrading AnnotationsChecker from older data structures + if "MaximumLength" not in self.__data["AnnotationsChecker"]: + # MaximumLength is the sentinel for the first extension + self.__data["AnnotationsChecker"].update( + { + "MaximumLength": defaultParameters["AnnotationsChecker"][ + "MaximumLength" + ], + "SuppressNoneReturning": defaultParameters[ + "AnnotationsChecker" + ]["SuppressNoneReturning"], + "SuppressDummyArgs": defaultParameters["AnnotationsChecker"][ + "SuppressDummyArgs" + ], + "AllowUntypedDefs": defaultParameters["AnnotationsChecker"][ + "AllowUntypedDefs" + ], + "AllowUntypedNested": defaultParameters["AnnotationsChecker"][ + "AllowUntypedNested" + ], + "MypyInitReturn": defaultParameters["AnnotationsChecker"][ + "MypyInitReturn" + ], + "DispatchDecorators": defaultParameters["AnnotationsChecker"][ + "DispatchDecorators" + ], + "OverloadDecorators": defaultParameters["AnnotationsChecker"][ + "OverloadDecorators" + ], + } + ) + if "AllowStarArgAny" not in self.__data["AnnotationsChecker"]: + # AllowStarArgAny is the sentinel for the second extension + self.__data["AnnotationsChecker"].update( + { + "AllowStarArgAny": defaultParameters["AnnotationsChecker"][ + "AllowStarArgAny" + ], + "ForceFutureAnnotations": defaultParameters[ + "AnnotationsChecker" + ]["ForceFutureAnnotations"], + } + ) + + # Upgrading ImportsChecker from older data structures + if "SortOrder" not in self.__data["ImportsChecker"]: + self.__data["ImportsChecker"].update( + { + "SortOrder": defaultParameters["ImportsChecker"]["SortOrder"], + "SortCaseSensitive": defaultParameters["ImportsChecker"][ + "SortCaseSensitive" + ], + } + ) self.__initCategoriesList(self.__data["EnabledCheckerCategories"]) self.excludeFilesEdit.setText(self.__data["ExcludeFiles"]) @@ -682,6 +691,23 @@ self.__data["SecurityChecker"]["CheckTypedException"] ) + # ImportsChecker + self.appPackagesEdit.setPlainText( + " ".join(sorted(self.__data["ImportsChecker"]["ApplicationPackageNames"])) + ) + self.bannedModulesEdit.setPlainText( + " ".join(sorted(self.__data["ImportsChecker"]["BannedModules"])) + ) + self.__setBanRelativeImports( + self.__data["ImportsChecker"]["BanRelativeImports"] + ) + self.sortOrderComboBox.setCurrentIndex( + self.sortOrderComboBox.findData(self.__data["ImportsChecker"]["SortOrder"]) + ) + self.sortCaseSensitiveCheckBox.setChecked( + self.__data["ImportsChecker"]["SortCaseSensitive"] + ) + self.__cleanupData() def __prepareProgress(self): @@ -858,6 +884,8 @@ ), "BannedModules": sorted(self.bannedModulesEdit.toPlainText().split()), "BanRelativeImports": self.__getBanRelativeImportsValue(), + "SortOrder": self.sortOrderComboBox.currentData(), + "SortCaseSensitive": self.sortCaseSensitiveCheckBox.isChecked(), } self.__options = [ @@ -1297,6 +1325,8 @@ self.bannedModulesEdit.toPlainText().split() ), "BanRelativeImports": self.__getBanRelativeImportsValue(), + "SortOrder": self.sortOrderComboBox.currentData(), + "SortCaseSensitive": self.sortCaseSensitiveCheckBox.isChecked(), }, } if json.dumps(data, sort_keys=True) != json.dumps( @@ -1473,118 +1503,143 @@ """ Private slot to load the default configuration values. """ + defaultParameters = self.getDefaults() + settings = Preferences.getSettings() + self.__initCategoriesList( - Preferences.getSettings().value( + settings.value( "PEP8/EnabledCheckerCategories", - ",".join(CodeStyleCheckerDialog.checkCategories.keys()), + defaultParameters["EnabledCheckerCategories"], ) ) self.excludeFilesEdit.setText( - Preferences.getSettings().value("PEP8/ExcludeFilePatterns", "") + settings.value( + "PEP8/ExcludeFilePatterns", defaultParameters["ExcludeFiles"] + ) ) self.excludeMessagesEdit.setText( - Preferences.getSettings().value( - "PEP8/ExcludeMessages", pycodestyle.DEFAULT_IGNORE - ) + settings.value("PEP8/ExcludeMessages", defaultParameters["ExcludeMessages"]) ) self.includeMessagesEdit.setText( - Preferences.getSettings().value("PEP8/IncludeMessages", "") + settings.value("PEP8/IncludeMessages", defaultParameters["IncludeMessages"]) ) self.repeatCheckBox.setChecked( Preferences.toBool( - Preferences.getSettings().value("PEP8/RepeatMessages", False) + settings.value( + "PEP8/RepeatMessages", defaultParameters["RepeatMessages"] + ) ) ) - self.fixIssuesEdit.setText(Preferences.getSettings().value("PEP8/FixCodes", "")) + self.fixIssuesEdit.setText( + settings.value("PEP8/FixCodes", defaultParameters["FixCodes"]) + ) self.noFixIssuesEdit.setText( - Preferences.getSettings().value("PEP8/NoFixCodes", "E501") + settings.value("PEP8/NoFixCodes", defaultParameters["NoFixCodes"]) ) self.fixIssuesCheckBox.setChecked( - Preferences.toBool(Preferences.getSettings().value("PEP8/FixIssues", False)) + Preferences.toBool( + settings.value("PEP8/FixIssues", defaultParameters["FixIssues"]) + ) ) self.ignoredCheckBox.setChecked( Preferences.toBool( - Preferences.getSettings().value("PEP8/ShowIgnored", False) + settings.value("PEP8/ShowIgnored", defaultParameters["ShowIgnored"]) ) ) self.lineLengthSpinBox.setValue( - int(Preferences.getSettings().value("PEP8/MaxLineLength", 88)) + int( + settings.value("PEP8/MaxLineLength", defaultParameters["MaxLineLength"]) + ) ) self.docLineLengthSpinBox.setValue( - int(Preferences.getSettings().value("PEP8/MaxDocLineLength", 88)) + int( + settings.value( + "PEP8/MaxDocLineLength", defaultParameters["MaxDocLineLength"] + ) + ) ) self.blankBeforeTopLevelSpinBox.setValue( - int(Preferences.getSettings().value("PEP8/BlankLinesBeforeTopLevel", 2)) + int( + settings.value( + "PEP8/BlankLinesBeforeTopLevel", defaultParameters["BlankLines"][0] + ) + ) ) self.blankBeforeMethodSpinBox.setValue( - int(Preferences.getSettings().value("PEP8/BlankLinesBeforeMethod", 1)) + int( + settings.value( + "PEP8/BlankLinesBeforeMethod", defaultParameters["BlankLines"][1] + ) + ) ) self.hangClosingCheckBox.setChecked( Preferences.toBool( - Preferences.getSettings().value("PEP8/HangClosing", False) + settings.value("PEP8/HangClosing", defaultParameters["HangClosing"]) ) ) self.docTypeComboBox.setCurrentIndex( self.docTypeComboBox.findData( - Preferences.getSettings().value("PEP8/DocstringType", "pep257") + settings.value("PEP8/DocstringType", defaultParameters["DocstringType"]) ) ) self.complexitySpinBox.setValue( - int(Preferences.getSettings().value("PEP8/MaxCodeComplexity", 10)) + int( + settings.value( + "PEP8/MaxCodeComplexity", defaultParameters["MaxCodeComplexity"] + ) + ) ) self.lineComplexitySpinBox.setValue( - int(Preferences.getSettings().value("PEP8/LineComplexity", 15)) + int( + settings.value( + "PEP8/LineComplexity", defaultParameters["LineComplexity"] + ) + ) ) self.lineComplexityScoreSpinBox.setValue( - int(Preferences.getSettings().value("PEP8/LineComplexityScore", 10)) + int( + settings.value( + "PEP8/LineComplexityScore", defaultParameters["LineComplexityScore"] + ) + ) ) self.encodingsEdit.setText( - Preferences.getSettings().value( - "PEP8/ValidEncodings", MiscellaneousCheckerDefaultArgs["CodingChecker"] - ) + settings.value("PEP8/ValidEncodings", defaultParameters["ValidEncodings"]) ) self.copyrightFileSizeSpinBox.setValue( int( - Preferences.getSettings().value( + settings.value( "PEP8/CopyrightMinFileSize", - MiscellaneousCheckerDefaultArgs["CopyrightChecker"]["MinFilesize"], + defaultParameters["CopyrightMinFileSize"], ) ) ) self.copyrightAuthorEdit.setText( - Preferences.getSettings().value( - "PEP8/CopyrightAuthor", - MiscellaneousCheckerDefaultArgs["CopyrightChecker"]["Author"], - ) + settings.value("PEP8/CopyrightAuthor", defaultParameters["CopyrightAuthor"]) ) self.__initFuturesList( - Preferences.getSettings().value("PEP8/FutureChecker", "") + settings.value("PEP8/FutureChecker", defaultParameters["FutureChecker"]) ) self.__initBuiltinsIgnoreList( Preferences.toDict( - Preferences.getSettings().value( - "PEP8/BuiltinsChecker", - MiscellaneousCheckerDefaultArgs["BuiltinsChecker"], + settings.value( + "PEP8/BuiltinsChecker", defaultParameters["BuiltinsChecker"] ) ) ) self.aggressiveCheckBox.setChecked( Preferences.toBool( - Preferences.getSettings().value( + settings.value( "PEP8/AggressiveSearch", - MiscellaneousCheckerDefaultArgs["CommentedCodeChecker"][ - "Aggressive" - ], + defaultParameters["CommentedCodeChecker"]["Aggressive"], ) ) ) self.__initCommentedCodeCheckerWhiteList( Preferences.toList( - Preferences.getSettings().value( + settings.value( "PEP8/CommentedCodeWhitelist", - MiscellaneousCheckerDefaultArgs["CommentedCodeChecker"][ - "WhiteList" - ], + defaultParameters["CommentedCodeChecker"]["WhiteList"], ) ) ) @@ -1592,90 +1647,90 @@ # Type Annotations Checker self.minAnnotationsCoverageSpinBox.setValue( int( - Preferences.getSettings().value( + settings.value( "PEP8/MinimumAnnotationsCoverage", - AnnotationsCheckerDefaultArgs["MinimumCoverage"], + defaultParameters["AnnotationsChecker"]["MinimumCoverage"], ) ) ) self.maxAnnotationsComplexitySpinBox.setValue( int( - Preferences.getSettings().value( + settings.value( "PEP8/MaximumAnnotationComplexity", - AnnotationsCheckerDefaultArgs["MaximumComplexity"], + defaultParameters["AnnotationsChecker"]["MaximumComplexity"], ) ) ) self.maxAnnotationsLengthSpinBox.setValue( int( - Preferences.getSettings().value( + settings.value( "PEP8/MaximumAnnotationLength", - AnnotationsCheckerDefaultArgs["MaximumLength"], + defaultParameters["AnnotationsChecker"]["MaximumLength"], ) ) ) self.suppressNoneReturningCheckBox.setChecked( Preferences.toBool( - Preferences.getSettings().value( + settings.value( "PEP8/SuppressNoneReturning", - AnnotationsCheckerDefaultArgs["SuppressNoneReturning"], + defaultParameters["AnnotationsChecker"]["SuppressNoneReturning"], ) ) ) self.suppressDummyArgsCheckBox.setChecked( Preferences.toBool( - Preferences.getSettings().value( + settings.value( "PEP8/SuppressDummyArgs", - AnnotationsCheckerDefaultArgs["SuppressDummyArgs"], + defaultParameters["AnnotationsChecker"]["SuppressDummyArgs"], ) ) ) self.allowUntypedDefsCheckBox.setChecked( Preferences.toBool( - Preferences.getSettings().value( + settings.value( "PEP8/AllowUntypedDefs", - AnnotationsCheckerDefaultArgs["AllowUntypedDefs"], + defaultParameters["AnnotationsChecker"]["AllowUntypedDefs"], ) ) ) self.allowUntypedNestedCheckBox.setChecked( Preferences.toBool( - Preferences.getSettings().value( + settings.value( "PEP8/AllowUntypedNested", - AnnotationsCheckerDefaultArgs["AllowUntypedNested"], + defaultParameters["AnnotationsChecker"]["AllowUntypedNested"], ) ) ) self.mypyInitReturnCheckBox.setChecked( Preferences.toBool( - Preferences.getSettings().value( + settings.value( "PEP8/MypyInitReturn", - AnnotationsCheckerDefaultArgs["MypyInitReturn"], + defaultParameters["AnnotationsChecker"]["MypyInitReturn"], ) ) ) self.allowStarArgAnyCheckBox.setChecked( Preferences.toBool( - Preferences.getSettings().value( + settings.value( "PEP8/AllowStarArgAny", - AnnotationsCheckerDefaultArgs["AllowStarArgAny"], + defaultParameters["AnnotationsChecker"]["AllowStarArgAny"], ) ) ) self.forceFutureAnnotationsCheckBox.setChecked( Preferences.toBool( - Preferences.getSettings().value( + settings.value( "PEP8/ForceFutureAnnotations", - AnnotationsCheckerDefaultArgs["ForceFutureAnnotations"], + defaultParameters["AnnotationsChecker"]["ForceFutureAnnotations"], ) ) ) self.dispatchDecoratorEdit.setText( ", ".join( Preferences.toList( - Preferences.getSettings().value( + settings.value( "PEP8/DispatchDecorators", - AnnotationsCheckerDefaultArgs["DispatchDecorators"], + defaultParameters["AnnotationsChecker"]["DispatchDecorators"], ) ) ) @@ -1683,23 +1738,21 @@ self.overloadDecoratorEdit.setText( ", ".join( Preferences.toList( - Preferences.getSettings().value( + settings.value( "PEP8/OverloadDecorators", - AnnotationsCheckerDefaultArgs["OverloadDecorators"], + defaultParameters["AnnotationsChecker"]["OverloadDecorators"], ) ) ) ) # Security Checker - from .Security.SecurityDefaults import SecurityDefaults - self.tmpDirectoriesEdit.setPlainText( "\n".join( Preferences.toList( - Preferences.getSettings().value( + settings.value( "PEP8/HardcodedTmpDirectories", - SecurityDefaults["hardcoded_tmp_directories"], + defaultParameters["SecurityChecker"]["HardcodedTmpDirectories"], ) ) ) @@ -1707,8 +1760,9 @@ self.hashesEdit.setText( ", ".join( Preferences.toList( - Preferences.getSettings().value( - "PEP8/InsecureHashes", SecurityDefaults["insecure_hashes"] + settings.value( + "PEP8/InsecureHashes", + defaultParameters["SecurityChecker"]["InsecureHashes"], ) ) ) @@ -1716,53 +1770,56 @@ self.insecureSslProtocolsEdit.setPlainText( "\n".join( Preferences.toList( - Preferences.getSettings().value( + settings.value( "PEP8/InsecureSslProtocolVersions", - SecurityDefaults["insecure_ssl_protocol_versions"], + defaultParameters["SecurityChecker"][ + "InsecureSslProtocolVersions" + ], ) ) ) ), self.dsaHighRiskCombo.setCurrentText( - Preferences.getSettings().value( + settings.value( "PEP8/WeakKeySizeDsaHigh", - str(SecurityDefaults["weak_key_size_dsa_high"]), + defaultParameters["SecurityChecker"]["WeakKeySizeDsaHigh"], ) ) self.dsaMediumRiskCombo.setCurrentText( - Preferences.getSettings().value( + settings.value( "PEP8/WeakKeySizeDsaMedium", - str(SecurityDefaults["weak_key_size_dsa_medium"]), + defaultParameters["SecurityChecker"]["WeakKeySizeDsaMedium"], ) ), self.rsaHighRiskCombo.setCurrentText( - Preferences.getSettings().value( + settings.value( "PEP8/WeakKeySizeRsaHigh", - str(SecurityDefaults["weak_key_size_rsa_high"]), + defaultParameters["SecurityChecker"]["WeakKeySizeRsaHigh"], ) ), self.rsaMediumRiskCombo.setCurrentText( - Preferences.getSettings().value( + settings.value( "PEP8/WeakKeySizeRsaMedium", - str(SecurityDefaults["weak_key_size_rsa_medium"]), + defaultParameters["SecurityChecker"]["WeakKeySizeRsaMedium"], ) ), self.ecHighRiskCombo.setCurrentText( - Preferences.getSettings().value( - "PEP8/WeakKeySizeEcHigh", str(SecurityDefaults["weak_key_size_ec_high"]) + settings.value( + "PEP8/WeakKeySizeEcHigh", + defaultParameters["SecurityChecker"]["WeakKeySizeEcHigh"], ) ), self.ecMediumRiskCombo.setCurrentText( - Preferences.getSettings().value( + settings.value( "PEP8/WeakKeySizeEcMedium", - str(SecurityDefaults["weak_key_size_ec_medium"]), + defaultParameters["SecurityChecker"]["WeakKeySizeEcMedium"], ) ), self.typedExceptionsCheckBox.setChecked( Preferences.toBool( - Preferences.getSettings().value( + settings.value( "PEP8/CheckTypedException", - SecurityDefaults["check_typed_exception"], + defaultParameters["SecurityChecker"]["CheckTypedException"], ) ) ), @@ -1772,8 +1829,11 @@ " ".join( sorted( Preferences.toList( - Preferences.getSettings().value( - "PEP8/ApplicationPackageNames", [] + settings.value( + "PEP8/ApplicationPackageNames", + defaultParameters["ImportsChecker"][ + "ApplicationPackageNames" + ], ) ) ) @@ -1783,13 +1843,34 @@ " ".join( sorted( Preferences.toList( - Preferences.getSettings().value("PEP8/BannedModules", []) + settings.value( + "PEP8/BannedModules", + defaultParameters["ImportsChecker"]["BannedModules"], + ) ) ) ) ) self.__setBanRelativeImports( - Preferences.getSettings().value("PEP8/BanRelativeImports", "") + settings.value( + "PEP8/BanRelativeImports", + defaultParameters["ImportsChecker"]["BanRelativeImports"], + ) + ) + self.sortOrderComboBox.setCurrentIndex( + self.sortOrderComboBox.findData( + settings.value( + "PEP8/SortOrder", defaultParameters["ImportsChecker"]["SortOrder"] + ) + ) + ) + self.sortCaseSensitiveCheckBox.setChecked( + Preferences.toBool( + settings.value( + "PEP8/SortCaseSensitive", + defaultParameters["ImportsChecker"]["SortCaseSensitive"], + ) + ) ) self.__cleanupData() @@ -1800,314 +1881,310 @@ Private slot to store the current configuration values as default values. """ - Preferences.getSettings().setValue( - "PEP8/EnabledCheckerCategories", self.__getCategories(True) - ) - Preferences.getSettings().setValue( - "PEP8/ExcludeFilePatterns", self.excludeFilesEdit.text() - ) - Preferences.getSettings().setValue( - "PEP8/ExcludeMessages", self.excludeMessagesEdit.text() - ) - Preferences.getSettings().setValue( - "PEP8/IncludeMessages", self.includeMessagesEdit.text() - ) - Preferences.getSettings().setValue( - "PEP8/RepeatMessages", self.repeatCheckBox.isChecked() - ) - Preferences.getSettings().setValue("PEP8/FixCodes", self.fixIssuesEdit.text()) - Preferences.getSettings().setValue( - "PEP8/NoFixCodes", self.noFixIssuesEdit.text() - ) - Preferences.getSettings().setValue( - "PEP8/FixIssues", self.fixIssuesCheckBox.isChecked() - ) - Preferences.getSettings().setValue( - "PEP8/ShowIgnored", self.ignoredCheckBox.isChecked() - ) - Preferences.getSettings().setValue( - "PEP8/MaxLineLength", self.lineLengthSpinBox.value() - ) - Preferences.getSettings().setValue( - "PEP8/MaxDocLineLength", self.docLineLengthSpinBox.value() - ) - Preferences.getSettings().setValue( + settings = Preferences.getSettings() + + settings.setValue("PEP8/EnabledCheckerCategories", self.__getCategories(True)) + settings.setValue("PEP8/ExcludeFilePatterns", self.excludeFilesEdit.text()) + settings.setValue("PEP8/ExcludeMessages", self.excludeMessagesEdit.text()) + settings.setValue("PEP8/IncludeMessages", self.includeMessagesEdit.text()) + settings.setValue("PEP8/RepeatMessages", self.repeatCheckBox.isChecked()) + settings.setValue("PEP8/FixCodes", self.fixIssuesEdit.text()) + settings.setValue("PEP8/NoFixCodes", self.noFixIssuesEdit.text()) + settings.setValue("PEP8/FixIssues", self.fixIssuesCheckBox.isChecked()) + settings.setValue("PEP8/ShowIgnored", self.ignoredCheckBox.isChecked()) + settings.setValue("PEP8/MaxLineLength", self.lineLengthSpinBox.value()) + settings.setValue("PEP8/MaxDocLineLength", self.docLineLengthSpinBox.value()) + settings.setValue( "PEP8/BlankLinesBeforeTopLevel", self.blankBeforeTopLevelSpinBox.value() ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/BlankLinesBeforeMethod", self.blankBeforeMethodSpinBox.value() ) - Preferences.getSettings().setValue( - "PEP8/HangClosing", self.hangClosingCheckBox.isChecked() - ) - Preferences.getSettings().setValue( + settings.setValue("PEP8/HangClosing", self.hangClosingCheckBox.isChecked()) + settings.setValue( "PEP8/DocstringType", self.docTypeComboBox.itemData(self.docTypeComboBox.currentIndex()), ) - Preferences.getSettings().setValue( - "PEP8/MaxCodeComplexity", self.complexitySpinBox.value() - ) - Preferences.getSettings().setValue( - "PEP8/LineComplexity", self.lineComplexitySpinBox.value() - ) - Preferences.getSettings().setValue( + settings.setValue("PEP8/MaxCodeComplexity", self.complexitySpinBox.value()) + settings.setValue("PEP8/LineComplexity", self.lineComplexitySpinBox.value()) + settings.setValue( "PEP8/LineComplexityScore", self.lineComplexityScoreSpinBox.value() ) - Preferences.getSettings().setValue( - "PEP8/ValidEncodings", self.encodingsEdit.text() - ) - Preferences.getSettings().setValue( + settings.setValue("PEP8/ValidEncodings", self.encodingsEdit.text()) + settings.setValue( "PEP8/CopyrightMinFileSize", self.copyrightFileSizeSpinBox.value() ) - Preferences.getSettings().setValue( - "PEP8/CopyrightAuthor", self.copyrightAuthorEdit.text() - ) - Preferences.getSettings().setValue( - "PEP8/FutureChecker", self.__getSelectedFutureImports() - ) - Preferences.getSettings().setValue( - "PEP8/BuiltinsChecker", self.__getBuiltinsIgnoreList() - ) - Preferences.getSettings().setValue( - "PEP8/AggressiveSearch", self.aggressiveCheckBox.isChecked() - ) - Preferences.getSettings().setValue( + settings.setValue("PEP8/CopyrightAuthor", self.copyrightAuthorEdit.text()) + settings.setValue("PEP8/FutureChecker", self.__getSelectedFutureImports()) + settings.setValue("PEP8/BuiltinsChecker", self.__getBuiltinsIgnoreList()) + settings.setValue("PEP8/AggressiveSearch", self.aggressiveCheckBox.isChecked()) + settings.setValue( "PEP8/CommentedCodeWhitelist", self.__getCommentedCodeCheckerWhiteList() ) # Type Annotations Checker - Preferences.getSettings().setValue( + settings.setValue( "PEP8/MinimumAnnotationsCoverage", self.minAnnotationsCoverageSpinBox.value(), ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/MaximumAnnotationComplexity", self.maxAnnotationsComplexitySpinBox.value(), ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/MaximumAnnotationLength", self.maxAnnotationsLengthSpinBox.value() ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/SuppressNoneReturning", self.suppressNoneReturningCheckBox.isChecked() ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/SuppressDummyArgs", self.suppressDummyArgsCheckBox.isChecked() ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/AllowUntypedDefs", self.allowUntypedDefsCheckBox.isChecked() ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/AllowUntypedNested", self.allowUntypedNestedCheckBox.isChecked() ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/MypyInitReturn", self.mypyInitReturnCheckBox.isChecked() ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/AllowStarArgAny", self.allowStarArgAnyCheckBox.isChecked() ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/ForceFutureAnnotations", self.forceFutureAnnotationsCheckBox.isChecked(), ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/DispatchDecorators", [d.strip() for d in self.dispatchDecoratorEdit.text().split(",")], ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/OverloadDecorators", [d.strip() for d in self.overloadDecoratorEdit.text().split(",")], ) # Security Checker - Preferences.getSettings().setValue( + settings.setValue( "PEP8/HardcodedTmpDirectories", [t.strip() for t in self.tmpDirectoriesEdit.toPlainText().splitlines()], ), - Preferences.getSettings().setValue( + settings.setValue( "PEP8/InsecureHashes", [h.strip() for h in self.hashesEdit.text().split(",")], ), - Preferences.getSettings().setValue( + settings.setValue( "PEP8/InsecureSslProtocolVersions", [ p.strip() for p in self.insecureSslProtocolsEdit.toPlainText().splitlines() ], ), - Preferences.getSettings().setValue( + settings.setValue( "PEP8/WeakKeySizeDsaHigh", self.dsaHighRiskCombo.currentText() ), - Preferences.getSettings().setValue( + settings.setValue( "PEP8/WeakKeySizeDsaMedium", self.dsaMediumRiskCombo.currentText() ), - Preferences.getSettings().setValue( + settings.setValue( "PEP8/WeakKeySizeRsaHigh", self.rsaHighRiskCombo.currentText() ), - Preferences.getSettings().setValue( + settings.setValue( "PEP8/WeakKeySizeRsaMedium", self.rsaMediumRiskCombo.currentText() ), - Preferences.getSettings().setValue( - "PEP8/WeakKeySizeEcHigh", self.ecHighRiskCombo.currentText() - ), - Preferences.getSettings().setValue( + settings.setValue("PEP8/WeakKeySizeEcHigh", self.ecHighRiskCombo.currentText()), + settings.setValue( "PEP8/WeakKeySizeEcMedium", self.ecMediumRiskCombo.currentText() ), - Preferences.getSettings().setValue( + settings.setValue( "PEP8/CheckTypedException", self.typedExceptionsCheckBox.isChecked() ), # Imports Checker - Preferences.getSettings().setValue( + settings.setValue( "PEP8/ApplicationPackageNames", sorted(self.appPackagesEdit.toPlainText().split()), ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/BannedModules", sorted(self.bannedModulesEdit.toPlainText().split()) ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/BanRelativeImports", self.__getBanRelativeImportsValue() ) + settings.setValue("PEP8/SortOrder", self.sortOrderComboBox.currentData()) + settings.setValue( + "PEP8/SortCaseSensitive", self.sortCaseSensitiveCheckBox.isChecked() + ) @pyqtSlot() def on_resetDefaultButton_clicked(self): """ Private slot to reset the configuration values to their default values. """ - Preferences.getSettings().setValue( + defaultParameters = self.getDefaults() + settings = Preferences.getSettings() + + settings.setValue( "PEP8/EnabledCheckerCategories", - ",".join(CodeStyleCheckerDialog.checkCategories.keys()), + defaultParameters["EnabledCheckerCategories"], ) - Preferences.getSettings().setValue("PEP8/ExcludeFilePatterns", "") - Preferences.getSettings().setValue( - "PEP8/ExcludeMessages", pycodestyle.DEFAULT_IGNORE + settings.setValue("PEP8/ExcludeFilePatterns", defaultParameters["ExcludeFiles"]) + settings.setValue("PEP8/ExcludeMessages", defaultParameters["ExcludeMessages"]) + settings.setValue("PEP8/IncludeMessages", defaultParameters["IncludeMessages"]) + settings.setValue("PEP8/RepeatMessages", defaultParameters["RepeatMessages"]) + settings.setValue("PEP8/FixCodes", defaultParameters["FixCodes"]) + settings.setValue("PEP8/NoFixCodes", defaultParameters["NoFixCodes"]) + settings.setValue("PEP8/FixIssues", defaultParameters["FixIssues"]) + settings.setValue("PEP8/ShowIgnored", defaultParameters["ShowIgnored"]) + settings.setValue("PEP8/MaxLineLength", defaultParameters["MaxLineLength"]) + settings.setValue( + "PEP8/MaxDocLineLength", defaultParameters["MaxDocLineLength"] + ) + settings.setValue( + "PEP8/BlankLinesBeforeTopLevel", defaultParameters["BlankLines"][0] ) - Preferences.getSettings().setValue("PEP8/IncludeMessages", "") - Preferences.getSettings().setValue("PEP8/RepeatMessages", False) - Preferences.getSettings().setValue("PEP8/FixCodes", "") - Preferences.getSettings().setValue("PEP8/NoFixCodes", "E501") - Preferences.getSettings().setValue("PEP8/FixIssues", False) - Preferences.getSettings().setValue("PEP8/ShowIgnored", False) - Preferences.getSettings().setValue("PEP8/MaxLineLength", 88) - Preferences.getSettings().setValue("PEP8/MaxDocLineLength", 88) - Preferences.getSettings().setValue("PEP8/BlankLinesBeforeTopLevel", 2) - Preferences.getSettings().setValue("PEP8/BlankLinesBeforeMethod", 1) - Preferences.getSettings().setValue("PEP8/HangClosing", False) - Preferences.getSettings().setValue("PEP8/DocstringType", "pep257") - Preferences.getSettings().setValue("PEP8/MaxCodeComplexity", 10) - Preferences.getSettings().setValue("PEP8/LineComplexity", 15) - Preferences.getSettings().setValue("PEP8/LineComplexityScore", 10) - Preferences.getSettings().setValue( - "PEP8/ValidEncodings", MiscellaneousCheckerDefaultArgs["CodingChecker"] + settings.setValue( + "PEP8/BlankLinesBeforeMethod", defaultParameters["BlankLines"][1] + ) + settings.setValue("PEP8/HangClosing", defaultParameters["HangClosing"]) + settings.setValue("PEP8/DocstringType", defaultParameters["DocstringType"]) + settings.setValue( + "PEP8/MaxCodeComplexity", defaultParameters["MaxCodeComplexity"] + ) + settings.setValue("PEP8/LineComplexity", defaultParameters["LineComplexity"]) + settings.setValue( + "PEP8/LineComplexityScore", defaultParameters["LineComplexityScore"] ) - Preferences.getSettings().setValue( - "PEP8/CopyrightMinFileSize", - MiscellaneousCheckerDefaultArgs["CopyrightChecker"]["MinFilesize"], - ) - Preferences.getSettings().setValue( - "PEP8/CopyrightAuthor", - MiscellaneousCheckerDefaultArgs["CopyrightChecker"]["Author"], + settings.setValue("PEP8/ValidEncodings", defaultParameters["ValidEncodings"]) + settings.setValue( + "PEP8/CopyrightMinFileSize", defaultParameters["CopyrightMinFileSize"] ) - Preferences.getSettings().setValue("PEP8/FutureChecker", "") - Preferences.getSettings().setValue( - "PEP8/BuiltinsChecker", MiscellaneousCheckerDefaultArgs["BuiltinsChecker"] - ) - Preferences.getSettings().setValue( + settings.setValue("PEP8/CopyrightAuthor", defaultParameters["CopyrightAuthor"]) + settings.setValue("PEP8/FutureChecker", defaultParameters["FutureChecker"]) + settings.setValue("PEP8/BuiltinsChecker", defaultParameters["BuiltinsChecker"]) + settings.setValue( "PEP8/AggressiveSearch", - MiscellaneousCheckerDefaultArgs["CommentedCodeChecker"]["Aggressive"], + defaultParameters["CommentedCodeChecker"]["Aggressive"], ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/CommentedCodeWhitelist", - MiscellaneousCheckerDefaultArgs["CommentedCodeChecker"]["WhiteList"], + defaultParameters["CommentedCodeChecker"]["WhiteList"], ) # Type Annotations Checker - Preferences.getSettings().setValue( + settings.setValue( "PEP8/MinimumAnnotationsCoverage", - AnnotationsCheckerDefaultArgs["MinimumCoverage"], + defaultParameters["AnnotationsChecker"]["MinimumCoverage"], ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/MaximumAnnotationComplexity", - AnnotationsCheckerDefaultArgs["MaximumComplexity"], + defaultParameters["AnnotationsChecker"]["MaximumComplexity"], ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/MaximumAnnotationLength", - AnnotationsCheckerDefaultArgs["MaximumLength"], + defaultParameters["AnnotationsChecker"]["MaximumLength"], ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/SuppressNoneReturning", - AnnotationsCheckerDefaultArgs["SuppressNoneReturning"], + defaultParameters["AnnotationsChecker"]["SuppressNoneReturning"], ) - Preferences.getSettings().setValue( - "PEP8/SuppressDummyArgs", AnnotationsCheckerDefaultArgs["SuppressDummyArgs"] + settings.setValue( + "PEP8/SuppressDummyArgs", + defaultParameters["AnnotationsChecker"]["SuppressDummyArgs"], ) - Preferences.getSettings().setValue( - "PEP8/AllowUntypedDefs", AnnotationsCheckerDefaultArgs["AllowUntypedDefs"] + settings.setValue( + "PEP8/AllowUntypedDefs", + defaultParameters["AnnotationsChecker"]["AllowUntypedDefs"], ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/AllowUntypedNested", - AnnotationsCheckerDefaultArgs["AllowUntypedNested"], + defaultParameters["AnnotationsChecker"]["AllowUntypedNested"], ) - Preferences.getSettings().setValue( - "PEP8/MypyInitReturn", AnnotationsCheckerDefaultArgs["MypyInitReturn"] + settings.setValue( + "PEP8/MypyInitReturn", + defaultParameters["AnnotationsChecker"]["MypyInitReturn"], ) - Preferences.getSettings().setValue( - "PEP8/AllowStarArgAny", AnnotationsCheckerDefaultArgs["AllowStarArgAny"] + settings.setValue( + "PEP8/AllowStarArgAny", + defaultParameters["AnnotationsChecker"]["AllowStarArgAny"], ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/ForceFutureAnnotations", - AnnotationsCheckerDefaultArgs["ForceFutureAnnotations"], + defaultParameters["AnnotationsChecker"]["ForceFutureAnnotations"], ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/DispatchDecorators", - AnnotationsCheckerDefaultArgs["DispatchDecorators"], + defaultParameters["AnnotationsChecker"]["DispatchDecorators"], ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/OverloadDecorators", - AnnotationsCheckerDefaultArgs["OverloadDecorators"], + defaultParameters["AnnotationsChecker"]["OverloadDecorators"], ) # Security Checker - from .Security.SecurityDefaults import SecurityDefaults - - Preferences.getSettings().setValue( + settings.setValue( "PEP8/HardcodedTmpDirectories", - SecurityDefaults["hardcoded_tmp_directories"], + defaultParameters["SecurityChecker"]["HardcodedTmpDirectories"], ) - Preferences.getSettings().setValue( - "PEP8/InsecureHashes", SecurityDefaults["insecure_hashes"] + settings.setValue( + "PEP8/InsecureHashes", + defaultParameters["SecurityChecker"]["InsecureHashes"], ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/InsecureSslProtocolVersions", - SecurityDefaults["insecure_ssl_protocol_versions"], + defaultParameters["SecurityChecker"]["InsecureSslProtocolVersions"], ) - Preferences.getSettings().setValue( - "PEP8/WeakKeySizeDsaHigh", str(SecurityDefaults["weak_key_size_dsa_high"]) + settings.setValue( + "PEP8/WeakKeySizeDsaHigh", + defaultParameters["SecurityChecker"]["WeakKeySizeDsaHigh"], ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/WeakKeySizeDsaMedium", - str(SecurityDefaults["weak_key_size_dsa_medium"]), + defaultParameters["SecurityChecker"]["WeakKeySizeDsaMedium"], ) - Preferences.getSettings().setValue( - "PEP8/WeakKeySizeRsaHigh", str(SecurityDefaults["weak_key_size_rsa_high"]) + settings.setValue( + "PEP8/WeakKeySizeRsaHigh", + defaultParameters["SecurityChecker"]["WeakKeySizeRsaHigh"], ) - Preferences.getSettings().setValue( + settings.setValue( "PEP8/WeakKeySizeRsaMedium", - str(SecurityDefaults["weak_key_size_rsa_medium"]), + defaultParameters["SecurityChecker"]["WeakKeySizeRsaMedium"], ) - Preferences.getSettings().setValue( - "PEP8/WeakKeySizeEcHigh", str(SecurityDefaults["weak_key_size_ec_high"]) + settings.setValue( + "PEP8/WeakKeySizeEcHigh", + defaultParameters["SecurityChecker"]["WeakKeySizeEcHigh"], ) - Preferences.getSettings().setValue( - "PEP8/WeakKeySizeEcMedium", str(SecurityDefaults["weak_key_size_ec_medium"]) + settings.setValue( + "PEP8/WeakKeySizeEcMedium", + defaultParameters["SecurityChecker"]["WeakKeySizeEcMedium"], ) - Preferences.getSettings().setValue( - "PEP8/CheckTypedException", SecurityDefaults["check_typed_exception"] + settings.setValue( + "PEP8/CheckTypedException", + defaultParameters["SecurityChecker"]["CheckTypedException"], ) # Imports Checker - Preferences.getSettings().setValue("PEP8/ApplicationPackageNames", []) - Preferences.getSettings().setValue("PEP8/BannedModules", []) - Preferences.getSettings().setValue("PEP8/BanRelativeImports", "") + settings.setValue( + "PEP8/ApplicationPackageNames", + defaultParameters["ImportsChecker"]["ApplicationPackageNames"], + ) + settings.setValue( + "PEP8/BannedModules", + defaultParameters["ImportsChecker"]["BannedModules"], + ) + settings.setValue( + "PEP8/BanRelativeImports", + defaultParameters["ImportsChecker"]["BanRelativeImports"], + ) + settings.setValue( + "PEP8/SortOrder", + defaultParameters["ImportsChecker"]["SortOrder"], + ) + settings.setValue( + "PEP8/SortCaseSensitive", + defaultParameters["ImportsChecker"]["SortCaseSensitive"], + ) # Update UI with default values self.on_loadDefaultButton_clicked() @@ -2387,7 +2464,7 @@ Private method to clean the loaded/entered data of redundant entries. """ # Migrate single letter exclude messages to disabled checker categories - # and delete them from exlude messages + # and delete them from exclude messages excludedMessages = [ m.strip() for m in self.excludeMessagesEdit.text().split(",") if bool(m) ]
--- a/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui Tue Nov 01 16:46:35 2022 +0100 @@ -11,12 +11,7 @@ </rect> </property> <property name="windowTitle"> - <string>Code Style Check Result</string> - </property> - <property name="whatsThis"> - <string><b>Code Style Check Results</b> -<p>This dialog shows the results of the code style check. Double clicking an -entry will open an editor window and position the cursor at the respective line and position.</p></string> + <string>Code Style Check</string> </property> <property name="sizeGripEnabled"> <bool>true</bool> @@ -267,7 +262,7 @@ <rect> <x>0</x> <y>0</y> - <width>389</width> + <width>611</width> <height>923</height> </rect> </property> @@ -1406,6 +1401,52 @@ </widget> </item> <item> + <widget class="QGroupBox" name="groupBox_18"> + <property name="title"> + <string>Imports Sorting</string> + </property> + <layout class="QGridLayout" name="gridLayout_10"> + <item row="0" column="0"> + <widget class="QLabel" name="label_37"> + <property name="text"> + <string>Sort Order:</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QComboBox" name="sortOrderComboBox"> + <property name="toolTip"> + <string>Select the sort order</string> + </property> + </widget> + </item> + <item row="0" column="2"> + <spacer name="horizontalSpacer_4"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>439</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="0" colspan="3"> + <widget class="QCheckBox" name="sortCaseSensitiveCheckBox"> + <property name="toolTip"> + <string>Select to sort imports observing the case</string> + </property> + <property name="text"> + <string>Sort Case Sensitively</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> <spacer name="verticalSpacer_7"> <property name="orientation"> <enum>Qt::Vertical</enum> @@ -1819,6 +1860,8 @@ <tabstop>allowAllButton</tabstop> <tabstop>banParentsButton</tabstop> <tabstop>banAllButton</tabstop> + <tabstop>sortOrderComboBox</tabstop> + <tabstop>sortCaseSensitiveCheckBox</tabstop> <tabstop>startButton</tabstop> <tabstop>loadDefaultButton</tabstop> <tabstop>storeDefaultButton</tabstop>
--- a/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/ImportNode.py Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/ImportNode.py Tue Nov 01 16:46:35 2022 +0100 @@ -8,7 +8,7 @@ """ # -# adapted from flake8-alphabetize v0.0.17 +# adapted from flake8-alphabetize v0.0.18 # import ast @@ -65,14 +65,14 @@ self.nodeType = NodeTypeEnum.IMPORT_FROM names = [n.name for n in astNode.names] - expectedNames = sorted(names) + expectedNames = checker.sorted(names, key=checker.moduleKey) if names != expectedNames: self.error = (self.node, "I202", ", ".join(expectedNames)) level = astNode.level if self.moduleName == "__future__": group = GroupEnum.FUTURE - elif self.moduleName in checker.getStandardModules(): + elif self.moduleName.split(".")[0] in checker.getStandardModules(): group = GroupEnum.STDLIB elif level > 0: group = GroupEnum.APPLICATION
--- a/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/ImportsChecker.py Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/ImportsChecker.py Tue Nov 01 16:46:35 2022 +0100 @@ -65,6 +65,14 @@ self.__tree = copy.deepcopy(tree) self.__args = args + # parameters for import sorting + if args["SortOrder"] == "native": + self.__sortingFunction = sorted + else: + # naturally is the default sort order + self.__sortingFunction = self.__naturally + self.__sortCaseSensitive = args["SortCaseSensitive"] + # statistics counters self.counters = {} @@ -393,11 +401,9 @@ ####################################################################### ## Import order ## - ## adapted from: flake8-alphabetize v0.0.17 + ## adapted from: flake8-alphabetize v0.0.18 ####################################################################### - # TODO: upgrade to v0.0.18 - # TODO: introduce sort type iaw. isort def __checkImportOrder(self): """ Private method to check the order of import statements. @@ -499,12 +505,96 @@ # Can't handle anything that isn't a string literal return None - expectedList = sorted(actualList) + expectedList = self.sorted(actualList, key=self.moduleKey) if expectedList != actualList: return (node, "I204", ", ".join(expectedList)) return None + def sorted(self, toSort, key=None, reverse=False): + """ + Public method to sort the given list of names. + + @param toSort list of names to be sorted + @type list of str + @param key function to generate keys (defaults to None) + @type function (optional) + @param reverse flag indicating a reverse sort (defaults to False) + @type bool (optional) + @return sorted list of names + @rtype list of str + """ + return self.__sortingFunction(toSort, key=key, reverse=reverse) + + def __naturally(self, toSort, key=None, reverse=False): + """ + Private method to sort the given list of names naturally. + + Note: Natural sorting maintains the sort order of numbers (i.e. + [Q1, Q10, Q2] is sorted as [Q1, Q2, Q10] while the Python + standard sort would yield [Q1, Q10, Q2]. + + @param toSort list of names to be sorted + @type list of str + @param key function to generate keys (defaults to None) + @type function (optional) + @param reverse flag indicating a reverse sort (defaults to False) + @type bool (optional) + @return sorted list of names + @rtype list of str + """ + if key is None: + keyCallback = self.__naturalKeys + else: + def keyCallback(text): + return self.__naturalKeys(key(text)) + + return sorted(toSort, key=keyCallback, reverse=reverse) + + def __atoi(self, text): + """ + Private method to convert the given text to an integer number. + + @param text text to be converted + @type str + @return integer number + @rtype int + """ + return int(text) if text.isdigit() else text + + def __naturalKeys(self, text): + """ + Private method to generate keys for natural sorting. + + @param text text to generate a key for + @type str + @return key for natural sorting + @rtype list of str or int + """ + return [self.__atoi(c) for c in re.split(r"(\d+)", text)] + + def moduleKey(self, moduleName): + """ + Public method to generate a key for the given module name. + + @param moduleName module name + @type str + @return generated key + @rtype str + """ + prefix = "" + + if moduleName.isupper() and len(moduleName) > 1: + prefix = "A" + elif moduleName[0:1].isupper(): + prefix = "B" + else: + prefix = "C" + if not self.__sortCaseSensitive: + moduleName = moduleName.lower() + + return f"{prefix}{moduleName}" + ####################################################################### ## Tidy imports ##
--- a/src/eric7/i18n/eric7_cs.ts Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/i18n/eric7_cs.ts Tue Nov 01 16:46:35 2022 +0100 @@ -3686,57 +3686,57 @@ <context> <name>CheckerCategories</name> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="86" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> <source>Annotations</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> - <source>Code Complexity</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="88" /> - <source>Documentation</source> - <translation type="unfinished">Dokumentace</translation> + <source>Code Complexity</source> + <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="89" /> - <source>Errors</source> - <translation type="unfinished">Chyby</translation> + <source>Documentation</source> + <translation type="unfinished">Dokumentace</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="90" /> - <source>Imports</source> - <translation type="unfinished" /> + <source>Errors</source> + <translation type="unfinished">Chyby</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="91" /> - <source>Miscellaneous</source> + <source>Imports</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="92" /> - <source>Naming</source> + <source>Miscellaneous</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="93" /> - <source>'pathlib' Usage</source> + <source>Naming</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="94" /> - <source>Security</source> - <translation type="unfinished">Bezpečnost</translation> + <source>'pathlib' Usage</source> + <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="95" /> - <source>Warnings</source> - <translation type="unfinished" /> + <source>Security</source> + <translation type="unfinished">Bezpečnost</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="96" /> + <source>Warnings</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="97" /> <source>Simplify Code</source> <translation type="unfinished" /> </message> @@ -4245,65 +4245,58 @@ <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="128" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> <source>PEP-257</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> - <source>Eric</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="130" /> + <source>Eric</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="131" /> <source>Eric (Blacked)</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="229" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="233" /> <source>Errors</source> <translation type="unfinished">Chyby</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="254" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="258" /> <source>Error: {0}</source> <translation type="unfinished">Chyby: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1089" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1117" /> <source>{0} (ignored)</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1164" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1192" /> <source>No issues found.</source> <translation type="unfinished">Žádné problémy nenalezeny.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1168" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1196" /> <source>No files found (check your ignore list).</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2455" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2532" /> <source>Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2456" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2533" /> <source>Enter a Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source>Code Style Check Result</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source><b>Code Style Check Results</b> -<p>This dialog shows the results of the code style check. Double clicking an -entry will open an editor window and position the cursor at the respective line and position.</p></source> + <source>Code Style Check</source> <translation type="unfinished" /> </message> <message> @@ -4942,6 +4935,31 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Imports Sorting</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Order:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select the sort order</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select to sort imports observing the case</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Case Sensitively</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> <source>Press to start the code style check run</source> <translation type="unfinished" /> </message>
--- a/src/eric7/i18n/eric7_de.ts Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/i18n/eric7_de.ts Tue Nov 01 16:46:35 2022 +0100 @@ -3694,57 +3694,57 @@ <context> <name>CheckerCategories</name> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="86" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> <source>Annotations</source> <translation>Annotationen</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> - <source>Code Complexity</source> - <translation>Code-Komplexität</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="88" /> - <source>Documentation</source> - <translation>Dokumentation</translation> + <source>Code Complexity</source> + <translation>Code-Komplexität</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="89" /> - <source>Errors</source> - <translation>Fehler</translation> + <source>Documentation</source> + <translation>Dokumentation</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="90" /> - <source>Imports</source> - <translation>Importe</translation> + <source>Errors</source> + <translation>Fehler</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="91" /> - <source>Miscellaneous</source> - <translation>Verschiedenes</translation> + <source>Imports</source> + <translation>Importe</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="92" /> - <source>Naming</source> - <translation>Benennung</translation> + <source>Miscellaneous</source> + <translation>Verschiedenes</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="93" /> - <source>'pathlib' Usage</source> - <translation>'pathlib' Verwendung</translation> + <source>Naming</source> + <translation>Benennung</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="94" /> - <source>Security</source> - <translation>Sicherheit</translation> + <source>'pathlib' Usage</source> + <translation>'pathlib' Verwendung</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="95" /> - <source>Warnings</source> - <translation>Warnungen</translation> + <source>Security</source> + <translation>Sicherheit</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="96" /> + <source>Warnings</source> + <translation>Warnungen</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="97" /> <source>Simplify Code</source> <translation>Code-Vereinfachungen</translation> </message> @@ -4258,69 +4258,59 @@ <translation>Lösung: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="128" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> <source>PEP-257</source> <translation>PEP-257</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> - <source>Eric</source> - <translation>Eric</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="130" /> + <source>Eric</source> + <translation>Eric</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="131" /> <source>Eric (Blacked)</source> <translation>Eric (Black Tool)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="229" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="233" /> <source>Errors</source> <translation>Fehler</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="254" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="258" /> <source>Error: {0}</source> <translation>Fehler: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1089" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1117" /> <source>{0} (ignored)</source> <translation>{0} (ignoriert)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1164" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1192" /> <source>No issues found.</source> <translation>Keine Probleme gefunden.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1168" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1196" /> <source>No files found (check your ignore list).</source> <translation>Keine Dateien gefunden (überprüfe die Ignorierliste).</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2455" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2532" /> <source>Commented Code Whitelist Pattern</source> <translation>'Commented Code' Whitelist Muster</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2456" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2533" /> <source>Enter a Commented Code Whitelist Pattern</source> <translation>Ein 'Commented Code' Whitelist Muster eingeben</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source>Code Style Check Result</source> - <translation>Prüfungsergebnisse Quelltextstil</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source><b>Code Style Check Results</b> -<p>This dialog shows the results of the code style check. Double clicking an -entry will open an editor window and position the cursor at the respective line and position.</p></source> - <translation><b>Prüfergebnisse Quelltextstil</b> -<p>Dieser Dialog zeigt die Resultate der Prüfung des Quelltextstils. Ein Doppelklick auf -einen Eintrag öffnet ein Editorfenster und positioniert den Cursor auf die entsprechende -Zeile und Position.</p></translation> + <source>Code Style Check</source> + <translation>Quelltextstilprüfung</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> @@ -4958,6 +4948,31 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Imports Sorting</source> + <translation>Imports Sortierung</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Order:</source> + <translation>Sortierreihenfolge:</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select the sort order</source> + <translation>Wähle die Sortierreihenfolge</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select to sort imports observing the case</source> + <translation>Auswählen um Imports mit Berücksichtigung der Schreibweise zu sortieren</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Case Sensitively</source> + <translation>Schreibweisenabhängig sortieren</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> <source>Press to start the code style check run</source> <translation>Drücken, um die Quelltextstil-Prüfung zu starten</translation> </message> @@ -5130,7 +5145,7 @@ <location filename="../Plugins/PluginCodeStyleChecker.py" line="267" /> <location filename="../Plugins/PluginCodeStyleChecker.py" line="247" /> <source>Check Code Style</source> - <translation>Quelltextstil püfen</translation> + <translation>Quelltextstil prüfen</translation> </message> <message> <location filename="../Plugins/PluginCodeStyleChecker.py" line="349" /> @@ -5142,7 +5157,7 @@ <message> <location filename="../Plugins/PluginCodeStyleChecker.py" line="254" /> <source>Check code style.</source> - <translation>Quelltextstil püfen.</translation> + <translation>Quelltextstil prüfen.</translation> </message> <message> <location filename="../Plugins/PluginCodeStyleChecker.py" line="356" />
--- a/src/eric7/i18n/eric7_empty.ts Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/i18n/eric7_empty.ts Tue Nov 01 16:46:35 2022 +0100 @@ -3661,57 +3661,57 @@ <context> <name>CheckerCategories</name> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="86" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> <source>Annotations</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> - <source>Code Complexity</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="88" /> - <source>Documentation</source> + <source>Code Complexity</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="89" /> - <source>Errors</source> + <source>Documentation</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="90" /> - <source>Imports</source> + <source>Errors</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="91" /> - <source>Miscellaneous</source> + <source>Imports</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="92" /> - <source>Naming</source> + <source>Miscellaneous</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="93" /> - <source>'pathlib' Usage</source> + <source>Naming</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="94" /> - <source>Security</source> + <source>'pathlib' Usage</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="95" /> - <source>Warnings</source> + <source>Security</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="96" /> + <source>Warnings</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="97" /> <source>Simplify Code</source> <translation type="unfinished" /> </message> @@ -4218,65 +4218,58 @@ <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="128" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> <source>PEP-257</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> - <source>Eric</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="130" /> + <source>Eric</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="131" /> <source>Eric (Blacked)</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="229" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="233" /> <source>Errors</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="254" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="258" /> <source>Error: {0}</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1089" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1117" /> <source>{0} (ignored)</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1164" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1192" /> <source>No issues found.</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1168" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1196" /> <source>No files found (check your ignore list).</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2455" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2532" /> <source>Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2456" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2533" /> <source>Enter a Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source>Code Style Check Result</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source><b>Code Style Check Results</b> -<p>This dialog shows the results of the code style check. Double clicking an -entry will open an editor window and position the cursor at the respective line and position.</p></source> + <source>Code Style Check</source> <translation type="unfinished" /> </message> <message> @@ -4915,6 +4908,31 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Imports Sorting</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Order:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select the sort order</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select to sort imports observing the case</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Case Sensitively</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> <source>Press to start the code style check run</source> <translation type="unfinished" /> </message>
--- a/src/eric7/i18n/eric7_en.ts Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/i18n/eric7_en.ts Tue Nov 01 16:46:35 2022 +0100 @@ -3661,57 +3661,57 @@ <context> <name>CheckerCategories</name> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="86" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> <source>Annotations</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> - <source>Code Complexity</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="88" /> - <source>Documentation</source> + <source>Code Complexity</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="89" /> - <source>Errors</source> + <source>Documentation</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="90" /> - <source>Imports</source> + <source>Errors</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="91" /> - <source>Miscellaneous</source> + <source>Imports</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="92" /> - <source>Naming</source> + <source>Miscellaneous</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="93" /> - <source>'pathlib' Usage</source> + <source>Naming</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="94" /> - <source>Security</source> + <source>'pathlib' Usage</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="95" /> - <source>Warnings</source> + <source>Security</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="96" /> + <source>Warnings</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="97" /> <source>Simplify Code</source> <translation type="unfinished" /> </message> @@ -4218,65 +4218,58 @@ <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="128" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> <source>PEP-257</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> - <source>Eric</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="130" /> + <source>Eric</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="131" /> <source>Eric (Blacked)</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="229" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="233" /> <source>Errors</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="254" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="258" /> <source>Error: {0}</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1089" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1117" /> <source>{0} (ignored)</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1164" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1192" /> <source>No issues found.</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1168" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1196" /> <source>No files found (check your ignore list).</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2455" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2532" /> <source>Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2456" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2533" /> <source>Enter a Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source>Code Style Check Result</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source><b>Code Style Check Results</b> -<p>This dialog shows the results of the code style check. Double clicking an -entry will open an editor window and position the cursor at the respective line and position.</p></source> + <source>Code Style Check</source> <translation type="unfinished" /> </message> <message> @@ -4915,6 +4908,31 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Imports Sorting</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Order:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select the sort order</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select to sort imports observing the case</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Case Sensitively</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> <source>Press to start the code style check run</source> <translation type="unfinished" /> </message>
--- a/src/eric7/i18n/eric7_es.ts Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/i18n/eric7_es.ts Tue Nov 01 16:46:35 2022 +0100 @@ -3702,57 +3702,57 @@ <context> <name>CheckerCategories</name> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="86" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> <source>Annotations</source> <translation>Anotaciones</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> - <source>Code Complexity</source> - <translation>Complejidad del Código</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="88" /> - <source>Documentation</source> - <translation>Documentación</translation> + <source>Code Complexity</source> + <translation>Complejidad del Código</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="89" /> - <source>Errors</source> - <translation>Errores</translation> + <source>Documentation</source> + <translation>Documentación</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="90" /> - <source>Imports</source> - <translation>Imports</translation> + <source>Errors</source> + <translation>Errores</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="91" /> - <source>Miscellaneous</source> - <translation>Miscelanea</translation> + <source>Imports</source> + <translation>Imports</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="92" /> - <source>Naming</source> - <translation>Nomenclatura</translation> + <source>Miscellaneous</source> + <translation>Miscelanea</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="93" /> - <source>'pathlib' Usage</source> - <translation>Uso de 'pathlib'</translation> + <source>Naming</source> + <translation>Nomenclatura</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="94" /> - <source>Security</source> - <translation>Seguridad</translation> + <source>'pathlib' Usage</source> + <translation>Uso de 'pathlib'</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="95" /> - <source>Warnings</source> - <translation>Advertencias</translation> + <source>Security</source> + <translation>Seguridad</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="96" /> + <source>Warnings</source> + <translation>Advertencias</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="97" /> <source>Simplify Code</source> <translation>Simplificar Código</translation> </message> @@ -4266,68 +4266,59 @@ <translation>Arreglar: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="128" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> <source>PEP-257</source> <translation>Muestra el progreso de la comprobación del estilo de código</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> - <source>Eric</source> - <translation>Eric</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="130" /> + <source>Eric</source> + <translation>Eric</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="131" /> <source>Eric (Blacked)</source> <translation>Eric (Oscurecido)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="229" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="233" /> <source>Errors</source> <translation>Errores</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="254" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="258" /> <source>Error: {0}</source> <translation>Error: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1089" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1117" /> <source>{0} (ignored)</source> <translation>{0} (ignorado)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1164" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1192" /> <source>No issues found.</source> <translation>No se han encontrado problemas.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1168" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1196" /> <source>No files found (check your ignore list).</source> <translation>No se han encontrado archivos (comprobar lista de ignorados).</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2455" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2532" /> <source>Commented Code Whitelist Pattern</source> <translation>Patrón de lista blanca para comentarios en código</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2456" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2533" /> <source>Enter a Commented Code Whitelist Pattern</source> <translation>Introducir un patrón de lista blanca para comentarios en código</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source>Code Style Check Result</source> - <translation>Resultados Comprobación Estilo del Código</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source><b>Code Style Check Results</b> -<p>This dialog shows the results of the code style check. Double clicking an -entry will open an editor window and position the cursor at the respective line and position.</p></source> - <translation><b>Resultados Comprobación de Estilo del Código</b> -<p>Este diálogo muestra los resultados de la comprobación de estilo del código. Haciendo doble click -sobre una entrada, la abrirá en una ventana de edición posicionando el cursor en la línea y posición correspondiente.</p></translation> + <source>Code Style Check</source> + <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> @@ -4965,6 +4956,31 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Imports Sorting</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Order:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select the sort order</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select to sort imports observing the case</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Case Sensitively</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> <source>Press to start the code style check run</source> <translation>Pulsar para iniciar la comprobación de estilo de código</translation> </message> @@ -5123,6 +5139,18 @@ <source>Filter</source> <translation>Filtrar</translation> </message> + <message> + <source>Code Style Check Result</source> + <translation type="vanished">Resultados Comprobación Estilo del Código</translation> + </message> + <message> + <source><b>Code Style Check Results</b> +<p>This dialog shows the results of the code style check. Double clicking an +entry will open an editor window and position the cursor at the respective line and position.</p></source> + <translation type="vanished"><b>Resultados Comprobación de Estilo del Código</b> +<p>Este diálogo muestra los resultados de la comprobación de estilo del código. Haciendo doble click +sobre una entrada, la abrirá en una ventana de edición posicionando el cursor en la línea y posición correspondiente.</p></translation> + </message> </context> <context> <name>CodeStyleCheckerPlugin</name>
--- a/src/eric7/i18n/eric7_fr.ts Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/i18n/eric7_fr.ts Tue Nov 01 16:46:35 2022 +0100 @@ -3710,57 +3710,57 @@ <context> <name>CheckerCategories</name> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="86" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> <source>Annotations</source> <translation>Annotations</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> - <source>Code Complexity</source> - <translation>Complexité du code</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="88" /> - <source>Documentation</source> - <translation>Documentation</translation> + <source>Code Complexity</source> + <translation>Complexité du code</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="89" /> - <source>Errors</source> - <translation>Erreurs</translation> + <source>Documentation</source> + <translation>Documentation</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="90" /> - <source>Imports</source> - <translation type="unfinished">Imports</translation> + <source>Errors</source> + <translation>Erreurs</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="91" /> - <source>Miscellaneous</source> - <translation>Divers</translation> + <source>Imports</source> + <translation type="unfinished">Imports</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="92" /> - <source>Naming</source> - <translation>Nommage</translation> + <source>Miscellaneous</source> + <translation>Divers</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="93" /> - <source>'pathlib' Usage</source> - <translation type="unfinished" /> + <source>Naming</source> + <translation>Nommage</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="94" /> - <source>Security</source> - <translation>Sécurité</translation> + <source>'pathlib' Usage</source> + <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="95" /> - <source>Warnings</source> - <translation>Warnings</translation> + <source>Security</source> + <translation>Sécurité</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="96" /> + <source>Warnings</source> + <translation>Warnings</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="97" /> <source>Simplify Code</source> <translation type="unfinished" /> </message> @@ -4271,65 +4271,58 @@ <translation>Correction : {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="128" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> <source>PEP-257</source> <translation>PEP-257</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> - <source>Eric</source> - <translation>Eric</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="130" /> + <source>Eric</source> + <translation>Eric</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="131" /> <source>Eric (Blacked)</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="229" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="233" /> <source>Errors</source> <translation>Erreurs</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="254" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="258" /> <source>Error: {0}</source> <translation>Erreur : {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1089" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1117" /> <source>{0} (ignored)</source> <translation>{0} (ignoré)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1164" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1192" /> <source>No issues found.</source> <translation>Pas d'erreur trouvée.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1168" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1196" /> <source>No files found (check your ignore list).</source> <translation>Pas de fichier trouvé (vérifier votre liste d'ignorés).</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2455" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2532" /> <source>Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2456" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2533" /> <source>Enter a Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source>Code Style Check Result</source> - <translation>Résultat de la vérification du style du code</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source><b>Code Style Check Results</b> -<p>This dialog shows the results of the code style check. Double clicking an -entry will open an editor window and position the cursor at the respective line and position.</p></source> + <source>Code Style Check</source> <translation type="unfinished" /> </message> <message> @@ -4968,6 +4961,31 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Imports Sorting</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Order:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select the sort order</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select to sort imports observing the case</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Case Sensitively</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> <source>Press to start the code style check run</source> <translation>Appuyer pour lancer la vérification du style du code</translation> </message> @@ -5125,6 +5143,10 @@ <translation type="unfinished">Filtrer</translation> </message> <message> + <source>Code Style Check Result</source> + <translation type="vanished">Résultat de la vérification du style du code</translation> + </message> + <message> <source>Preparing files...</source> <translation type="vanished">Préparation des fichiers...</translation> </message>
--- a/src/eric7/i18n/eric7_it.ts Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/i18n/eric7_it.ts Tue Nov 01 16:46:35 2022 +0100 @@ -3693,57 +3693,57 @@ <context> <name>CheckerCategories</name> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="86" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> <source>Annotations</source> <translation type="unfinished">Annotazioni</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> - <source>Code Complexity</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="88" /> - <source>Documentation</source> - <translation type="unfinished">Documentazione</translation> + <source>Code Complexity</source> + <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="89" /> - <source>Errors</source> - <translation type="unfinished">Errori</translation> + <source>Documentation</source> + <translation type="unfinished">Documentazione</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="90" /> - <source>Imports</source> - <translation type="unfinished" /> + <source>Errors</source> + <translation type="unfinished">Errori</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="91" /> - <source>Miscellaneous</source> + <source>Imports</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="92" /> - <source>Naming</source> + <source>Miscellaneous</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="93" /> - <source>'pathlib' Usage</source> + <source>Naming</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="94" /> - <source>Security</source> - <translation type="unfinished">Sicurezza</translation> + <source>'pathlib' Usage</source> + <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="95" /> - <source>Warnings</source> - <translation type="unfinished">Warnings</translation> + <source>Security</source> + <translation type="unfinished">Sicurezza</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="96" /> + <source>Warnings</source> + <translation type="unfinished">Warnings</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="97" /> <source>Simplify Code</source> <translation type="unfinished" /> </message> @@ -4254,68 +4254,59 @@ <translation>Corregge:{0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="128" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> <source>PEP-257</source> <translation>PEP-257</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> - <source>Eric</source> - <translation>Eric</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="130" /> + <source>Eric</source> + <translation>Eric</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="131" /> <source>Eric (Blacked)</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="229" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="233" /> <source>Errors</source> <translation type="unfinished">Errori</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="254" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="258" /> <source>Error: {0}</source> <translation>Errore: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1089" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1117" /> <source>{0} (ignored)</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1164" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1192" /> <source>No issues found.</source> <translation>Nessun problema trovato.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1168" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1196" /> <source>No files found (check your ignore list).</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2455" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2532" /> <source>Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2456" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2533" /> <source>Enter a Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source>Code Style Check Result</source> - <translation>Risultati controllo stile di codifica</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source><b>Code Style Check Results</b> -<p>This dialog shows the results of the code style check. Double clicking an -entry will open an editor window and position the cursor at the respective line and position.</p></source> - <translation><b>Risultati controllo sullo stile di codifica</b> -<p>Questo dialogo mostra i risultati del controllo sullo stile di codifica. Il doppio click sulla voce -aprirà una finestra per editare e posizionerà il cursore alla rispettiva riga e colonna.</p></translation> + <source>Code Style Check</source> + <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> @@ -4953,6 +4944,31 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Imports Sorting</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Order:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select the sort order</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select to sort imports observing the case</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Case Sensitively</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> <source>Press to start the code style check run</source> <translation>Premi per iniziare l'esecuzione del controllo dello stile di codifica</translation> </message> @@ -5111,6 +5127,18 @@ <source>Filter</source> <translation type="unfinished">Filtro</translation> </message> + <message> + <source>Code Style Check Result</source> + <translation type="vanished">Risultati controllo stile di codifica</translation> + </message> + <message> + <source><b>Code Style Check Results</b> +<p>This dialog shows the results of the code style check. Double clicking an +entry will open an editor window and position the cursor at the respective line and position.</p></source> + <translation type="vanished"><b>Risultati controllo sullo stile di codifica</b> +<p>Questo dialogo mostra i risultati del controllo sullo stile di codifica. Il doppio click sulla voce +aprirà una finestra per editare e posizionerà il cursore alla rispettiva riga e colonna.</p></translation> + </message> </context> <context> <name>CodeStyleCheckerPlugin</name>
--- a/src/eric7/i18n/eric7_pt.ts Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/i18n/eric7_pt.ts Tue Nov 01 16:46:35 2022 +0100 @@ -3700,57 +3700,57 @@ <context> <name>CheckerCategories</name> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="86" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> <source>Annotations</source> <translation type="unfinished">Anotações</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> - <source>Code Complexity</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="88" /> - <source>Documentation</source> - <translation type="unfinished">Documentação</translation> + <source>Code Complexity</source> + <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="89" /> - <source>Errors</source> - <translation type="unfinished">Erros</translation> + <source>Documentation</source> + <translation type="unfinished">Documentação</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="90" /> - <source>Imports</source> - <translation type="unfinished">Importações</translation> + <source>Errors</source> + <translation type="unfinished">Erros</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="91" /> - <source>Miscellaneous</source> - <translation type="unfinished" /> + <source>Imports</source> + <translation type="unfinished">Importações</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="92" /> - <source>Naming</source> + <source>Miscellaneous</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="93" /> - <source>'pathlib' Usage</source> + <source>Naming</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="94" /> - <source>Security</source> - <translation type="unfinished">Segurança</translation> + <source>'pathlib' Usage</source> + <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="95" /> - <source>Warnings</source> - <translation type="unfinished">Avisos</translation> + <source>Security</source> + <translation type="unfinished">Segurança</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="96" /> + <source>Warnings</source> + <translation type="unfinished">Avisos</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="97" /> <source>Simplify Code</source> <translation type="unfinished" /> </message> @@ -4260,68 +4260,59 @@ <translation>Corrigir: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="128" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> <source>PEP-257</source> <translation /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> - <source>Eric</source> - <translation /> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="130" /> + <source>Eric</source> + <translation /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="131" /> <source>Eric (Blacked)</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="229" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="233" /> <source>Errors</source> <translation>Erros</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="254" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="258" /> <source>Error: {0}</source> <translation>Erro: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1089" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1117" /> <source>{0} (ignored)</source> <translation>{0} (ignorado)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1164" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1192" /> <source>No issues found.</source> <translation>Não se encontraram problemas.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1168" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1196" /> <source>No files found (check your ignore list).</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2455" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2532" /> <source>Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2456" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2533" /> <source>Enter a Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source>Code Style Check Result</source> - <translation>Resultado da Verificação de Estilo do Código</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source><b>Code Style Check Results</b> -<p>This dialog shows the results of the code style check. Double clicking an -entry will open an editor window and position the cursor at the respective line and position.</p></source> - <translation><b>Resultado da Verificação de Estilo de Código</b> -<p>Caixa de diálogo que mostra o resultado da verificação de estilo do código. Duplo clique -numa entrada a abrirá a janela do editor e posiciona o cursor na respectiva linha e posição.</p></translation> + <source>Code Style Check</source> + <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> @@ -4959,6 +4950,31 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Imports Sorting</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Order:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select the sort order</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select to sort imports observing the case</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Case Sensitively</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> <source>Press to start the code style check run</source> <translation>Pressionar para começar a verficação de estilo do código</translation> </message> @@ -5119,6 +5135,18 @@ <translation type="unfinished">Filtro</translation> </message> <message> + <source>Code Style Check Result</source> + <translation type="vanished">Resultado da Verificação de Estilo do Código</translation> + </message> + <message> + <source><b>Code Style Check Results</b> +<p>This dialog shows the results of the code style check. Double clicking an +entry will open an editor window and position the cursor at the respective line and position.</p></source> + <translation type="vanished"><b>Resultado da Verificação de Estilo de Código</b> +<p>Caixa de diálogo que mostra o resultado da verificação de estilo do código. Duplo clique +numa entrada a abrirá a janela do editor e posiciona o cursor na respectiva linha e posição.</p></translation> + </message> + <message> <source>Preparing files...</source> <translation type="vanished">A preparar ficheiros...</translation> </message>
--- a/src/eric7/i18n/eric7_ru.ts Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/i18n/eric7_ru.ts Tue Nov 01 16:46:35 2022 +0100 @@ -3705,57 +3705,57 @@ <context> <name>CheckerCategories</name> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="86" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> <source>Annotations</source> <translation>Аннотации</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> - <source>Code Complexity</source> - <translation>Сложность кода</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="88" /> - <source>Documentation</source> - <translation>Документация</translation> + <source>Code Complexity</source> + <translation>Сложность кода</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="89" /> - <source>Errors</source> - <translation>Ошибки</translation> + <source>Documentation</source> + <translation>Документация</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="90" /> - <source>Imports</source> - <translation>Импорт</translation> + <source>Errors</source> + <translation>Ошибки</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="91" /> - <source>Miscellaneous</source> - <translation>Разное</translation> + <source>Imports</source> + <translation>Импорт</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="92" /> - <source>Naming</source> - <translation>Именованные</translation> + <source>Miscellaneous</source> + <translation>Разное</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="93" /> - <source>'pathlib' Usage</source> - <translation>Использование 'pathlib'</translation> + <source>Naming</source> + <translation>Именованные</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="94" /> - <source>Security</source> - <translation>Безопасность</translation> + <source>'pathlib' Usage</source> + <translation>Использование 'pathlib'</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="95" /> - <source>Warnings</source> - <translation>Предупреждения</translation> + <source>Security</source> + <translation>Безопасность</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="96" /> + <source>Warnings</source> + <translation>Предупреждения</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="97" /> <source>Simplify Code</source> <translation>Упрощенный код</translation> </message> @@ -4269,68 +4269,59 @@ <translation>Исправлено: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="128" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> <source>PEP-257</source> <translation>PEP-257</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> - <source>Eric</source> - <translation>Eric</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="130" /> + <source>Eric</source> + <translation>Eric</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="131" /> <source>Eric (Blacked)</source> <translation>Eric (Blacked)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="229" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="233" /> <source>Errors</source> <translation>Ошибки</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="254" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="258" /> <source>Error: {0}</source> <translation>Ошибка: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1089" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1117" /> <source>{0} (ignored)</source> <translation>{0} (проигнорировано)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1164" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1192" /> <source>No issues found.</source> <translation>Проблем со стилем не найдено.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1168" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1196" /> <source>No files found (check your ignore list).</source> <translation>Файлы не найдены (проверьте ваш игнор-лист).</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2455" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2532" /> <source>Commented Code Whitelist Pattern</source> <translation>Шаблон закомментированного кода</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2456" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2533" /> <source>Enter a Commented Code Whitelist Pattern</source> <translation>Задайте шаблон закомментированного кода</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source>Code Style Check Result</source> - <translation>Результаты проверки стиля кодирования</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source><b>Code Style Check Results</b> -<p>This dialog shows the results of the code style check. Double clicking an -entry will open an editor window and position the cursor at the respective line and position.</p></source> - <translation><b>Результаты проверки стиля</b> -<p>Отображение результатов проверки стиля. Двойной щелчок по -записи откроет окно редактора и поместит курсор на соответствующую строку.</p></translation> + <source>Code Style Check</source> + <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> @@ -4968,6 +4959,31 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Imports Sorting</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Order:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select the sort order</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select to sort imports observing the case</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Case Sensitively</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> <source>Press to start the code style check run</source> <translation>Запустить проверку стиля</translation> </message> @@ -5126,6 +5142,18 @@ <source>Filter</source> <translation>Отфильтровать</translation> </message> + <message> + <source>Code Style Check Result</source> + <translation type="vanished">Результаты проверки стиля кодирования</translation> + </message> + <message> + <source><b>Code Style Check Results</b> +<p>This dialog shows the results of the code style check. Double clicking an +entry will open an editor window and position the cursor at the respective line and position.</p></source> + <translation type="vanished"><b>Результаты проверки стиля</b> +<p>Отображение результатов проверки стиля. Двойной щелчок по +записи откроет окно редактора и поместит курсор на соответствующую строку.</p></translation> + </message> </context> <context> <name>CodeStyleCheckerPlugin</name>
--- a/src/eric7/i18n/eric7_tr.ts Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/i18n/eric7_tr.ts Tue Nov 01 16:46:35 2022 +0100 @@ -3686,57 +3686,57 @@ <context> <name>CheckerCategories</name> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="86" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> <source>Annotations</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> - <source>Code Complexity</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="88" /> - <source>Documentation</source> - <translation type="unfinished">Belgeleme</translation> + <source>Code Complexity</source> + <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="89" /> - <source>Errors</source> - <translation type="unfinished">Hatalar</translation> + <source>Documentation</source> + <translation type="unfinished">Belgeleme</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="90" /> - <source>Imports</source> - <translation type="unfinished" /> + <source>Errors</source> + <translation type="unfinished">Hatalar</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="91" /> - <source>Miscellaneous</source> + <source>Imports</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="92" /> - <source>Naming</source> + <source>Miscellaneous</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="93" /> - <source>'pathlib' Usage</source> + <source>Naming</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="94" /> - <source>Security</source> - <translation type="unfinished">Güvenlik</translation> + <source>'pathlib' Usage</source> + <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="95" /> - <source>Warnings</source> - <translation type="unfinished" /> + <source>Security</source> + <translation type="unfinished">Güvenlik</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="96" /> + <source>Warnings</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="97" /> <source>Simplify Code</source> <translation type="unfinished" /> </message> @@ -4245,65 +4245,58 @@ <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="128" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> <source>PEP-257</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> - <source>Eric</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="130" /> + <source>Eric</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="131" /> <source>Eric (Blacked)</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="229" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="233" /> <source>Errors</source> <translation type="unfinished">Hatalar</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="254" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="258" /> <source>Error: {0}</source> <translation type="unfinished">Hata: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1089" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1117" /> <source>{0} (ignored)</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1164" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1192" /> <source>No issues found.</source> <translation type="unfinished">Sorun bulunamadı.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1168" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1196" /> <source>No files found (check your ignore list).</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2455" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2532" /> <source>Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2456" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2533" /> <source>Enter a Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source>Code Style Check Result</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source><b>Code Style Check Results</b> -<p>This dialog shows the results of the code style check. Double clicking an -entry will open an editor window and position the cursor at the respective line and position.</p></source> + <source>Code Style Check</source> <translation type="unfinished" /> </message> <message> @@ -4942,6 +4935,31 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Imports Sorting</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Order:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select the sort order</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select to sort imports observing the case</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Case Sensitively</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> <source>Press to start the code style check run</source> <translation type="unfinished" /> </message>
--- a/src/eric7/i18n/eric7_zh_CN.ts Mon Oct 31 17:54:41 2022 +0100 +++ b/src/eric7/i18n/eric7_zh_CN.ts Tue Nov 01 16:46:35 2022 +0100 @@ -3707,57 +3707,57 @@ <context> <name>CheckerCategories</name> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="86" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> <source>Annotations</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> - <source>Code Complexity</source> - <translation type="unfinished">代码复杂度</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="88" /> - <source>Documentation</source> - <translation type="unfinished">文档</translation> + <source>Code Complexity</source> + <translation type="unfinished">代码复杂度</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="89" /> - <source>Errors</source> - <translation type="unfinished">错误</translation> + <source>Documentation</source> + <translation type="unfinished">文档</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="90" /> - <source>Imports</source> - <translation type="unfinished">导入</translation> + <source>Errors</source> + <translation type="unfinished">错误</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="91" /> - <source>Miscellaneous</source> - <translation type="unfinished" /> + <source>Imports</source> + <translation type="unfinished">导入</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="92" /> - <source>Naming</source> + <source>Miscellaneous</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="93" /> - <source>'pathlib' Usage</source> + <source>Naming</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="94" /> - <source>Security</source> - <translation type="unfinished">安全</translation> + <source>'pathlib' Usage</source> + <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="95" /> - <source>Warnings</source> - <translation type="unfinished" /> + <source>Security</source> + <translation type="unfinished">安全</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="96" /> + <source>Warnings</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="97" /> <source>Simplify Code</source> <translation type="unfinished" /> </message> @@ -4268,68 +4268,59 @@ <translation>修复: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="128" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> <source>PEP-257</source> <translation>PEP-257</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="129" /> - <source>Eric</source> - <translation>Eric</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="130" /> + <source>Eric</source> + <translation>Eric</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="131" /> <source>Eric (Blacked)</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="229" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="233" /> <source>Errors</source> <translation>错误</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="254" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="258" /> <source>Error: {0}</source> <translation>错误:{0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1089" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1117" /> <source>{0} (ignored)</source> <translation>{0}(已忽略)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1164" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1192" /> <source>No issues found.</source> <translation>未发现问题。</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1168" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1196" /> <source>No files found (check your ignore list).</source> <translation>找不到文件(检查您忽略的列表)。</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2455" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2532" /> <source>Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2456" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2533" /> <source>Enter a Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source>Code Style Check Result</source> - <translation>代码格式检查结果</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source><b>Code Style Check Results</b> -<p>This dialog shows the results of the code style check. Double clicking an -entry will open an editor window and position the cursor at the respective line and position.</p></source> - <translation><b>代码格式检查结果</b> -<p>此对话框显示了代码格式的检查结果。双击 -一个入口将会开打编辑器窗口,并将会把光标定位到相应的行和位置。</p></translation> + <source>Code Style Check</source> + <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> @@ -4967,6 +4958,31 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Imports Sorting</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Order:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select the sort order</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Select to sort imports observing the case</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Sort Case Sensitively</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> <source>Press to start the code style check run</source> <translation>按下以开始代码格式检查</translation> </message> @@ -5127,6 +5143,18 @@ <translation type="unfinished">过滤器</translation> </message> <message> + <source>Code Style Check Result</source> + <translation type="vanished">代码格式检查结果</translation> + </message> + <message> + <source><b>Code Style Check Results</b> +<p>This dialog shows the results of the code style check. Double clicking an +entry will open an editor window and position the cursor at the respective line and position.</p></source> + <translation type="vanished"><b>代码格式检查结果</b> +<p>此对话框显示了代码格式的检查结果。双击 +一个入口将会开打编辑器窗口,并将会把光标定位到相应的行和位置。</p></translation> + </message> + <message> <source>Preparing files...</source> <translation type="vanished">正在准备文件…</translation> </message>