Syntax Checker eric7

Mon, 20 Mar 2023 10:43:29 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 20 Mar 2023 10:43:29 +0100
branch
eric7
changeset 9924
b41c9a7bcbbb
parent 9923
f706be800097
child 9925
a267ac36dd69

Syntax Checker
- Added the capability to define names to be treated as builtin names by the `pyflakes` checker (see configuration dialog `Editor` => `Code Checkers` page.

docs/changelog.md file | annotate | diff | comparison | revisions
src/eric7/APIs/Python3/eric7.api file | annotate | diff | comparison | revisions
src/eric7/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.Plugins.CheckerPlugins.SyntaxChecker.pyCheckSyntax.html file | annotate | diff | comparison | revisions
src/eric7/Plugins/CheckerPlugins/SyntaxChecker/pyCheckSyntax.py file | annotate | diff | comparison | revisions
src/eric7/Plugins/PluginSyntaxChecker.py file | annotate | diff | comparison | revisions
src/eric7/Preferences/ConfigurationPages/EditorSyntaxPage.py file | annotate | diff | comparison | revisions
src/eric7/Preferences/ConfigurationPages/EditorSyntaxPage.ui file | annotate | diff | comparison | revisions
src/eric7/Preferences/__init__.py file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_cs.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_de.qm file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_de.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_empty.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_en.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_es.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_fr.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_it.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_pt.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_ru.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_tr.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_zh_CN.ts file | annotate | diff | comparison | revisions
--- a/docs/changelog.md	Sun Mar 19 16:16:28 2023 +0100
+++ b/docs/changelog.md	Mon Mar 20 10:43:29 2023 +0100
@@ -14,6 +14,9 @@
       boards.
     - Added a dialog to enter the parameters to convert a .hex or .bin firmware
       file to UF2.
+- Syntax Checker
+    - Added the capability to define names to be treated as builtin names by the
+      `pyflakes` checker (see configuration dialog `Editor` => `Code Checkers` page.
 - Third Party packages
     - Upgraded eradicate to version 2.2.0.
     - Upgraded pipdeptree to version 2.5.2.
--- a/src/eric7/APIs/Python3/eric7.api	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/APIs/Python3/eric7.api	Mon Mar 20 10:43:29 2023 +0100
@@ -4687,7 +4687,7 @@
 eric7.Plugins.CheckerPlugins.SyntaxChecker.pyCheckSyntax.initBatchService?4()
 eric7.Plugins.CheckerPlugins.SyntaxChecker.pyCheckSyntax.initService?4()
 eric7.Plugins.CheckerPlugins.SyntaxChecker.pyCheckSyntax.pySyntaxAndPyflakesBatchCheck?4(argumentsList, send, fx, cancelled, maxProcesses=0)
-eric7.Plugins.CheckerPlugins.SyntaxChecker.pyCheckSyntax.pySyntaxAndPyflakesCheck?4(filename, codestring, checkFlakes=True, ignoreStarImportWarnings=False)
+eric7.Plugins.CheckerPlugins.SyntaxChecker.pyCheckSyntax.pySyntaxAndPyflakesCheck?4(filename, codestring, checkFlakes=True, ignoreStarImportWarnings=False, additionalBuiltins=None, )
 eric7.Plugins.CheckerPlugins.SyntaxChecker.pyCheckSyntax.workerTask?4(inputQueue, outputQueue)
 eric7.Plugins.CheckerPlugins.SyntaxChecker.tomlCheckSyntax.initBatchService?4()
 eric7.Plugins.CheckerPlugins.SyntaxChecker.tomlCheckSyntax.initService?4()
Binary file src/eric7/Documentation/Help/source.qch has changed
--- a/src/eric7/Documentation/Source/eric7.Plugins.CheckerPlugins.SyntaxChecker.pyCheckSyntax.html	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/Documentation/Source/eric7.Plugins.CheckerPlugins.SyntaxChecker.pyCheckSyntax.html	Mon Mar 20 10:43:29 2023 +0100
@@ -58,7 +58,7 @@
 <hr />
 <a NAME="__pySyntaxAndPyflakesCheck" ID="__pySyntaxAndPyflakesCheck"></a>
 <h2>__pySyntaxAndPyflakesCheck</h2>
-<b>__pySyntaxAndPyflakesCheck</b>(<i>filename, codestring, checkFlakes=True, ignoreStarImportWarnings=False</i>)
+<b>__pySyntaxAndPyflakesCheck</b>(<i>filename, codestring, checkFlakes=True, ignoreStarImportWarnings=False, additionalBuiltins=None, </i>)
 
 <p>
     Function to compile one Python source file to Python bytecode
@@ -83,6 +83,10 @@
 flag indicating to
         ignore 'star import' warnings
 </dd>
+<dt><i>additionalBuiltins</i> (list of str)</dt>
+<dd>
+list of names pyflakes should consider as builtins
+</dd>
 </dl>
 <dl>
 <dt>Return:</dt>
@@ -223,7 +227,7 @@
 <hr />
 <a NAME="pySyntaxAndPyflakesCheck" ID="pySyntaxAndPyflakesCheck"></a>
 <h2>pySyntaxAndPyflakesCheck</h2>
-<b>pySyntaxAndPyflakesCheck</b>(<i>filename, codestring, checkFlakes=True, ignoreStarImportWarnings=False</i>)
+<b>pySyntaxAndPyflakesCheck</b>(<i>filename, codestring, checkFlakes=True, ignoreStarImportWarnings=False, additionalBuiltins=None, </i>)
 
 <p>
     Function to compile one Python source file to Python bytecode
@@ -247,6 +251,10 @@
 <dd>
 flag indicating to ignore 'star import' warnings
 </dd>
+<dt><i>additionalBuiltins</i> (list of str)</dt>
+<dd>
+list of names pyflakes should consider as builtins
+</dd>
 </dl>
 <dl>
 <dt>Return:</dt>
--- a/src/eric7/Plugins/CheckerPlugins/SyntaxChecker/pyCheckSyntax.py	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/Plugins/CheckerPlugins/SyntaxChecker/pyCheckSyntax.py	Mon Mar 20 10:43:29 2023 +0100
@@ -86,7 +86,11 @@
 
 
 def pySyntaxAndPyflakesCheck(
-    filename, codestring, checkFlakes=True, ignoreStarImportWarnings=False
+    filename,
+    codestring,
+    checkFlakes=True,
+    ignoreStarImportWarnings=False,
+    additionalBuiltins=None,
 ):
     """
     Function to compile one Python source file to Python bytecode
@@ -100,6 +104,8 @@
     @type bool
     @param ignoreStarImportWarnings flag indicating to ignore 'star import' warnings
     @type bool
+    @param additionalBuiltins list of names pyflakes should consider as builtins
+    @type list of str
     @return dictionary with the keys 'error' and 'warnings' which
             hold a list containing details about the error/warnings
             (file name, line number, column, codestring (only at syntax
@@ -107,7 +113,7 @@
     @rtype dict
     """
     return __pySyntaxAndPyflakesCheck(
-        filename, codestring, checkFlakes, ignoreStarImportWarnings
+        filename, codestring, checkFlakes, ignoreStarImportWarnings, additionalBuiltins
     )
 
 
@@ -201,15 +207,19 @@
     @type multiprocessing.Queue
     """
     for filename, args in iter(inputQueue.get, "STOP"):
-        source, checkFlakes, ignoreStarImportWarnings = args
+        source, checkFlakes, ignoreStarImportWarnings, additionalBuiltins = args
         result = __pySyntaxAndPyflakesCheck(
-            filename, source, checkFlakes, ignoreStarImportWarnings
+            filename, source, checkFlakes, ignoreStarImportWarnings, additionalBuiltins
         )
         outputQueue.put((filename, result))
 
 
 def __pySyntaxAndPyflakesCheck(
-    filename, codestring, checkFlakes=True, ignoreStarImportWarnings=False
+    filename,
+    codestring,
+    checkFlakes=True,
+    ignoreStarImportWarnings=False,
+    additionalBuiltins=None,
 ):
     """
     Function to compile one Python source file to Python bytecode
@@ -224,6 +234,8 @@
     @param ignoreStarImportWarnings flag indicating to
         ignore 'star import' warnings
     @type bool
+    @param additionalBuiltins list of names pyflakes should consider as builtins
+    @type list of str
     @return dictionary with the keys 'error' and 'warnings' which
             hold a list containing details about the error/ warnings
             (file name, line number, column, codestring (only at syntax
@@ -298,7 +310,9 @@
     results = []
     lines = codestring.splitlines()
     try:
-        warnings = Checker(module, filename, withDoctest=True)
+        warnings = Checker(
+            module, filename, builtins=additionalBuiltins, withDoctest=True
+        )
         warnings.messages.sort(key=lambda a: a.lineno)
         for warning in warnings.messages:
             if ignoreStarImportWarnings and isinstance(
--- a/src/eric7/Plugins/PluginSyntaxChecker.py	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/Plugins/PluginSyntaxChecker.py	Mon Mar 20 10:43:29 2023 +0100
@@ -155,7 +155,8 @@
         """
         checkFlakes = Preferences.getFlakes("IncludeInSyntaxCheck")
         ignoreStarImportWarnings = Preferences.getFlakes("IgnoreStarImportWarnings")
-        return checkFlakes, ignoreStarImportWarnings
+        additionalBuiltins = Preferences.getFlakes("AdditionalBuiltins")
+        return checkFlakes, ignoreStarImportWarnings, additionalBuiltins
 
     def __translateSyntaxCheck(self, fn, problems):
         """
--- a/src/eric7/Preferences/ConfigurationPages/EditorSyntaxPage.py	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/Preferences/ConfigurationPages/EditorSyntaxPage.py	Mon Mar 20 10:43:29 2023 +0100
@@ -40,6 +40,9 @@
         self.ignoreStarImportCheckBox.setChecked(
             Preferences.getFlakes("IgnoreStarImportWarnings")
         )
+        self.builtinsEdit.setPlainText(
+            " ".join(Preferences.getFlakes("AdditionalBuiltins"))
+        )
 
     def save(self):
         """
@@ -58,6 +61,9 @@
         Preferences.setFlakes(
             "IgnoreStarImportWarnings", self.ignoreStarImportCheckBox.isChecked()
         )
+        Preferences.setFlakes(
+            "AdditionalBuiltins", self.builtinsEdit.toPlainText().strip().split()
+        )
 
 
 def create(dlg):
--- a/src/eric7/Preferences/ConfigurationPages/EditorSyntaxPage.ui	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/Preferences/ConfigurationPages/EditorSyntaxPage.ui	Mon Mar 20 10:43:29 2023 +0100
@@ -6,14 +6,14 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>400</width>
-    <height>307</height>
+    <width>500</width>
+    <height>500</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string notr="true"/>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout_2">
+  <layout class="QVBoxLayout" name="verticalLayout_3">
    <item>
     <widget class="QLabel" name="headerLabel">
      <property name="text">
@@ -48,7 +48,7 @@
      <property name="checkable">
       <bool>true</bool>
      </property>
-     <layout class="QVBoxLayout" name="verticalLayout_3">
+     <layout class="QVBoxLayout" name="verticalLayout_2">
       <item>
        <widget class="QGroupBox" name="onlineCheckBox">
         <property name="toolTip">
@@ -135,6 +135,20 @@
            </property>
           </widget>
          </item>
+         <item>
+          <widget class="QLabel" name="label_2">
+           <property name="text">
+            <string>Additional 'builtins' Names:</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QPlainTextEdit" name="builtinsEdit">
+           <property name="toolTip">
+            <string>Enter additional 'builtins' names separated by whitespace.</string>
+           </property>
+          </widget>
+         </item>
         </layout>
        </widget>
       </item>
@@ -156,6 +170,14 @@
    </item>
   </layout>
  </widget>
+ <tabstops>
+  <tabstop>automaticSyntaxCheckCheckBox</tabstop>
+  <tabstop>onlineCheckBox</tabstop>
+  <tabstop>onlineTimeoutSpinBox</tabstop>
+  <tabstop>includeCheckBox</tabstop>
+  <tabstop>ignoreStarImportCheckBox</tabstop>
+  <tabstop>builtinsEdit</tabstop>
+ </tabstops>
  <resources/>
  <connections/>
 </ui>
--- a/src/eric7/Preferences/__init__.py	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/Preferences/__init__.py	Mon Mar 20 10:43:29 2023 +0100
@@ -1442,6 +1442,7 @@
     pyflakesDefaults = {
         "IncludeInSyntaxCheck": True,
         "IgnoreStarImportWarnings": True,
+        "AdditionalBuiltins": [],
     }
 
     # defaults for tray starter
@@ -3564,10 +3565,14 @@
     @param key the key of the value to get
     @return the requested user setting
     """
-    if key in ["IncludeInSyntaxCheck", "IgnoreStarImportWarnings"]:
+    if key in ("IncludeInSyntaxCheck", "IgnoreStarImportWarnings"):
         return toBool(
             Prefs.settings.value("Py3Flakes/" + key, Prefs.pyflakesDefaults[key])
         )
+    elif key in ("AdditionalBuiltins",):
+        return toList(
+            Prefs.settings.value("Py3Flakes/" + key, Prefs.pyflakesDefaults[key])
+        )
     else:
         return Prefs.settings.value("Py3Flakes/" + key, Prefs.pyflakesDefaults[key])
 
--- a/src/eric7/i18n/eric7_cs.ts	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/i18n/eric7_cs.ts	Mon Mar 20 10:43:29 2023 +0100
@@ -17522,6 +17522,16 @@
       <source>Suppress star import warnings</source>
       <translation type="unfinished">Potlačit varovné hvězdy importu</translation>
     </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Additional 'builtins' Names:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Enter additional 'builtins' names separated by whitespace.</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EditorTypingPage</name>
@@ -49922,18 +49932,18 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="266" />
+      <location filename="../MicroPython/Devices/__init__.py" line="267" />
       <source>Generic MicroPython Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="306" />
+      <location filename="../MicroPython/Devices/__init__.py" line="307" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="454" />
-      <location filename="../MicroPython/Devices/__init__.py" line="443" />
+      <location filename="../MicroPython/Devices/__init__.py" line="459" />
+      <location filename="../MicroPython/Devices/__init__.py" line="448" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
@@ -58577,18 +58587,18 @@
   <context>
     <name>Preferences</name>
     <message>
-      <location filename="../Preferences/__init__.py" line="1808" />
+      <location filename="../Preferences/__init__.py" line="1809" />
       <source>Export Preferences</source>
       <translation>Předvolby exportu</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1837" />
-      <location filename="../Preferences/__init__.py" line="1810" />
+      <location filename="../Preferences/__init__.py" line="1838" />
+      <location filename="../Preferences/__init__.py" line="1811" />
       <source>Properties File (*.ini);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1835" />
+      <location filename="../Preferences/__init__.py" line="1836" />
       <source>Import Preferences</source>
       <translation>Předvolby importu</translation>
     </message>
@@ -81890,28 +81900,28 @@
   <context>
     <name>SyntaxCheckerPlugin</name>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="196" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
       <source>Check Syntax</source>
       <translation>Kontrola syntaxe</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="198" />
       <source>&amp;Syntax...</source>
       <translation>&amp;Syntaxe...</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="203" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="204" />
       <source>Check syntax.</source>
       <translation>Kontrola syntaxe.</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="300" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="218" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="205" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="301" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="219" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="206" />
       <source>&lt;b&gt;Check Syntax...&lt;/b&gt;&lt;p&gt;This checks Python files for syntax errors.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Kontrola Syntaxe...&lt;/b&gt;&lt;p&gt;Zkontroluje všechny Python soubory na syntaktické chyby.&lt;/p&gt;</translation>
     </message>
Binary file src/eric7/i18n/eric7_de.qm has changed
--- a/src/eric7/i18n/eric7_de.ts	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/i18n/eric7_de.ts	Mon Mar 20 10:43:29 2023 +0100
@@ -17437,6 +17437,16 @@
       <source>Suppress star import warnings</source>
       <translation>Stern-Import-Warnungen unterdrücken</translation>
     </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Additional 'builtins' Names:</source>
+      <translation>Zusätzliche 'builtins' Bezeichner:</translation>
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Enter additional 'builtins' names separated by whitespace.</source>
+      <translation>Gib zusätzliche 'builtins' Bezeichner durch Leerzeichen getrennt ein.</translation>
+    </message>
   </context>
   <context>
     <name>EditorTypingPage</name>
@@ -49801,18 +49811,18 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="266" />
+      <location filename="../MicroPython/Devices/__init__.py" line="267" />
       <source>Generic MicroPython Board</source>
       <translation>Generisches MicroPython Board</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="306" />
+      <location filename="../MicroPython/Devices/__init__.py" line="307" />
       <source>RP2040 based</source>
       <translation>RP2040 basiert</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="454" />
-      <location filename="../MicroPython/Devices/__init__.py" line="443" />
+      <location filename="../MicroPython/Devices/__init__.py" line="459" />
+      <location filename="../MicroPython/Devices/__init__.py" line="448" />
       <source>Unknown Device</source>
       <translation>Unbekanntes Gerät</translation>
     </message>
@@ -58468,18 +58478,18 @@
   <context>
     <name>Preferences</name>
     <message>
-      <location filename="../Preferences/__init__.py" line="1808" />
+      <location filename="../Preferences/__init__.py" line="1809" />
       <source>Export Preferences</source>
       <translation>Einstellungen exportieren</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1837" />
-      <location filename="../Preferences/__init__.py" line="1810" />
+      <location filename="../Preferences/__init__.py" line="1838" />
+      <location filename="../Preferences/__init__.py" line="1811" />
       <source>Properties File (*.ini);;All Files (*)</source>
       <translation>Properties-Dateien (*.ini);;Alle Dateien (*)</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1835" />
+      <location filename="../Preferences/__init__.py" line="1836" />
       <source>Import Preferences</source>
       <translation>Einstellungen importieren</translation>
     </message>
@@ -81674,28 +81684,28 @@
   <context>
     <name>SyntaxCheckerPlugin</name>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="196" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
       <source>Check Syntax</source>
       <translation>Syntax prüfen</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="198" />
       <source>&amp;Syntax...</source>
       <translation>&amp;Syntax...</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="203" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="204" />
       <source>Check syntax.</source>
       <translation>Syntax prüfen.</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="300" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="218" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="205" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="301" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="219" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="206" />
       <source>&lt;b&gt;Check Syntax...&lt;/b&gt;&lt;p&gt;This checks Python files for syntax errors.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Syntax prüfen...&lt;/b&gt;&lt;p&gt;Dies überprüft Python-Dateien auf Syntaxfehler.&lt;/p&gt;</translation>
     </message>
--- a/src/eric7/i18n/eric7_empty.ts	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/i18n/eric7_empty.ts	Mon Mar 20 10:43:29 2023 +0100
@@ -17344,6 +17344,16 @@
       <source>Suppress star import warnings</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Additional 'builtins' Names:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Enter additional 'builtins' names separated by whitespace.</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EditorTypingPage</name>
@@ -49564,18 +49574,18 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="266" />
+      <location filename="../MicroPython/Devices/__init__.py" line="267" />
       <source>Generic MicroPython Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="306" />
+      <location filename="../MicroPython/Devices/__init__.py" line="307" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="454" />
-      <location filename="../MicroPython/Devices/__init__.py" line="443" />
+      <location filename="../MicroPython/Devices/__init__.py" line="459" />
+      <location filename="../MicroPython/Devices/__init__.py" line="448" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
@@ -58206,18 +58216,18 @@
   <context>
     <name>Preferences</name>
     <message>
-      <location filename="../Preferences/__init__.py" line="1808" />
+      <location filename="../Preferences/__init__.py" line="1809" />
       <source>Export Preferences</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1837" />
-      <location filename="../Preferences/__init__.py" line="1810" />
+      <location filename="../Preferences/__init__.py" line="1838" />
+      <location filename="../Preferences/__init__.py" line="1811" />
       <source>Properties File (*.ini);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1835" />
+      <location filename="../Preferences/__init__.py" line="1836" />
       <source>Import Preferences</source>
       <translation type="unfinished" />
     </message>
@@ -81121,28 +81131,28 @@
   <context>
     <name>SyntaxCheckerPlugin</name>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="196" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
       <source>Check Syntax</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="198" />
       <source>&amp;Syntax...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="203" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="204" />
       <source>Check syntax.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="300" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="218" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="205" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="301" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="219" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="206" />
       <source>&lt;b&gt;Check Syntax...&lt;/b&gt;&lt;p&gt;This checks Python files for syntax errors.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_en.ts	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/i18n/eric7_en.ts	Mon Mar 20 10:43:29 2023 +0100
@@ -17360,6 +17360,16 @@
       <source>Suppress star import warnings</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Additional 'builtins' Names:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Enter additional 'builtins' names separated by whitespace.</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EditorTypingPage</name>
@@ -49606,18 +49616,18 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="266" />
+      <location filename="../MicroPython/Devices/__init__.py" line="267" />
       <source>Generic MicroPython Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="306" />
+      <location filename="../MicroPython/Devices/__init__.py" line="307" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="454" />
-      <location filename="../MicroPython/Devices/__init__.py" line="443" />
+      <location filename="../MicroPython/Devices/__init__.py" line="459" />
+      <location filename="../MicroPython/Devices/__init__.py" line="448" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
@@ -58255,18 +58265,18 @@
   <context>
     <name>Preferences</name>
     <message>
-      <location filename="../Preferences/__init__.py" line="1808" />
+      <location filename="../Preferences/__init__.py" line="1809" />
       <source>Export Preferences</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1837" />
-      <location filename="../Preferences/__init__.py" line="1810" />
+      <location filename="../Preferences/__init__.py" line="1838" />
+      <location filename="../Preferences/__init__.py" line="1811" />
       <source>Properties File (*.ini);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1835" />
+      <location filename="../Preferences/__init__.py" line="1836" />
       <source>Import Preferences</source>
       <translation type="unfinished" />
     </message>
@@ -81173,28 +81183,28 @@
   <context>
     <name>SyntaxCheckerPlugin</name>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="196" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
       <source>Check Syntax</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="198" />
       <source>&amp;Syntax...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="203" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="204" />
       <source>Check syntax.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="300" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="218" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="205" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="301" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="219" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="206" />
       <source>&lt;b&gt;Check Syntax...&lt;/b&gt;&lt;p&gt;This checks Python files for syntax errors.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_es.ts	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/i18n/eric7_es.ts	Mon Mar 20 10:43:29 2023 +0100
@@ -17458,6 +17458,16 @@
       <source>Suppress star import warnings</source>
       <translation>Suprimir advertencias de import asterisco ('import *')</translation>
     </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Additional 'builtins' Names:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Enter additional 'builtins' names separated by whitespace.</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EditorTypingPage</name>
@@ -49823,18 +49833,18 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="266" />
+      <location filename="../MicroPython/Devices/__init__.py" line="267" />
       <source>Generic MicroPython Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="306" />
+      <location filename="../MicroPython/Devices/__init__.py" line="307" />
       <source>RP2040 based</source>
       <translation>Basada en RP2040</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="454" />
-      <location filename="../MicroPython/Devices/__init__.py" line="443" />
+      <location filename="../MicroPython/Devices/__init__.py" line="459" />
+      <location filename="../MicroPython/Devices/__init__.py" line="448" />
       <source>Unknown Device</source>
       <translation>Dispositivo Desconocido</translation>
     </message>
@@ -58508,18 +58518,18 @@
   <context>
     <name>Preferences</name>
     <message>
-      <location filename="../Preferences/__init__.py" line="1808" />
+      <location filename="../Preferences/__init__.py" line="1809" />
       <source>Export Preferences</source>
       <translation>Exportar Preferencias</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1837" />
-      <location filename="../Preferences/__init__.py" line="1810" />
+      <location filename="../Preferences/__init__.py" line="1838" />
+      <location filename="../Preferences/__init__.py" line="1811" />
       <source>Properties File (*.ini);;All Files (*)</source>
       <translation>Archivo de Propiedades (*.ini);;Todos los archivos (*)</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1835" />
+      <location filename="../Preferences/__init__.py" line="1836" />
       <source>Import Preferences</source>
       <translation>Importar Preferencias</translation>
     </message>
@@ -81688,28 +81698,28 @@
   <context>
     <name>SyntaxCheckerPlugin</name>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="196" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
       <source>Check Syntax</source>
       <translation>Verificar sintaxis</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="198" />
       <source>&amp;Syntax...</source>
       <translation>&amp;Sintaxis...</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="203" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="204" />
       <source>Check syntax.</source>
       <translation>Verificar sintaxis.</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="300" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="218" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="205" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="301" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="219" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="206" />
       <source>&lt;b&gt;Check Syntax...&lt;/b&gt;&lt;p&gt;This checks Python files for syntax errors.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Verificar Sintaxis...&lt;/b&gt;&lt;p&gt;Chequea archivos de Python buscando errores sintácticos.&lt;/p&gt;</translation>
     </message>
--- a/src/eric7/i18n/eric7_fr.ts	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/i18n/eric7_fr.ts	Mon Mar 20 10:43:29 2023 +0100
@@ -17598,6 +17598,16 @@
       <source>Suppress star import warnings</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Additional 'builtins' Names:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Enter additional 'builtins' names separated by whitespace.</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EditorTypingPage</name>
@@ -50053,18 +50063,18 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="266" />
+      <location filename="../MicroPython/Devices/__init__.py" line="267" />
       <source>Generic MicroPython Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="306" />
+      <location filename="../MicroPython/Devices/__init__.py" line="307" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="454" />
-      <location filename="../MicroPython/Devices/__init__.py" line="443" />
+      <location filename="../MicroPython/Devices/__init__.py" line="459" />
+      <location filename="../MicroPython/Devices/__init__.py" line="448" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
@@ -58783,18 +58793,18 @@
   <context>
     <name>Preferences</name>
     <message>
-      <location filename="../Preferences/__init__.py" line="1808" />
+      <location filename="../Preferences/__init__.py" line="1809" />
       <source>Export Preferences</source>
       <translation>Export des préférences</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1837" />
-      <location filename="../Preferences/__init__.py" line="1810" />
+      <location filename="../Preferences/__init__.py" line="1838" />
+      <location filename="../Preferences/__init__.py" line="1811" />
       <source>Properties File (*.ini);;All Files (*)</source>
       <translation>Fichier propriétés (*.ini);;Tous les fichiers (*)</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1835" />
+      <location filename="../Preferences/__init__.py" line="1836" />
       <source>Import Preferences</source>
       <translation>Import des préférences</translation>
     </message>
@@ -82225,28 +82235,28 @@
   <context>
     <name>SyntaxCheckerPlugin</name>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="196" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
       <source>Check Syntax</source>
       <translation>Vérification de la syntaxe</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="198" />
       <source>&amp;Syntax...</source>
       <translation>&amp;Syntaxe...</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="203" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="204" />
       <source>Check syntax.</source>
       <translation>Vérification de la syntaxe.</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="300" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="218" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="205" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="301" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="219" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="206" />
       <source>&lt;b&gt;Check Syntax...&lt;/b&gt;&lt;p&gt;This checks Python files for syntax errors.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Vérification de la syntaxe...&lt;/b&gt;&lt;p&gt;Vérifie les erreurs de syntaxe des fichiers Python.&lt;/p&gt;</translation>
     </message>
--- a/src/eric7/i18n/eric7_it.ts	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/i18n/eric7_it.ts	Mon Mar 20 10:43:29 2023 +0100
@@ -17557,6 +17557,16 @@
       <source>Suppress star import warnings</source>
       <translation>Elimina i controlli su import asterisco</translation>
     </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Additional 'builtins' Names:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Enter additional 'builtins' names separated by whitespace.</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EditorTypingPage</name>
@@ -49972,18 +49982,18 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="266" />
+      <location filename="../MicroPython/Devices/__init__.py" line="267" />
       <source>Generic MicroPython Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="306" />
+      <location filename="../MicroPython/Devices/__init__.py" line="307" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="454" />
-      <location filename="../MicroPython/Devices/__init__.py" line="443" />
+      <location filename="../MicroPython/Devices/__init__.py" line="459" />
+      <location filename="../MicroPython/Devices/__init__.py" line="448" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
@@ -58629,18 +58639,18 @@
   <context>
     <name>Preferences</name>
     <message>
-      <location filename="../Preferences/__init__.py" line="1808" />
+      <location filename="../Preferences/__init__.py" line="1809" />
       <source>Export Preferences</source>
       <translation>Esporta Preferenze</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1837" />
-      <location filename="../Preferences/__init__.py" line="1810" />
+      <location filename="../Preferences/__init__.py" line="1838" />
+      <location filename="../Preferences/__init__.py" line="1811" />
       <source>Properties File (*.ini);;All Files (*)</source>
       <translation>File proprietà (*.ini);;Tutti i file(*)</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1835" />
+      <location filename="../Preferences/__init__.py" line="1836" />
       <source>Import Preferences</source>
       <translation>Importa Preferenze</translation>
     </message>
@@ -81981,28 +81991,28 @@
   <context>
     <name>SyntaxCheckerPlugin</name>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="196" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
       <source>Check Syntax</source>
       <translation>Controlla sintassi</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="198" />
       <source>&amp;Syntax...</source>
       <translation>&amp;Sintassi...</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="203" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="204" />
       <source>Check syntax.</source>
       <translation>Controlla sintassi.</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="300" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="218" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="205" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="301" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="219" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="206" />
       <source>&lt;b&gt;Check Syntax...&lt;/b&gt;&lt;p&gt;This checks Python files for syntax errors.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Controlla sintassi...&lt;/b&gt;&lt;p&gt;Controlla i file Python per errori di sintassi.&lt;/p&gt;</translation>
     </message>
--- a/src/eric7/i18n/eric7_pt.ts	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/i18n/eric7_pt.ts	Mon Mar 20 10:43:29 2023 +0100
@@ -17576,6 +17576,16 @@
       <source>Suppress star import warnings</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Additional 'builtins' Names:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Enter additional 'builtins' names separated by whitespace.</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EditorTypingPage</name>
@@ -49966,18 +49976,18 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="266" />
+      <location filename="../MicroPython/Devices/__init__.py" line="267" />
       <source>Generic MicroPython Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="306" />
+      <location filename="../MicroPython/Devices/__init__.py" line="307" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="454" />
-      <location filename="../MicroPython/Devices/__init__.py" line="443" />
+      <location filename="../MicroPython/Devices/__init__.py" line="459" />
+      <location filename="../MicroPython/Devices/__init__.py" line="448" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
@@ -58627,18 +58637,18 @@
   <context>
     <name>Preferences</name>
     <message>
-      <location filename="../Preferences/__init__.py" line="1808" />
+      <location filename="../Preferences/__init__.py" line="1809" />
       <source>Export Preferences</source>
       <translation>Exportar Preferências</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1837" />
-      <location filename="../Preferences/__init__.py" line="1810" />
+      <location filename="../Preferences/__init__.py" line="1838" />
+      <location filename="../Preferences/__init__.py" line="1811" />
       <source>Properties File (*.ini);;All Files (*)</source>
       <translation>Ficheiro de Propriedades (*.ini);;Ficheiros Todos (*)</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1835" />
+      <location filename="../Preferences/__init__.py" line="1836" />
       <source>Import Preferences</source>
       <translation>Importar Preferências</translation>
     </message>
@@ -81791,28 +81801,28 @@
   <context>
     <name>SyntaxCheckerPlugin</name>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="196" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
       <source>Check Syntax</source>
       <translation>Verificar Sintaxe</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="198" />
       <source>&amp;Syntax...</source>
       <translation>&amp;Sintaxe...</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="203" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="204" />
       <source>Check syntax.</source>
       <translation>Verificar sintaxe.</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="300" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="218" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="205" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="301" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="219" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="206" />
       <source>&lt;b&gt;Check Syntax...&lt;/b&gt;&lt;p&gt;This checks Python files for syntax errors.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Verificar Sintaxe...&lt;/b&gt;&lt;b&gt;Verifica erros de  sintaxe nos ficheiros Python.&lt;/p&gt;</translation>
     </message>
--- a/src/eric7/i18n/eric7_ru.ts	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/i18n/eric7_ru.ts	Mon Mar 20 10:43:29 2023 +0100
@@ -17496,6 +17496,16 @@
       <source>Suppress star import warnings</source>
       <translation>Подавлять предупреждения об 'import *'</translation>
     </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Additional 'builtins' Names:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Enter additional 'builtins' names separated by whitespace.</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EditorTypingPage</name>
@@ -49890,18 +49900,18 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="266" />
+      <location filename="../MicroPython/Devices/__init__.py" line="267" />
       <source>Generic MicroPython Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="306" />
+      <location filename="../MicroPython/Devices/__init__.py" line="307" />
       <source>RP2040 based</source>
       <translation>На базе RP2040</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="454" />
-      <location filename="../MicroPython/Devices/__init__.py" line="443" />
+      <location filename="../MicroPython/Devices/__init__.py" line="459" />
+      <location filename="../MicroPython/Devices/__init__.py" line="448" />
       <source>Unknown Device</source>
       <translation>Неизвестное устройство</translation>
     </message>
@@ -58599,18 +58609,18 @@
   <context>
     <name>Preferences</name>
     <message>
-      <location filename="../Preferences/__init__.py" line="1808" />
+      <location filename="../Preferences/__init__.py" line="1809" />
       <source>Export Preferences</source>
       <translation>Экспорт Preferences</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1837" />
-      <location filename="../Preferences/__init__.py" line="1810" />
+      <location filename="../Preferences/__init__.py" line="1838" />
+      <location filename="../Preferences/__init__.py" line="1811" />
       <source>Properties File (*.ini);;All Files (*)</source>
       <translation>Файлы Preferences (*.ini);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1835" />
+      <location filename="../Preferences/__init__.py" line="1836" />
       <source>Import Preferences</source>
       <translation>Импорт Preferences</translation>
     </message>
@@ -81858,28 +81868,28 @@
   <context>
     <name>SyntaxCheckerPlugin</name>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="196" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
       <source>Check Syntax</source>
       <translation>Проверить синтаксис</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="198" />
       <source>&amp;Syntax...</source>
       <translation>&amp;Синтаксис...</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="203" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="204" />
       <source>Check syntax.</source>
       <translation>Проверить синтаксис.</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="300" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="218" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="205" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="301" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="219" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="206" />
       <source>&lt;b&gt;Check Syntax...&lt;/b&gt;&lt;p&gt;This checks Python files for syntax errors.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Проверить синтаксис...&lt;/b&gt;&lt;p&gt;Проверка файлов Python на синтаксические ошибки.&lt;/p&gt;</translation>
     </message>
--- a/src/eric7/i18n/eric7_tr.ts	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/i18n/eric7_tr.ts	Mon Mar 20 10:43:29 2023 +0100
@@ -17513,6 +17513,16 @@
       <source>Suppress star import warnings</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Additional 'builtins' Names:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Enter additional 'builtins' names separated by whitespace.</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EditorTypingPage</name>
@@ -49909,18 +49919,18 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="266" />
+      <location filename="../MicroPython/Devices/__init__.py" line="267" />
       <source>Generic MicroPython Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="306" />
+      <location filename="../MicroPython/Devices/__init__.py" line="307" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="454" />
-      <location filename="../MicroPython/Devices/__init__.py" line="443" />
+      <location filename="../MicroPython/Devices/__init__.py" line="459" />
+      <location filename="../MicroPython/Devices/__init__.py" line="448" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
@@ -58560,18 +58570,18 @@
   <context>
     <name>Preferences</name>
     <message>
-      <location filename="../Preferences/__init__.py" line="1808" />
+      <location filename="../Preferences/__init__.py" line="1809" />
       <source>Export Preferences</source>
       <translation>Seçenekleri Dışa Aktar</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1837" />
-      <location filename="../Preferences/__init__.py" line="1810" />
+      <location filename="../Preferences/__init__.py" line="1838" />
+      <location filename="../Preferences/__init__.py" line="1811" />
       <source>Properties File (*.ini);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1835" />
+      <location filename="../Preferences/__init__.py" line="1836" />
       <source>Import Preferences</source>
       <translation>Seçenekleri İçe Aktar</translation>
     </message>
@@ -81779,28 +81789,28 @@
   <context>
     <name>SyntaxCheckerPlugin</name>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="196" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
       <source>Check Syntax</source>
       <translation>Sözdizimi Kontrolü</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="198" />
       <source>&amp;Syntax...</source>
       <translation>&amp;Sözdizimi...</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="203" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="204" />
       <source>Check syntax.</source>
       <translation>Sözdizimini kontrol et.</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="300" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="218" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="205" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="301" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="219" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="206" />
       <source>&lt;b&gt;Check Syntax...&lt;/b&gt;&lt;p&gt;This checks Python files for syntax errors.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Sözdizimini Kontrol Et...&lt;/b&gt;&lt;p&gt;Bu kontrol Python dosyalarını sözdizimi hatalarına karşı yapılır.&lt;/p&gt;</translation>
     </message>
--- a/src/eric7/i18n/eric7_zh_CN.ts	Sun Mar 19 16:16:28 2023 +0100
+++ b/src/eric7/i18n/eric7_zh_CN.ts	Mon Mar 20 10:43:29 2023 +0100
@@ -17582,6 +17582,16 @@
       <source>Suppress star import warnings</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Additional 'builtins' Names:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/EditorSyntaxPage.ui" line="0" />
+      <source>Enter additional 'builtins' names separated by whitespace.</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EditorTypingPage</name>
@@ -49944,18 +49954,18 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="266" />
+      <location filename="../MicroPython/Devices/__init__.py" line="267" />
       <source>Generic MicroPython Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="306" />
+      <location filename="../MicroPython/Devices/__init__.py" line="307" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/__init__.py" line="454" />
-      <location filename="../MicroPython/Devices/__init__.py" line="443" />
+      <location filename="../MicroPython/Devices/__init__.py" line="459" />
+      <location filename="../MicroPython/Devices/__init__.py" line="448" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
@@ -58614,18 +58624,18 @@
   <context>
     <name>Preferences</name>
     <message>
-      <location filename="../Preferences/__init__.py" line="1808" />
+      <location filename="../Preferences/__init__.py" line="1809" />
       <source>Export Preferences</source>
       <translation>导出首选项</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1837" />
-      <location filename="../Preferences/__init__.py" line="1810" />
+      <location filename="../Preferences/__init__.py" line="1838" />
+      <location filename="../Preferences/__init__.py" line="1811" />
       <source>Properties File (*.ini);;All Files (*)</source>
       <translation>属性文件 (*.ini);;所有文件 (*)</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1835" />
+      <location filename="../Preferences/__init__.py" line="1836" />
       <source>Import Preferences</source>
       <translation>导入首选项</translation>
     </message>
@@ -81993,28 +82003,28 @@
   <context>
     <name>SyntaxCheckerPlugin</name>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="196" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
       <source>Check Syntax</source>
       <translation>检查语法</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="297" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="215" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="197" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="298" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="216" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="198" />
       <source>&amp;Syntax...</source>
       <translation>语法(&amp;S)…</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="203" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="204" />
       <source>Check syntax.</source>
       <translation>检查语法。</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="300" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="218" />
-      <location filename="../Plugins/PluginSyntaxChecker.py" line="205" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="301" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="219" />
+      <location filename="../Plugins/PluginSyntaxChecker.py" line="206" />
       <source>&lt;b&gt;Check Syntax...&lt;/b&gt;&lt;p&gt;This checks Python files for syntax errors.&lt;/p&gt;</source>
       <translation>&lt;b&gt;检查语法…&lt;/b&gt;&lt;p&gt;检查 Python 文件的语法错误。&lt;/p&gt;</translation>
     </message>

eric ide

mercurial