Added the plugin function to determine the interfaced executable version information. eric7

Tue, 07 Nov 2023 16:45:04 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 07 Nov 2023 16:45:04 +0100
branch
eric7
changeset 3
109b8e5513d8
parent 2
772534d88459
child 4
5d94c30e8d23

Added the plugin function to determine the interfaced executable version information.

PluginCheckerPyright.epj file | annotate | diff | comparison | revisions
PluginPyright.py file | annotate | diff | comparison | revisions
PyrightChecker/Documentation/Source/Plugin_Checker_Pyright.PluginPyright.html file | annotate | diff | comparison | revisions
PyrightChecker/Documentation/Source/Plugin_Checker_Pyright.PyrightChecker.PyrightCheckerDialog.html file | annotate | diff | comparison | revisions
PyrightChecker/Documentation/Source/index-Plugin_Checker_Pyright.PyrightChecker.html file | annotate | diff | comparison | revisions
PyrightChecker/Documentation/Source/index-Plugin_Checker_Pyright.html file | annotate | diff | comparison | revisions
PyrightChecker/i18n/pyright_de.qm file | annotate | diff | comparison | revisions
PyrightChecker/i18n/pyright_de.ts file | annotate | diff | comparison | revisions
PyrightChecker/i18n/pyright_en.ts file | annotate | diff | comparison | revisions
PyrightChecker/i18n/pyright_es.ts file | annotate | diff | comparison | revisions
PyrightChecker/i18n/pyright_ru.ts file | annotate | diff | comparison | revisions
--- a/PluginCheckerPyright.epj	Tue Nov 07 15:30:32 2023 +0100
+++ b/PluginCheckerPyright.epj	Tue Nov 07 16:45:04 2023 +0100
@@ -158,9 +158,13 @@
           ".jedi",
           ".ropeproject"
         ],
+        "ignoreFilePatterns": [
+          "Ui_*.py"
+        ],
         "outputDirectory": "PyrightChecker/Documentation/Source",
         "qtHelpEnabled": false,
-        "startDirectory": ""
+        "startDirectory": "",
+        "useRecursion": true
       }
     },
     "EMAIL": "detlev@die-offenbachs.de",
@@ -346,4 +350,4 @@
     "VCSOTHERDATA": {},
     "VERSION": ""
   }
-}
\ No newline at end of file
+}
--- a/PluginPyright.py	Tue Nov 07 15:30:32 2023 +0100
+++ b/PluginPyright.py	Tue Nov 07 16:45:04 2023 +0100
@@ -10,12 +10,13 @@
 import contextlib
 import os
 
-from PyQt6.QtCore import QObject, QTranslator, pyqtSlot
+from PyQt6.QtCore import QCoreApplication, QObject, QTranslator, pyqtSlot
 
 from eric7 import Preferences
 from eric7.EricGui.EricAction import EricAction
 from eric7.EricWidgets.EricApplication import ericApp
 from eric7.Project.ProjectBrowserModel import ProjectBrowserFileItem
+from eric7.SystemUtilities import PythonUtilities
 
 # Start-Of-Header
 __header__ = {
@@ -36,6 +37,31 @@
 error = ""  # noqa: U200
 
 
+def exeDisplayData():
+    """
+    Public method to support the display of some executable info.
+
+    @return dictionary containing the data to query the presence of
+        the executable
+    @rtype dict
+    """
+    data = {
+        "programEntry": True,
+        "header": QCoreApplication.translate(
+            "PyrightPlugin", "Checkers - Pyright"
+        ),
+        "exe": PythonUtilities.getPythonExecutable(),
+        "versionCommand": "--version",
+        "versionStartsWith": "pyright",
+        "versionPosition": -1,
+        "version": "",
+        "versionCleanup": None,
+        "exeModule": ["-m", "pyright"]
+    }
+
+    return data
+
+
 def prepareUninstall():
     """
     Module function to prepare for an uninstallation.
--- a/PyrightChecker/Documentation/Source/Plugin_Checker_Pyright.PluginPyright.html	Tue Nov 07 15:30:32 2023 +0100
+++ b/PyrightChecker/Documentation/Source/Plugin_Checker_Pyright.PluginPyright.html	Tue Nov 07 16:45:04 2023 +0100
@@ -30,6 +30,10 @@
 <table>
 
 <tr>
+<td><a href="#exeDisplayData">exeDisplayData</a></td>
+<td>Public method to support the display of some executable info.</td>
+</tr>
+<tr>
 <td><a href="#installDependencies">installDependencies</a></td>
 <td>Function to install dependencies of this plug-in.</td>
 </tr>
@@ -290,6 +294,29 @@
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
+<a NAME="exeDisplayData" ID="exeDisplayData"></a>
+<h2>exeDisplayData</h2>
+<b>exeDisplayData</b>(<i></i>)
+
+<p>
+    Public method to support the display of some executable info.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+dictionary containing the data to query the presence of
+        the executable
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+dict
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
 <a NAME="installDependencies" ID="installDependencies"></a>
 <h2>installDependencies</h2>
 <b>installDependencies</b>(<i>pipInstall</i>)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PyrightChecker/Documentation/Source/Plugin_Checker_Pyright.PyrightChecker.PyrightCheckerDialog.html	Tue Nov 07 16:45:04 2023 +0100
@@ -0,0 +1,432 @@
+<!DOCTYPE html>
+<html><head>
+<title>Plugin_Checker_Pyright.PyrightChecker.PyrightCheckerDialog</title>
+<meta charset="UTF-8">
+<link rel="stylesheet" href="styles.css">
+</head>
+<body>
+<a NAME="top" ID="top"></a>
+<h1>Plugin_Checker_Pyright.PyrightChecker.PyrightCheckerDialog</h1>
+
+<p>
+Module implementing the pyright type checker dialog.
+</p>
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+
+<tr>
+<td><a href="#PyrightCheckerDialog">PyrightCheckerDialog</a></td>
+<td>Class documentation goes here.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr />
+<hr />
+<a NAME="PyrightCheckerDialog" ID="PyrightCheckerDialog"></a>
+<h2>PyrightCheckerDialog</h2>
+
+<p>
+    Class documentation goes here.
+</p>
+<h3>Derived from</h3>
+QDialog, Ui_PyrightCheckerDialog
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>endRole</td></tr><tr><td>filenameRole</td></tr><tr><td>severityRole</td></tr><tr><td>startRole</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#PyrightCheckerDialog.__init__">PyrightCheckerDialog</a></td>
+<td>Constructor</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.__clear">__clear</a></td>
+<td>Private method to clear the dialog.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.__clearEditorErrors">__clearEditorErrors</a></td>
+<td>Private method to clear all warning markers of an editor.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.__clearErrors">__clearErrors</a></td>
+<td>Private method to clear all warning markers of open editors to be checked.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.__createResultItem">__createResultItem</a></td>
+<td>Private method to create an entry in the result list.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.__getConfigurationDict">__getConfigurationDict</a></td>
+<td>Private method to assemble and return a dictionary containing the entered non-default configuration parameters.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.__processResult">__processResult</a></td>
+<td>Private method to process the pyright result.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.__pyrightProcessFinished">__pyrightProcessFinished</a></td>
+<td>Private slot to process the pyright result.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.__readError">__readError</a></td>
+<td>Private slot to get the output of the error channel and show it to the user.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.__resort">__resort</a></td>
+<td>Private method to resort the tree.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.__updateSummary">__updateSummary</a></td>
+<td>Private method to update the summary data of the dialog.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.getDefaults">getDefaults</a></td>
+<td>Public method to get a dictionary containing the default values.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.on_loadDefaultButton_clicked">on_loadDefaultButton_clicked</a></td>
+<td>Private slot to load the default configuration values.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.on_resetDefaultButton_clicked">on_resetDefaultButton_clicked</a></td>
+<td>Private slot to reset the configuration values to their default values.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.on_restartButton_clicked">on_restartButton_clicked</a></td>
+<td>Private slot to restart the configured check.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.on_resultList_itemActivated">on_resultList_itemActivated</a></td>
+<td>Private slot to handle the activation of an item.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.on_showButton_clicked">on_showButton_clicked</a></td>
+<td>Private slot to handle the "Show" button press.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.on_startButton_clicked">on_startButton_clicked</a></td>
+<td>Private slot to start the pyright type checking run.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.on_storeDefaultButton_clicked">on_storeDefaultButton_clicked</a></td>
+<td>Private slot to store the current configuration values as default values.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.on_tomlButton_clicked">on_tomlButton_clicked</a></td>
+<td>Private slot to generate a TOML snippet of the current configuration.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.prepare">prepare</a></td>
+<td>Public method to prepare the dialog with a list of filenames.</td>
+</tr>
+<tr>
+<td><a href="#PyrightCheckerDialog.start">start</a></td>
+<td>Public method to start a pyright type checking run.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<a NAME="PyrightCheckerDialog.__init__" ID="PyrightCheckerDialog.__init__"></a>
+<h4>PyrightCheckerDialog (Constructor)</h4>
+<b>PyrightCheckerDialog</b>(<i>plugin, parent=None</i>)
+
+<p>
+        Constructor
+</p>
+<dl>
+
+<dt><i>plugin</i> (PyrightPlugin)</dt>
+<dd>
+reference to the plugin object
+</dd>
+<dt><i>parent</i> (QWidget (optional))</dt>
+<dd>
+reference to the parent widget (defaults to None)
+</dd>
+</dl>
+<a NAME="PyrightCheckerDialog.__clear" ID="PyrightCheckerDialog.__clear"></a>
+<h4>PyrightCheckerDialog.__clear</h4>
+<b>__clear</b>(<i></i>)
+
+<p>
+        Private method to clear the dialog.
+</p>
+<a NAME="PyrightCheckerDialog.__clearEditorErrors" ID="PyrightCheckerDialog.__clearEditorErrors"></a>
+<h4>PyrightCheckerDialog.__clearEditorErrors</h4>
+<b>__clearEditorErrors</b>(<i>editor</i>)
+
+<p>
+        Private method to clear all warning markers of an editor.
+</p>
+<dl>
+
+<dt><i>editor</i> (Editor)</dt>
+<dd>
+reference to the editor to be cleared
+</dd>
+</dl>
+<a NAME="PyrightCheckerDialog.__clearErrors" ID="PyrightCheckerDialog.__clearErrors"></a>
+<h4>PyrightCheckerDialog.__clearErrors</h4>
+<b>__clearErrors</b>(<i>files=None</i>)
+
+<p>
+        Private method to clear all warning markers of open editors to be
+        checked.
+</p>
+<dl>
+
+<dt><i>files</i> (list of str (optional)</dt>
+<dd>
+list of files to be checked (defaults to None
+</dd>
+</dl>
+<a NAME="PyrightCheckerDialog.__createResultItem" ID="PyrightCheckerDialog.__createResultItem"></a>
+<h4>PyrightCheckerDialog.__createResultItem</h4>
+<b>__createResultItem</b>(<i>result</i>)
+
+<p>
+        Private method to create an entry in the result list.
+</p>
+<dl>
+
+<dt><i>result</i> (dict)</dt>
+<dd>
+dictionary containing check result data
+</dd>
+</dl>
+<a NAME="PyrightCheckerDialog.__getConfigurationDict" ID="PyrightCheckerDialog.__getConfigurationDict"></a>
+<h4>PyrightCheckerDialog.__getConfigurationDict</h4>
+<b>__getConfigurationDict</b>(<i></i>)
+
+<p>
+        Private method to assemble and return a dictionary containing the entered
+        non-default configuration parameters.
+</p>
+<p>
+        The configuration dictionary is amended with some common parameters not
+        accessible via the configuration tab.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+dictionary containing the non-default configuration parameters
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+dict
+</dd>
+</dl>
+<a NAME="PyrightCheckerDialog.__processResult" ID="PyrightCheckerDialog.__processResult"></a>
+<h4>PyrightCheckerDialog.__processResult</h4>
+<b>__processResult</b>(<i>result</i>)
+
+<p>
+        Private method to process the pyright result.
+</p>
+<dl>
+
+<dt><i>result</i> (dict)</dt>
+<dd>
+dictionary containing the type checking result.
+</dd>
+</dl>
+<a NAME="PyrightCheckerDialog.__pyrightProcessFinished" ID="PyrightCheckerDialog.__pyrightProcessFinished"></a>
+<h4>PyrightCheckerDialog.__pyrightProcessFinished</h4>
+<b>__pyrightProcessFinished</b>(<i>exitCode, exitStatus</i>)
+
+<p>
+        Private slot to process the pyright result.
+</p>
+<dl>
+
+<dt><i>exitCode</i> (int)</dt>
+<dd>
+exit code of the pyright process
+</dd>
+<dt><i>exitStatus</i> (QProcess.ExitStatus)</dt>
+<dd>
+exit status
+</dd>
+</dl>
+<a NAME="PyrightCheckerDialog.__readError" ID="PyrightCheckerDialog.__readError"></a>
+<h4>PyrightCheckerDialog.__readError</h4>
+<b>__readError</b>(<i></i>)
+
+<p>
+        Private slot to get the output of the error channel and show it to the user.
+</p>
+<a NAME="PyrightCheckerDialog.__resort" ID="PyrightCheckerDialog.__resort"></a>
+<h4>PyrightCheckerDialog.__resort</h4>
+<b>__resort</b>(<i></i>)
+
+<p>
+        Private method to resort the tree.
+</p>
+<a NAME="PyrightCheckerDialog.__updateSummary" ID="PyrightCheckerDialog.__updateSummary"></a>
+<h4>PyrightCheckerDialog.__updateSummary</h4>
+<b>__updateSummary</b>(<i>summary</i>)
+
+<p>
+        Private method to update the summary data of the dialog.
+</p>
+<dl>
+
+<dt><i>summary</i> (dict)</dt>
+<dd>
+dictionary containing the summary data
+</dd>
+</dl>
+<a NAME="PyrightCheckerDialog.getDefaults" ID="PyrightCheckerDialog.getDefaults"></a>
+<h4>PyrightCheckerDialog.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="PyrightCheckerDialog.on_loadDefaultButton_clicked" ID="PyrightCheckerDialog.on_loadDefaultButton_clicked"></a>
+<h4>PyrightCheckerDialog.on_loadDefaultButton_clicked</h4>
+<b>on_loadDefaultButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to load the default configuration values.
+</p>
+<a NAME="PyrightCheckerDialog.on_resetDefaultButton_clicked" ID="PyrightCheckerDialog.on_resetDefaultButton_clicked"></a>
+<h4>PyrightCheckerDialog.on_resetDefaultButton_clicked</h4>
+<b>on_resetDefaultButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to reset the configuration values to their default values.
+</p>
+<a NAME="PyrightCheckerDialog.on_restartButton_clicked" ID="PyrightCheckerDialog.on_restartButton_clicked"></a>
+<h4>PyrightCheckerDialog.on_restartButton_clicked</h4>
+<b>on_restartButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to restart the configured check.
+</p>
+<a NAME="PyrightCheckerDialog.on_resultList_itemActivated" ID="PyrightCheckerDialog.on_resultList_itemActivated"></a>
+<h4>PyrightCheckerDialog.on_resultList_itemActivated</h4>
+<b>on_resultList_itemActivated</b>(<i>item, column</i>)
+
+<p>
+        Private slot to handle the activation of an item.
+</p>
+<dl>
+
+<dt><i>item</i> (QTreeWidgetItem)</dt>
+<dd>
+reference to the activated item
+</dd>
+<dt><i>column</i> (int)</dt>
+<dd>
+column the item was activated in
+</dd>
+</dl>
+<a NAME="PyrightCheckerDialog.on_showButton_clicked" ID="PyrightCheckerDialog.on_showButton_clicked"></a>
+<h4>PyrightCheckerDialog.on_showButton_clicked</h4>
+<b>on_showButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to handle the "Show" button press.
+</p>
+<a NAME="PyrightCheckerDialog.on_startButton_clicked" ID="PyrightCheckerDialog.on_startButton_clicked"></a>
+<h4>PyrightCheckerDialog.on_startButton_clicked</h4>
+<b>on_startButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to start the pyright type checking run.
+</p>
+<a NAME="PyrightCheckerDialog.on_storeDefaultButton_clicked" ID="PyrightCheckerDialog.on_storeDefaultButton_clicked"></a>
+<h4>PyrightCheckerDialog.on_storeDefaultButton_clicked</h4>
+<b>on_storeDefaultButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to store the current configuration values as
+        default values.
+</p>
+<a NAME="PyrightCheckerDialog.on_tomlButton_clicked" ID="PyrightCheckerDialog.on_tomlButton_clicked"></a>
+<h4>PyrightCheckerDialog.on_tomlButton_clicked</h4>
+<b>on_tomlButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to generate a TOML snippet of the current configuration.
+</p>
+<p>
+        Note: Only non-default values are included in this snippet.
+</p>
+<p>
+        The code snippet is copied to the clipboard and may be placed inside the
+        'pyproject.toml' file.
+</p>
+<a NAME="PyrightCheckerDialog.prepare" ID="PyrightCheckerDialog.prepare"></a>
+<h4>PyrightCheckerDialog.prepare</h4>
+<b>prepare</b>(<i>project</i>)
+
+<p>
+        Public method to prepare the dialog with a list of filenames.
+</p>
+<dl>
+
+<dt><i>project</i> (Project)</dt>
+<dd>
+reference to the project object
+</dd>
+</dl>
+<a NAME="PyrightCheckerDialog.start" ID="PyrightCheckerDialog.start"></a>
+<h4>PyrightCheckerDialog.start</h4>
+<b>start</b>(<i>files=None, save=False</i>)
+
+<p>
+        Public method to start a pyright type checking run.
+</p>
+<dl>
+
+<dt><i>files</i> (list of str (optional))</dt>
+<dd>
+list of files to be checked (defaults to None)
+</dd>
+<dt><i>save</i> (bool)</dt>
+<dd>
+flag indicating to save the given file/file list/directory
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PyrightChecker/Documentation/Source/index-Plugin_Checker_Pyright.PyrightChecker.html	Tue Nov 07 16:45:04 2023 +0100
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html><head>
+<title>Plugin_Checker_Pyright.PyrightChecker</title>
+<meta charset="UTF-8">
+<link rel="stylesheet" href="styles.css">
+</head>
+<body>
+<h1>Plugin_Checker_Pyright.PyrightChecker</h1>
+
+<p>
+Package containing the pyright dialog, supporting functions and data.
+</p>
+
+
+<h3>Modules</h3>
+<table>
+
+<tr>
+<td><a href="Plugin_Checker_Pyright.PyrightChecker.PyrightCheckerDialog.html">PyrightCheckerDialog</a></td>
+<td>Module implementing the pyright type checker dialog.</td>
+</tr>
+</table>
+</body></html>
\ No newline at end of file
--- a/PyrightChecker/Documentation/Source/index-Plugin_Checker_Pyright.html	Tue Nov 07 15:30:32 2023 +0100
+++ b/PyrightChecker/Documentation/Source/index-Plugin_Checker_Pyright.html	Tue Nov 07 16:45:04 2023 +0100
@@ -11,6 +11,14 @@
 Package implementing the pyright plug-in.
 </p>
 
+<h3>Packages</h3>
+<table>
+
+<tr>
+<td><a href="index-Plugin_Checker_Pyright.PyrightChecker.html">PyrightChecker</a></td>
+<td>Package containing the pyright dialog, supporting functions and data.</td>
+</tr>
+</table>
 
 <h3>Modules</h3>
 <table>
Binary file PyrightChecker/i18n/pyright_de.qm has changed
--- a/PyrightChecker/i18n/pyright_de.ts	Tue Nov 07 15:30:32 2023 +0100
+++ b/PyrightChecker/i18n/pyright_de.ts	Tue Nov 07 16:45:04 2023 +0100
@@ -1,304 +1,309 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
 <TS version="2.1" language="de_DE">
-  <context>
+<context>
     <name>PyrightCheckerDialog</name>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Static Type Checker</source>
-      <translation>Checker für statische Typisierung</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Static Type Checker</source>
+        <translation>Checker für statische Typisierung</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Configure</source>
-      <translation>Konfiguration</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Configure</source>
+        <translation>Konfiguration</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Python Platform:</source>
-      <translation>Python Plattform:</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Python Platform:</source>
+        <translation>Python Plattform:</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Select the Python platform to check for (empty for current platform).</source>
-      <translation>Wähle die Python Plattform, für die geprüft werden soll (leer für aktuelle Plattform).</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Select the Python platform to check for (empty for current platform).</source>
+        <translation>Wähle die Python Plattform, für die geprüft werden soll (leer für aktuelle Plattform).</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Python Version:</source>
-      <translation>Python Version:</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Python Version:</source>
+        <translation>Python Version:</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Select the Python version to check against (empty for current version).</source>
-      <translation>Wähle die Python Version, gegen die geprüft werden soll (leer für aktuelle Version).</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Select the Python version to check against (empty for current version).</source>
+        <translation>Wähle die Python Version, gegen die geprüft werden soll (leer für aktuelle Version).</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Select to skip files without type annotations.</source>
-      <translation>Auswählen, um Dateien ohne Typannotationen zu überspringen.</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Select to skip files without type annotations.</source>
+        <translation>Auswählen, um Dateien ohne Typannotationen zu überspringen.</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Skip unannotated files</source>
-      <translation>Nicht annotierte Dateien überspringen</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Skip unannotated files</source>
+        <translation>Nicht annotierte Dateien überspringen</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Press to start the type check run</source>
-      <translation>Drücken, um die Typisierungsprüfung zu starten</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Press to start the type check run</source>
+        <translation>Drücken, um die Typisierungsprüfung zu starten</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>&amp;Start</source>
-      <translation>&amp;Starten</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>&amp;Start</source>
+        <translation>&amp;Starten</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Place a code snippet for 'pyproject.toml' into the clipboard.</source>
-      <translation>Legt einen Codeschnipsel für 'pyproject.toml' in die Zwischenablage.</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Place a code snippet for &apos;pyproject.toml&apos; into the clipboard.</source>
+        <translation>Legt einen Codeschnipsel für &apos;pyproject.toml&apos; in die Zwischenablage.</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Generate &amp;TOML</source>
-      <translation>&amp;TOML erzeugen</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Generate &amp;TOML</source>
+        <translation>&amp;TOML erzeugen</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Press to load the default values</source>
-      <translation>Drücken, um Standarwerte zu laden</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Press to load the default values</source>
+        <translation>Drücken, um Standarwerte zu laden</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>&amp;Load Defaults</source>
-      <translation>Standards &amp;laden</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>&amp;Load Defaults</source>
+        <translation>Standards &amp;laden</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Press to store the current values as defaults</source>
-      <translation>Drücken, um die aktuellen Werte als Standard zu speichern</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Press to store the current values as defaults</source>
+        <translation>Drücken, um die aktuellen Werte als Standard zu speichern</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>St&amp;ore Defaults</source>
-      <translation>Standards s&amp;peichern</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>St&amp;ore Defaults</source>
+        <translation>Standards s&amp;peichern</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Press to reset the default values</source>
-      <translation>Drücken, um die Standardeinstellungen zurückzusetzen</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Press to reset the default values</source>
+        <translation>Drücken, um die Standardeinstellungen zurückzusetzen</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>&amp;Reset Defaults</source>
-      <translation>Standards lösc&amp;hen</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>&amp;Reset Defaults</source>
+        <translation>Standards lösc&amp;hen</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Results</source>
-      <translation>Ergebnisse</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Results</source>
+        <translation>Ergebnisse</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>&lt;b&gt;Result List&lt;/b&gt;
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>&lt;b&gt;Result List&lt;/b&gt;
 &lt;p&gt;This list shows the results of the typing check. Activating
 an entry will open this entry in an editor window and position the cursor at
 the respective line and position.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;Resultatliste&lt;/b&gt;
+        <translation>&lt;b&gt;Resultatliste&lt;/b&gt;
 &lt;p&gt;Diese Liste zeigt die Resultate der Typprüfung. Die Aktivierung
 eines Eintrages öffnet ein Editorfenster und positioniert den Cursor auf die entsprechende
 Zeile und Position.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>File/Line</source>
-      <translation>Datei/Zeile</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>File/Line</source>
+        <translation>Datei/Zeile</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Severity</source>
-      <translation>Schweregrad</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Severity</source>
+        <translation>Schweregrad</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Message</source>
-      <translation>Meldung</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Message</source>
+        <translation>Meldung</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Summary</source>
-      <translation>Zusammenfassung</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Summary</source>
+        <translation>Zusammenfassung</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Files analyzed:</source>
-      <translation>Analysierte Dateien:</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Files analyzed:</source>
+        <translation>Analysierte Dateien:</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>pyright Version:</source>
-      <translation>pyright Version:</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>pyright Version:</source>
+        <translation>pyright Version:</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Error Count:</source>
-      <translation>Anzahl Fehler:</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Error Count:</source>
+        <translation>Anzahl Fehler:</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Warning Count:</source>
-      <translation>Anzahl Warnungen:</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Warning Count:</source>
+        <translation>Anzahl Warnungen:</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Info Count:</source>
-      <translation>Anzahl Infos:</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Info Count:</source>
+        <translation>Anzahl Infos:</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Press to restart the type check run</source>
-      <translation>Drücken, um die Typprüfung neu zu starten</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Press to restart the type check run</source>
+        <translation>Drücken, um die Typprüfung neu zu starten</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>&amp;Restart</source>
-      <translation>Neu &amp;starten</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>&amp;Restart</source>
+        <translation>Neu &amp;starten</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Press to show all files containing an issue</source>
-      <translation>Drücken, um alle Dateien mit Problemen anzuzeigen</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Press to show all files containing an issue</source>
+        <translation>Drücken, um alle Dateien mit Problemen anzuzeigen</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.ui" line="0" />
-      <source>Show</source>
-      <translation>Zeige</translation>
+        <location filename="../PyrightCheckerDialog.ui" line="0"/>
+        <source>Show</source>
+        <translation>Zeige</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.py" line="56" />
-      <source>Error</source>
-      <translation>Fehler</translation>
+        <location filename="../PyrightCheckerDialog.py" line="56"/>
+        <source>Error</source>
+        <translation>Fehler</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.py" line="57" />
-      <source>Warning</source>
-      <translation>Warnung</translation>
+        <location filename="../PyrightCheckerDialog.py" line="57"/>
+        <source>Warning</source>
+        <translation>Warnung</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.py" line="58" />
-      <source>Information</source>
-      <translation>Information</translation>
+        <location filename="../PyrightCheckerDialog.py" line="58"/>
+        <source>Information</source>
+        <translation>Information</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.py" line="72" />
-      <source>No issues detected</source>
-      <translation>Keine Probleme gefunden</translation>
+        <location filename="../PyrightCheckerDialog.py" line="72"/>
+        <source>No issues detected</source>
+        <translation>Keine Probleme gefunden</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.py" line="73" />
-      <source>Issues detected</source>
-      <translation>Probleme gefunden</translation>
+        <location filename="../PyrightCheckerDialog.py" line="73"/>
+        <source>Issues detected</source>
+        <translation>Probleme gefunden</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.py" line="74" />
-      <source>Fatal error occurred with no errors or warnings reported</source>
-      <translation>Es gab einen fatalen Fehler ohne dass Fehler oder Warnungen gemeldet wurden</translation>
+        <location filename="../PyrightCheckerDialog.py" line="74"/>
+        <source>Fatal error occurred with no errors or warnings reported</source>
+        <translation>Es gab einen fatalen Fehler ohne dass Fehler oder Warnungen gemeldet wurden</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.py" line="75" />
-      <source>Config file could not be read or parsed</source>
-      <translation>Konfigurationsdatei konnte nicht gefunden oder gelesen werden</translation>
+        <location filename="../PyrightCheckerDialog.py" line="75"/>
+        <source>Config file could not be read or parsed</source>
+        <translation>Konfigurationsdatei konnte nicht gefunden oder gelesen werden</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.py" line="76" />
-      <source>Illegal command-line parameters specified</source>
-      <translation>Ungültiger Kommandozeilenparameter angegeben</translation>
+        <location filename="../PyrightCheckerDialog.py" line="76"/>
+        <source>Illegal command-line parameters specified</source>
+        <translation>Ungültiger Kommandozeilenparameter angegeben</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.py" line="207" />
-      <source>unknown</source>
-      <translation>unbekannt</translation>
+        <location filename="../PyrightCheckerDialog.py" line="207"/>
+        <source>unknown</source>
+        <translation>unbekannt</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.py" line="375" />
-      <location filename="../PyrightCheckerDialog.py" line="362" />
-      <location filename="../PyrightCheckerDialog.py" line="337" />
-      <location filename="../PyrightCheckerDialog.py" line="298" />
-      <source>pyright Type Checking</source>
-      <translation>pyright Typprüfung</translation>
+        <location filename="../PyrightCheckerDialog.py" line="375"/>
+        <location filename="../PyrightCheckerDialog.py" line="362"/>
+        <location filename="../PyrightCheckerDialog.py" line="337"/>
+        <location filename="../PyrightCheckerDialog.py" line="298"/>
+        <source>pyright Type Checking</source>
+        <translation>pyright Typprüfung</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.py" line="299" />
-      <source>pyright type checking has to be performed for individual files or a project but neither was given. Aborting...</source>
-      <translation>Die Typprüfung mit pyright muss für einzelne Dateien oder ein Projekt durchgeführt werden, doch nichts wurde angegeben. Abbruch...</translation>
+        <location filename="../PyrightCheckerDialog.py" line="299"/>
+        <source>pyright type checking has to be performed for individual files or a project but neither was given. Aborting...</source>
+        <translation>Die Typprüfung mit pyright muss für einzelne Dateien oder ein Projekt durchgeführt werden, doch nichts wurde angegeben. Abbruch...</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.py" line="338" />
-      <source>&lt;p&gt;The pyright type checking run failed.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
-      <translation>&lt;p&gt;Die pyright Typprüfung ist fehlgeschlagen&lt;/p&gt;&lt;p&gt;Ursache: {0}&lt;/p&gt;</translation>
+        <location filename="../PyrightCheckerDialog.py" line="338"/>
+        <source>&lt;p&gt;The pyright type checking run failed.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Die pyright Typprüfung ist fehlgeschlagen&lt;/p&gt;&lt;p&gt;Ursache: {0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.py" line="363" />
-      <source>&lt;p&gt;The pyright type checking process did not end normally.&lt;/p&gt;</source>
-      <translation>&lt;p&gt;Der pyright Typprüfungsprozess wurde nicht normal beendet.&lt;/p&gt;</translation>
+        <location filename="../PyrightCheckerDialog.py" line="363"/>
+        <source>&lt;p&gt;The pyright type checking process did not end normally.&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Der pyright Typprüfungsprozess wurde nicht normal beendet.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.py" line="376" />
-      <source>&lt;p&gt;The pyright type checking process did not return valid JSON data.&lt;/p&gt;&lt;p&gt;Issue: {0}&lt;/p&gt;</source>
-      <translation>&lt;p&gt;Der pyright Typprüfungsprozess gab keine gültigen JSON Daten zurück.&lt;/p&gt;&lt;p&gt;Fehler: {0}&lt;/p&gt;</translation>
+        <location filename="../PyrightCheckerDialog.py" line="376"/>
+        <source>&lt;p&gt;The pyright type checking process did not return valid JSON data.&lt;/p&gt;&lt;p&gt;Issue: {0}&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Der pyright Typprüfungsprozess gab keine gültigen JSON Daten zurück.&lt;/p&gt;&lt;p&gt;Fehler: {0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.py" line="635" />
-      <location filename="../PyrightCheckerDialog.py" line="613" />
-      <source>Create TOML snippet</source>
-      <translation>TOML Schnipsel erzeugen</translation>
+        <location filename="../PyrightCheckerDialog.py" line="635"/>
+        <location filename="../PyrightCheckerDialog.py" line="613"/>
+        <source>Create TOML snippet</source>
+        <translation>TOML Schnipsel erzeugen</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.py" line="614" />
-      <source>The creation of a 'pyproject.toml' snippet is only available when in project mode. Aborting...</source>
-      <translation>Die Erzeugung eines 'pyproject.toml' Schnipsels ist nur im Projektmodus verfügbar. Abbruch...</translation>
+        <location filename="../PyrightCheckerDialog.py" line="614"/>
+        <source>The creation of a &apos;pyproject.toml&apos; snippet is only available when in project mode. Aborting...</source>
+        <translation>Die Erzeugung eines &apos;pyproject.toml&apos; Schnipsels ist nur im Projektmodus verfügbar. Abbruch...</translation>
     </message>
     <message>
-      <location filename="../PyrightCheckerDialog.py" line="636" />
-      <source>The 'pyproject.toml' snippet was copied to the clipboard.</source>
-      <translation>Der 'pyproject.toml' Schnipsel wurde in die Zwischenablage kopiert.</translation>
+        <location filename="../PyrightCheckerDialog.py" line="636"/>
+        <source>The &apos;pyproject.toml&apos; snippet was copied to the clipboard.</source>
+        <translation>Der &apos;pyproject.toml&apos; Schnipsel wurde in die Zwischenablage kopiert.</translation>
     </message>
-  </context>
-  <context>
+</context>
+<context>
     <name>PyrightPlugin</name>
     <message>
-      <location filename="../../PluginPyright.py" line="217" />
-      <location filename="../../PluginPyright.py" line="111" />
-      <location filename="../../PluginPyright.py" line="92" />
-      <source>Static Type Check</source>
-      <translation>Statische Typprüfung</translation>
+        <location filename="../../PluginPyright.py" line="49"/>
+        <source>Checkers - Pyright</source>
+        <translation>Prüfer - Pyright</translation>
+    </message>
+    <message>
+        <location filename="../../PluginPyright.py" line="242"/>
+        <location filename="../../PluginPyright.py" line="136"/>
+        <location filename="../../PluginPyright.py" line="117"/>
+        <source>Static Type Check</source>
+        <translation>Statische Typprüfung</translation>
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="218" />
-      <location filename="../../PluginPyright.py" line="111" />
-      <location filename="../../PluginPyright.py" line="93" />
-      <source>Static &amp;Typing...</source>
-      <translation>Statische &amp;Typprüfung...</translation>
+        <location filename="../../PluginPyright.py" line="243"/>
+        <location filename="../../PluginPyright.py" line="136"/>
+        <location filename="../../PluginPyright.py" line="118"/>
+        <source>Static &amp;Typing...</source>
+        <translation>Statische &amp;Typprüfung...</translation>
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="99" />
-      <source>Check for typing issues</source>
-      <translation>Prüfung auf Typisierungsprobleme</translation>
+        <location filename="../../PluginPyright.py" line="124"/>
+        <source>Check for typing issues</source>
+        <translation>Prüfung auf Typisierungsprobleme</translation>
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="101" />
-      <source>&lt;b&gt;Static Type Check...&lt;/b&gt;&lt;p&gt;This checks a Python project for static typing issues.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;Statische Typprüfung...&lt;/b&gt;&lt;p&gt;Dies überprüft ein Python-Projekt auf statische Typisierungsprobleme.&lt;/p&gt;</translation>
+        <location filename="../../PluginPyright.py" line="126"/>
+        <source>&lt;b&gt;Static Type Check...&lt;/b&gt;&lt;p&gt;This checks a Python project for static typing issues.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Statische Typprüfung...&lt;/b&gt;&lt;p&gt;Dies überprüft ein Python-Projekt auf statische Typisierungsprobleme.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="114" />
-      <source>&lt;b&gt;Static Type Check...&lt;/b&gt;&lt;p&gt;This checks a Python file for static typing issues.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;Statische Typprüfung...&lt;/b&gt;&lt;p&gt;Dies überprüft eine Python-Datei auf statische Typisierungsprobleme.&lt;/p&gt;</translation>
+        <location filename="../../PluginPyright.py" line="139"/>
+        <source>&lt;b&gt;Static Type Check...&lt;/b&gt;&lt;p&gt;This checks a Python file for static typing issues.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Statische Typprüfung...&lt;/b&gt;&lt;p&gt;Dies überprüft eine Python-Datei auf statische Typisierungsprobleme.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="225" />
-      <source>&lt;b&gt;Static Type Check...&lt;/b&gt;&lt;p&gt;This checks Python files for static typing issues.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;Statische Typprüfung...&lt;/b&gt;&lt;p&gt;Dies überprüft Python-Dateien auf statische Typisierungsprobleme.&lt;/p&gt;</translation>
+        <location filename="../../PluginPyright.py" line="250"/>
+        <source>&lt;b&gt;Static Type Check...&lt;/b&gt;&lt;p&gt;This checks Python files for static typing issues.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Statische Typprüfung...&lt;/b&gt;&lt;p&gt;Dies überprüft Python-Dateien auf statische Typisierungsprobleme.&lt;/p&gt;</translation>
     </message>
-  </context>
+</context>
 </TS>
--- a/PyrightChecker/i18n/pyright_en.ts	Tue Nov 07 15:30:32 2023 +0100
+++ b/PyrightChecker/i18n/pyright_en.ts	Tue Nov 07 16:45:04 2023 +0100
@@ -264,36 +264,41 @@
   <context>
     <name>PyrightPlugin</name>
     <message>
-      <location filename="../../PluginPyright.py" line="217" />
-      <location filename="../../PluginPyright.py" line="111" />
-      <location filename="../../PluginPyright.py" line="92" />
+      <location filename="../../PluginPyright.py" line="49" />
+      <source>Checkers - Pyright</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../../PluginPyright.py" line="242" />
+      <location filename="../../PluginPyright.py" line="136" />
+      <location filename="../../PluginPyright.py" line="117" />
       <source>Static Type Check</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="218" />
-      <location filename="../../PluginPyright.py" line="111" />
-      <location filename="../../PluginPyright.py" line="93" />
+      <location filename="../../PluginPyright.py" line="243" />
+      <location filename="../../PluginPyright.py" line="136" />
+      <location filename="../../PluginPyright.py" line="118" />
       <source>Static &amp;Typing...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="99" />
+      <location filename="../../PluginPyright.py" line="124" />
       <source>Check for typing issues</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="101" />
+      <location filename="../../PluginPyright.py" line="126" />
       <source>&lt;b&gt;Static Type Check...&lt;/b&gt;&lt;p&gt;This checks a Python project for static typing issues.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="114" />
+      <location filename="../../PluginPyright.py" line="139" />
       <source>&lt;b&gt;Static Type Check...&lt;/b&gt;&lt;p&gt;This checks a Python file for static typing issues.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="225" />
+      <location filename="../../PluginPyright.py" line="250" />
       <source>&lt;b&gt;Static Type Check...&lt;/b&gt;&lt;p&gt;This checks Python files for static typing issues.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/PyrightChecker/i18n/pyright_es.ts	Tue Nov 07 15:30:32 2023 +0100
+++ b/PyrightChecker/i18n/pyright_es.ts	Tue Nov 07 16:45:04 2023 +0100
@@ -264,36 +264,41 @@
   <context>
     <name>PyrightPlugin</name>
     <message>
-      <location filename="../../PluginPyright.py" line="217" />
-      <location filename="../../PluginPyright.py" line="111" />
-      <location filename="../../PluginPyright.py" line="92" />
+      <location filename="../../PluginPyright.py" line="49" />
+      <source>Checkers - Pyright</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../../PluginPyright.py" line="242" />
+      <location filename="../../PluginPyright.py" line="136" />
+      <location filename="../../PluginPyright.py" line="117" />
       <source>Static Type Check</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="218" />
-      <location filename="../../PluginPyright.py" line="111" />
-      <location filename="../../PluginPyright.py" line="93" />
+      <location filename="../../PluginPyright.py" line="243" />
+      <location filename="../../PluginPyright.py" line="136" />
+      <location filename="../../PluginPyright.py" line="118" />
       <source>Static &amp;Typing...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="99" />
+      <location filename="../../PluginPyright.py" line="124" />
       <source>Check for typing issues</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="101" />
+      <location filename="../../PluginPyright.py" line="126" />
       <source>&lt;b&gt;Static Type Check...&lt;/b&gt;&lt;p&gt;This checks a Python project for static typing issues.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="114" />
+      <location filename="../../PluginPyright.py" line="139" />
       <source>&lt;b&gt;Static Type Check...&lt;/b&gt;&lt;p&gt;This checks a Python file for static typing issues.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="225" />
+      <location filename="../../PluginPyright.py" line="250" />
       <source>&lt;b&gt;Static Type Check...&lt;/b&gt;&lt;p&gt;This checks Python files for static typing issues.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/PyrightChecker/i18n/pyright_ru.ts	Tue Nov 07 15:30:32 2023 +0100
+++ b/PyrightChecker/i18n/pyright_ru.ts	Tue Nov 07 16:45:04 2023 +0100
@@ -264,36 +264,41 @@
   <context>
     <name>PyrightPlugin</name>
     <message>
-      <location filename="../../PluginPyright.py" line="217" />
-      <location filename="../../PluginPyright.py" line="111" />
-      <location filename="../../PluginPyright.py" line="92" />
+      <location filename="../../PluginPyright.py" line="49" />
+      <source>Checkers - Pyright</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../../PluginPyright.py" line="242" />
+      <location filename="../../PluginPyright.py" line="136" />
+      <location filename="../../PluginPyright.py" line="117" />
       <source>Static Type Check</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="218" />
-      <location filename="../../PluginPyright.py" line="111" />
-      <location filename="../../PluginPyright.py" line="93" />
+      <location filename="../../PluginPyright.py" line="243" />
+      <location filename="../../PluginPyright.py" line="136" />
+      <location filename="../../PluginPyright.py" line="118" />
       <source>Static &amp;Typing...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="99" />
+      <location filename="../../PluginPyright.py" line="124" />
       <source>Check for typing issues</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="101" />
+      <location filename="../../PluginPyright.py" line="126" />
       <source>&lt;b&gt;Static Type Check...&lt;/b&gt;&lt;p&gt;This checks a Python project for static typing issues.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="114" />
+      <location filename="../../PluginPyright.py" line="139" />
       <source>&lt;b&gt;Static Type Check...&lt;/b&gt;&lt;p&gt;This checks a Python file for static typing issues.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginPyright.py" line="225" />
+      <location filename="../../PluginPyright.py" line="250" />
       <source>&lt;b&gt;Static Type Check...&lt;/b&gt;&lt;p&gt;This checks Python files for static typing issues.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>

eric ide

mercurial