Code Formatting eric7

Wed, 21 Sep 2022 10:38:52 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 21 Sep 2022 10:38:52 +0200
branch
eric7
changeset 9344
52990830b13f
parent 9343
7180fb8677e5
child 9345
58a1e7c960b8
child 9348
f61d71d95cb1

Code Formatting
- added the capability to format the source code after a diff or check
run from within the results dialog

docs/changelog file | annotate | diff | comparison | revisions
src/eric7/CodeFormatting/BlackFormattingDialog.py file | annotate | diff | comparison | revisions
src/eric7/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
src/eric7/Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.CodeFormatting.BlackFormattingDialog.html 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	Tue Sep 20 18:33:03 2022 +0200
+++ b/docs/changelog	Wed Sep 21 10:38:52 2022 +0200
@@ -4,6 +4,8 @@
 - bug fixes
 - Code Formatting
   -- added a Project menu entry to just configure the formatting parameters
+  -- added the capability to format the source code after a diff or check
+     run from within the results dialog
 - Code Style Checker
   -- added some more security related checks
   -- extended the list of miscellaneous checks
--- a/src/eric7/CodeFormatting/BlackFormattingDialog.py	Tue Sep 20 18:33:03 2022 +0200
+++ b/src/eric7/CodeFormatting/BlackFormattingDialog.py	Wed Sep 21 10:38:52 2022 +0200
@@ -74,32 +74,48 @@
         self.setupUi(self)
 
         self.progressBar.setMaximum(len(filesList))
-        self.progressBar.setValue(0)
 
         self.resultsList.header().setSortIndicator(1, Qt.SortOrder.AscendingOrder)
 
-        self.statisticsGroup.setVisible(False)
-
-        self.__statistics = BlackStatistics()
-
         self.__config = copy.deepcopy(configuration)
         self.__config["__action__"] = action  # needed by the workers
         self.__project = project
-        self.__action = action
 
-        self.__cancelled = False
+        self.__filesList = filesList[:]
+
         self.__diffDialog = None
 
         self.__allFilter = self.tr("<all>")
 
+        self.__formatButton = self.buttonBox.addButton(
+            self.tr("Format Code"), QDialogButtonBox.ButtonRole.ActionRole
+        )
+        self.__formatButton.setVisible(False)
+
+        self.show()
+        QCoreApplication.processEvents()
+
+        self.__performAction()
+
+    def __performAction(self):
+        """
+        Private method to exceute the requested formatting action.
+        """
+        self.progressBar.setValue(0)
+
+        self.statisticsGroup.setVisible(False)
+        self.__statistics = BlackStatistics()
+
+        self.__cancelled = False
+
+        self.statusFilterComboBox.clear()
+        self.resultsList.clear()
+
         self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setEnabled(True)
         self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(False)
         self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setDefault(True)
 
-        self.show()
-        QCoreApplication.processEvents()
-
-        files = self.__filterFiles(filesList)
+        files = self.__filterFiles(self.__filesList)
         if len(files) > 1:
             self.__formatManyFiles(files)
         elif len(files) == 1:
@@ -182,6 +198,11 @@
 
         self.progressBar.setVisible(False)
 
+        self.__formatButton.setVisible(
+            self.__config["__action__"] is not BlackFormattingAction.Format
+            and self.__statistics.changeCount > 0
+        )
+
         self.__updateStatistics()
         self.__populateStatusFilterCombo()
 
@@ -192,7 +213,7 @@
         """
         self.reformattedLabel.setText(
             self.tr("Reformatted:")
-            if self.__action is BlackFormattingAction.Format
+            if self.__config["__action__"] is BlackFormattingAction.Format
             else self.tr("Would Reformat:")
         )
 
@@ -223,6 +244,17 @@
             self.__cancelled = True
         elif button == self.buttonBox.button(QDialogButtonBox.StandardButton.Close):
             self.accept()
+        elif button is self.__formatButton:
+            self.__formatButtonClicked()
+
+    @pyqtSlot()
+    def __formatButtonClicked(self):
+        """
+        Private slot handling the selection of the 'Format Code' button.
+        """
+        self.__config["__action__"] = BlackFormattingAction.Format
+
+        self.__performAction()
 
     @pyqtSlot(QTreeWidgetItem, int)
     def on_resultsList_itemDoubleClicked(self, item, column):
@@ -313,11 +345,15 @@
             taskQueue.put("STOP")
 
         for worker in workers:
-            worker.join()
+            worker.join(2)  # 2 seconds timeout just in case
+            # TODO: monitor this change
+            if worker.exitcode is None:
+                worker.terminate()
             worker.close()
 
         taskQueue.close()
-        doneQueue.close()
+        ##        doneQueue.close()
+        # TODO: monitor this change
 
         self.__finish()
 
@@ -407,7 +443,7 @@
             magic_trailing_comma=not self.__config["skip-magic-trailing-comma"],
         )
 
-        if self.__action is BlackFormattingAction.Diff:
+        if self.__config["__action__"] is BlackFormattingAction.Diff:
             relSrc = self.__project.getRelativePath(str(file)) if self.__project else ""
             self.__diffFormatFile(
                 pathlib.Path(file), fast=False, mode=mode, report=report, relSrc=relSrc
@@ -501,7 +537,7 @@
         if status == "changed":
             statusMsg = (
                 self.tr("would reformat")
-                if self.__action
+                if self.__config["__action__"]
                 in (BlackFormattingAction.Check, BlackFormattingAction.Diff)
                 else self.tr("reformatted")
             )
Binary file src/eric7/Documentation/Help/source.qch has changed
--- a/src/eric7/Documentation/Help/source.qhp	Tue Sep 20 18:33:03 2022 +0200
+++ b/src/eric7/Documentation/Help/source.qhp	Wed Sep 21 10:38:52 2022 +0200
@@ -2071,9 +2071,11 @@
       <keyword name="BlackFormattingDialog.__diffFormatFile" id="BlackFormattingDialog.__diffFormatFile" ref="eric7.CodeFormatting.BlackFormattingDialog.html#BlackFormattingDialog.__diffFormatFile" />
       <keyword name="BlackFormattingDialog.__filterFiles" id="BlackFormattingDialog.__filterFiles" ref="eric7.CodeFormatting.BlackFormattingDialog.html#BlackFormattingDialog.__filterFiles" />
       <keyword name="BlackFormattingDialog.__finish" id="BlackFormattingDialog.__finish" ref="eric7.CodeFormatting.BlackFormattingDialog.html#BlackFormattingDialog.__finish" />
+      <keyword name="BlackFormattingDialog.__formatButtonClicked" id="BlackFormattingDialog.__formatButtonClicked" ref="eric7.CodeFormatting.BlackFormattingDialog.html#BlackFormattingDialog.__formatButtonClicked" />
       <keyword name="BlackFormattingDialog.__formatManyFiles" id="BlackFormattingDialog.__formatManyFiles" ref="eric7.CodeFormatting.BlackFormattingDialog.html#BlackFormattingDialog.__formatManyFiles" />
       <keyword name="BlackFormattingDialog.__formatOneFile" id="BlackFormattingDialog.__formatOneFile" ref="eric7.CodeFormatting.BlackFormattingDialog.html#BlackFormattingDialog.__formatOneFile" />
       <keyword name="BlackFormattingDialog.__handleBlackFormattingResult" id="BlackFormattingDialog.__handleBlackFormattingResult" ref="eric7.CodeFormatting.BlackFormattingDialog.html#BlackFormattingDialog.__handleBlackFormattingResult" />
+      <keyword name="BlackFormattingDialog.__performAction" id="BlackFormattingDialog.__performAction" ref="eric7.CodeFormatting.BlackFormattingDialog.html#BlackFormattingDialog.__performAction" />
       <keyword name="BlackFormattingDialog.__populateStatusFilterCombo" id="BlackFormattingDialog.__populateStatusFilterCombo" ref="eric7.CodeFormatting.BlackFormattingDialog.html#BlackFormattingDialog.__populateStatusFilterCombo" />
       <keyword name="BlackFormattingDialog.__resizeColumns" id="BlackFormattingDialog.__resizeColumns" ref="eric7.CodeFormatting.BlackFormattingDialog.html#BlackFormattingDialog.__resizeColumns" />
       <keyword name="BlackFormattingDialog.__resort" id="BlackFormattingDialog.__resort" ref="eric7.CodeFormatting.BlackFormattingDialog.html#BlackFormattingDialog.__resort" />
--- a/src/eric7/Documentation/Source/eric7.CodeFormatting.BlackFormattingDialog.html	Tue Sep 20 18:33:03 2022 +0200
+++ b/src/eric7/Documentation/Source/eric7.CodeFormatting.BlackFormattingDialog.html	Wed Sep 21 10:38:52 2022 +0200
@@ -83,6 +83,10 @@
 <td>Private method to perform some actions after the run was performed or canceled.</td>
 </tr>
 <tr>
+<td><a href="#BlackFormattingDialog.__formatButtonClicked">__formatButtonClicked</a></td>
+<td>Private slot handling the selection of the 'Format Code' button.</td>
+</tr>
+<tr>
 <td><a href="#BlackFormattingDialog.__formatManyFiles">__formatManyFiles</a></td>
 <td>Private method to format the list of files according the configuration using multiple processes in parallel.</td>
 </tr>
@@ -95,6 +99,10 @@
 <td>Private slot to handle the result of a black reformatting action.</td>
 </tr>
 <tr>
+<td><a href="#BlackFormattingDialog.__performAction">__performAction</a></td>
+<td>Private method to exceute the requested formatting action.</td>
+</tr>
+<tr>
 <td><a href="#BlackFormattingDialog.__populateStatusFilterCombo">__populateStatusFilterCombo</a></td>
 <td>Private method to populate the status filter combo box with allowed selections.</td>
 </tr>
@@ -205,6 +213,13 @@
 <p>
         Private method to perform some actions after the run was performed or canceled.
 </p>
+<a NAME="BlackFormattingDialog.__formatButtonClicked" ID="BlackFormattingDialog.__formatButtonClicked"></a>
+<h4>BlackFormattingDialog.__formatButtonClicked</h4>
+<b>__formatButtonClicked</b>(<i></i>)
+
+<p>
+        Private slot handling the selection of the 'Format Code' button.
+</p>
 <a NAME="BlackFormattingDialog.__formatManyFiles" ID="BlackFormattingDialog.__formatManyFiles"></a>
 <h4>BlackFormattingDialog.__formatManyFiles</h4>
 <b>__formatManyFiles</b>(<i>files</i>)
@@ -257,6 +272,13 @@
 action data (error message or unified diff)
 </dd>
 </dl>
+<a NAME="BlackFormattingDialog.__performAction" ID="BlackFormattingDialog.__performAction"></a>
+<h4>BlackFormattingDialog.__performAction</h4>
+<b>__performAction</b>(<i></i>)
+
+<p>
+        Private method to exceute the requested formatting action.
+</p>
 <a NAME="BlackFormattingDialog.__populateStatusFilterCombo" ID="BlackFormattingDialog.__populateStatusFilterCombo"></a>
 <h4>BlackFormattingDialog.__populateStatusFilterCombo</h4>
 <b>__populateStatusFilterCombo</b>(<i></i>)
--- a/src/eric7/i18n/eric7_cs.ts	Tue Sep 20 18:33:03 2022 +0200
+++ b/src/eric7/i18n/eric7_cs.ts	Wed Sep 21 10:38:52 2022 +0200
@@ -1828,52 +1828,53 @@
   <context>
     <name>BlackConfigurationDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="64" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="65" />
       <source>Generate TOML</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="67" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="68" />
       <source>Place a code snippet for 'pyproject.toml' into the clipboard.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="91" />
-      <source>Project File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="93" />
-      <source>Defaults</source>
-      <translation type="unfinished">Defaulty</translation>
-    </message>
-    <message>
       <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="94" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="92" />
+      <source>Project File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="96" />
+      <source>Defaults</source>
+      <translation type="unfinished">Defaulty</translation>
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="97" />
       <source>Configuration Below</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="184" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="189" />
       <source>Validation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="185" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="190" />
       <source>The exclusion expression is valid.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="188" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="193" />
       <source>Validation Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="240" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="245" />
       <source>Create TOML snippet</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="246" />
       <source>The 'pyproject.toml' snippet was copied to the clipboard successfully.</source>
       <translation type="unfinished" />
     </message>
@@ -1974,63 +1975,68 @@
   <context>
     <name>BlackFormattingDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="93" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="88" />
       <source>&lt;all&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="91" />
+      <source>Format Code</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../CodeFormatting/BlackFormattingDialog.ui" line="0" />
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="194" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="215" />
       <source>Reformatted:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="196" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="217" />
       <source>Would Reformat:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="273" />
       <source>Formatting Failure</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="242" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="274" />
       <source>&lt;p&gt;Formatting failed due to this error.&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="503" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="539" />
       <source>would reformat</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="506" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="542" />
       <source>reformatted</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="511" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="547" />
       <source>unchanged</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="515" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="551" />
       <source>unmodified</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="519" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="555" />
       <source>ignored</source>
       <translation type="unfinished">ignorováno</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="523" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="559" />
       <source>failed</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="528" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="564" />
       <source>invalid status ({0})</source>
       <translation type="unfinished" />
     </message>
Binary file src/eric7/i18n/eric7_de.qm has changed
--- a/src/eric7/i18n/eric7_de.ts	Tue Sep 20 18:33:03 2022 +0200
+++ b/src/eric7/i18n/eric7_de.ts	Wed Sep 21 10:38:52 2022 +0200
@@ -1839,52 +1839,53 @@
   <context>
     <name>BlackConfigurationDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="64" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="65" />
       <source>Generate TOML</source>
       <translation>TOML erzeugen</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="67" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="68" />
       <source>Place a code snippet for 'pyproject.toml' into the clipboard.</source>
       <translation>Legt einen Codeschnipsel für 'pyproject.toml' in die Zwischenablage.</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="91" />
-      <source>Project File</source>
-      <translation>Projektdatei</translation>
-    </message>
-    <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="93" />
-      <source>Defaults</source>
-      <translation>Standardwerte</translation>
-    </message>
-    <message>
       <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="94" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="92" />
+      <source>Project File</source>
+      <translation>Projektdatei</translation>
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="96" />
+      <source>Defaults</source>
+      <translation>Standardwerte</translation>
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="97" />
       <source>Configuration Below</source>
       <translation>Konfiguration unten</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="184" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="189" />
       <source>Validation</source>
       <translation>Validation</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="185" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="190" />
       <source>The exclusion expression is valid.</source>
       <translation>Der Ausschlussausdruck ist gültig.</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="188" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="193" />
       <source>Validation Error</source>
       <translation>Validationsfehler</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="240" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="245" />
       <source>Create TOML snippet</source>
       <translation>TOML Schnipsel erzeugen</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="246" />
       <source>The 'pyproject.toml' snippet was copied to the clipboard successfully.</source>
       <translation>Der 'pyproject.toml' Schnipsel wurde in die Zwischenablage kopiert.</translation>
     </message>
@@ -1985,63 +1986,68 @@
   <context>
     <name>BlackFormattingDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="93" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="88" />
       <source>&lt;all&gt;</source>
       <translation>&lt;Alle&gt;</translation>
     </message>
     <message>
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="91" />
+      <source>Format Code</source>
+      <translation>Code formatieren</translation>
+    </message>
+    <message>
       <location filename="../CodeFormatting/BlackFormattingDialog.ui" line="0" />
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="194" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="215" />
       <source>Reformatted:</source>
       <translation>Umformatiert:</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="196" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="217" />
       <source>Would Reformat:</source>
       <translation>Würde umformatiert:</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="273" />
       <source>Formatting Failure</source>
       <translation>Formatierungsfehler</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="242" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="274" />
       <source>&lt;p&gt;Formatting failed due to this error.&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Die Umformatierung ist wegen dieses Fehlers abgebrochen.&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="503" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="539" />
       <source>would reformat</source>
       <translation>würde umformatiert</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="506" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="542" />
       <source>reformatted</source>
       <translation>umformatiert</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="511" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="547" />
       <source>unchanged</source>
       <translation>unverändert</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="515" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="551" />
       <source>unmodified</source>
       <translation>unverändert</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="519" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="555" />
       <source>ignored</source>
       <translation>ignoriert</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="523" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="559" />
       <source>failed</source>
       <translation>gescheitert</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="528" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="564" />
       <source>invalid status ({0})</source>
       <translation>ungültiger Status ({0})</translation>
     </message>
@@ -11332,7 +11338,7 @@
     <message>
       <location filename="../QScintilla/Editor.py" line="1023" />
       <source>Format Code</source>
-      <translation>Code umformatieren</translation>
+      <translation>Code formatieren</translation>
     </message>
     <message>
       <location filename="../QScintilla/Editor.py" line="1027" />
@@ -56564,12 +56570,12 @@
     <message>
       <location filename="../Project/Project.py" line="4888" />
       <source>Format Code</source>
-      <translation>Code umformatieren</translation>
+      <translation>Code formatieren</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4889" />
       <source>&amp;Format Code</source>
-      <translation>Code um&amp;formatieren</translation>
+      <translation>Code &amp;formatieren</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4896" />
@@ -56579,7 +56585,7 @@
     <message>
       <location filename="../Project/Project.py" line="4899" />
       <source>&lt;b&gt;Format Code&lt;/b&gt;&lt;p&gt;This shows a dialog to enter parameters for the formatting run and reformats the project sources using 'Black'.&lt;/p&gt;</source>
-      <translation>&lt;b&gt;Code umformatieren&lt;/b&gt;&lt;p&gt;Dies zeigt einen Dialog zur Konfiguration eines Formatierungslaufes an und formatiert die Quellen mit 'Black' um.&lt;/p&gt;</translation>
+      <translation>&lt;b&gt;Code formatieren&lt;/b&gt;&lt;p&gt;Dies zeigt einen Dialog zur Konfiguration eines Formatierungslaufes an und formatiert die Quellen mit 'Black'.&lt;/p&gt;</translation>
     </message>
     <message>
       <location filename="../Project/Project.py" line="4911" />
@@ -58586,7 +58592,7 @@
     <message>
       <location filename="../Project/ProjectSourcesBrowser.py" line="134" />
       <source>Format Code</source>
-      <translation>Code umformatieren</translation>
+      <translation>Code formatieren</translation>
     </message>
     <message>
       <location filename="../Project/ProjectSourcesBrowser.py" line="138" />
--- a/src/eric7/i18n/eric7_empty.ts	Tue Sep 20 18:33:03 2022 +0200
+++ b/src/eric7/i18n/eric7_empty.ts	Wed Sep 21 10:38:52 2022 +0200
@@ -1822,52 +1822,53 @@
   <context>
     <name>BlackConfigurationDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="64" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="65" />
       <source>Generate TOML</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="67" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="68" />
       <source>Place a code snippet for 'pyproject.toml' into the clipboard.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="91" />
-      <source>Project File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="93" />
-      <source>Defaults</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="94" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="92" />
+      <source>Project File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="96" />
+      <source>Defaults</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="97" />
       <source>Configuration Below</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="184" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="189" />
       <source>Validation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="185" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="190" />
       <source>The exclusion expression is valid.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="188" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="193" />
       <source>Validation Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="240" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="245" />
       <source>Create TOML snippet</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="246" />
       <source>The 'pyproject.toml' snippet was copied to the clipboard successfully.</source>
       <translation type="unfinished" />
     </message>
@@ -1968,63 +1969,68 @@
   <context>
     <name>BlackFormattingDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="93" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="88" />
       <source>&lt;all&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="91" />
+      <source>Format Code</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../CodeFormatting/BlackFormattingDialog.ui" line="0" />
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="194" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="215" />
       <source>Reformatted:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="196" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="217" />
       <source>Would Reformat:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="273" />
       <source>Formatting Failure</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="242" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="274" />
       <source>&lt;p&gt;Formatting failed due to this error.&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="503" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="539" />
       <source>would reformat</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="506" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="542" />
       <source>reformatted</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="511" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="547" />
       <source>unchanged</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="515" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="551" />
       <source>unmodified</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="519" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="555" />
       <source>ignored</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="523" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="559" />
       <source>failed</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="528" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="564" />
       <source>invalid status ({0})</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_en.ts	Tue Sep 20 18:33:03 2022 +0200
+++ b/src/eric7/i18n/eric7_en.ts	Wed Sep 21 10:38:52 2022 +0200
@@ -1822,52 +1822,53 @@
   <context>
     <name>BlackConfigurationDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="64" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="65" />
       <source>Generate TOML</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="67" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="68" />
       <source>Place a code snippet for 'pyproject.toml' into the clipboard.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="91" />
-      <source>Project File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="93" />
-      <source>Defaults</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="94" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="92" />
+      <source>Project File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="96" />
+      <source>Defaults</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="97" />
       <source>Configuration Below</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="184" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="189" />
       <source>Validation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="185" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="190" />
       <source>The exclusion expression is valid.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="188" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="193" />
       <source>Validation Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="240" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="245" />
       <source>Create TOML snippet</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="246" />
       <source>The 'pyproject.toml' snippet was copied to the clipboard successfully.</source>
       <translation type="unfinished" />
     </message>
@@ -1968,63 +1969,68 @@
   <context>
     <name>BlackFormattingDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="93" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="88" />
       <source>&lt;all&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="91" />
+      <source>Format Code</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../CodeFormatting/BlackFormattingDialog.ui" line="0" />
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="194" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="215" />
       <source>Reformatted:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="196" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="217" />
       <source>Would Reformat:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="273" />
       <source>Formatting Failure</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="242" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="274" />
       <source>&lt;p&gt;Formatting failed due to this error.&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="503" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="539" />
       <source>would reformat</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="506" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="542" />
       <source>reformatted</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="511" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="547" />
       <source>unchanged</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="515" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="551" />
       <source>unmodified</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="519" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="555" />
       <source>ignored</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="523" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="559" />
       <source>failed</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="528" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="564" />
       <source>invalid status ({0})</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_es.ts	Tue Sep 20 18:33:03 2022 +0200
+++ b/src/eric7/i18n/eric7_es.ts	Wed Sep 21 10:38:52 2022 +0200
@@ -1836,52 +1836,53 @@
   <context>
     <name>BlackConfigurationDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="64" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="65" />
       <source>Generate TOML</source>
       <translation>Generar TOML</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="67" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="68" />
       <source>Place a code snippet for 'pyproject.toml' into the clipboard.</source>
       <translation>Poner un snippet de código para 'pyproject.toml' en el portapapeles.</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="91" />
-      <source>Project File</source>
-      <translation>Archivo de Proyecto</translation>
-    </message>
-    <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="93" />
-      <source>Defaults</source>
-      <translation>Por defecto</translation>
-    </message>
-    <message>
       <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="94" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="92" />
+      <source>Project File</source>
+      <translation>Archivo de Proyecto</translation>
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="96" />
+      <source>Defaults</source>
+      <translation>Por defecto</translation>
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="97" />
       <source>Configuration Below</source>
       <translation>Configuración Debajo</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="184" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="189" />
       <source>Validation</source>
       <translation>Validación</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="185" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="190" />
       <source>The exclusion expression is valid.</source>
       <translation>La expresión de exclusión es válida.</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="188" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="193" />
       <source>Validation Error</source>
       <translation>Error de Validación</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="240" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="245" />
       <source>Create TOML snippet</source>
       <translation>Crear snippet de TOML</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="246" />
       <source>The 'pyproject.toml' snippet was copied to the clipboard successfully.</source>
       <translation>El snippet de 'pyproject.toml' se ha copiado correctamente al portapapeles.</translation>
     </message>
@@ -1982,63 +1983,68 @@
   <context>
     <name>BlackFormattingDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="93" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="88" />
       <source>&lt;all&gt;</source>
       <translation>&lt;all&gt;</translation>
     </message>
     <message>
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="91" />
+      <source>Format Code</source>
+      <translation type="unfinished">Formatear Código</translation>
+    </message>
+    <message>
       <location filename="../CodeFormatting/BlackFormattingDialog.ui" line="0" />
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="194" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="215" />
       <source>Reformatted:</source>
       <translation>Reformateados:</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="196" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="217" />
       <source>Would Reformat:</source>
       <translation>Se reformatearía:</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="273" />
       <source>Formatting Failure</source>
       <translation>Fallo de Formato</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="242" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="274" />
       <source>&lt;p&gt;Formatting failed due to this error.&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;El formateo ha fallado debido a este error.&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="503" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="539" />
       <source>would reformat</source>
       <translation>se reformatearía</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="506" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="542" />
       <source>reformatted</source>
       <translation>reformateado</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="511" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="547" />
       <source>unchanged</source>
       <translation>sin cambios</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="515" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="551" />
       <source>unmodified</source>
       <translation>sin modificar</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="519" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="555" />
       <source>ignored</source>
       <translation>ignorado</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="523" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="559" />
       <source>failed</source>
       <translation>fallado</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="528" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="564" />
       <source>invalid status ({0})</source>
       <translation>status no valido ({0})</translation>
     </message>
--- a/src/eric7/i18n/eric7_fr.ts	Tue Sep 20 18:33:03 2022 +0200
+++ b/src/eric7/i18n/eric7_fr.ts	Wed Sep 21 10:38:52 2022 +0200
@@ -1847,52 +1847,53 @@
   <context>
     <name>BlackConfigurationDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="64" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="65" />
       <source>Generate TOML</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="67" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="68" />
       <source>Place a code snippet for 'pyproject.toml' into the clipboard.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="91" />
-      <source>Project File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="93" />
-      <source>Defaults</source>
-      <translation type="unfinished">Défauts</translation>
-    </message>
-    <message>
       <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="94" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="92" />
+      <source>Project File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="96" />
+      <source>Defaults</source>
+      <translation type="unfinished">Défauts</translation>
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="97" />
       <source>Configuration Below</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="184" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="189" />
       <source>Validation</source>
       <translation type="unfinished">Validation</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="185" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="190" />
       <source>The exclusion expression is valid.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="188" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="193" />
       <source>Validation Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="240" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="245" />
       <source>Create TOML snippet</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="246" />
       <source>The 'pyproject.toml' snippet was copied to the clipboard successfully.</source>
       <translation type="unfinished" />
     </message>
@@ -1993,63 +1994,68 @@
   <context>
     <name>BlackFormattingDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="93" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="88" />
       <source>&lt;all&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="91" />
+      <source>Format Code</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../CodeFormatting/BlackFormattingDialog.ui" line="0" />
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="194" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="215" />
       <source>Reformatted:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="196" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="217" />
       <source>Would Reformat:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="273" />
       <source>Formatting Failure</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="242" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="274" />
       <source>&lt;p&gt;Formatting failed due to this error.&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="503" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="539" />
       <source>would reformat</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="506" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="542" />
       <source>reformatted</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="511" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="547" />
       <source>unchanged</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="515" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="551" />
       <source>unmodified</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="519" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="555" />
       <source>ignored</source>
       <translation type="unfinished">ignoré</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="523" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="559" />
       <source>failed</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="528" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="564" />
       <source>invalid status ({0})</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_it.ts	Tue Sep 20 18:33:03 2022 +0200
+++ b/src/eric7/i18n/eric7_it.ts	Wed Sep 21 10:38:52 2022 +0200
@@ -1832,52 +1832,53 @@
   <context>
     <name>BlackConfigurationDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="64" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="65" />
       <source>Generate TOML</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="67" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="68" />
       <source>Place a code snippet for 'pyproject.toml' into the clipboard.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="91" />
-      <source>Project File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="93" />
-      <source>Defaults</source>
-      <translation type="unfinished">Default</translation>
-    </message>
-    <message>
       <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="94" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="92" />
+      <source>Project File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="96" />
+      <source>Defaults</source>
+      <translation type="unfinished">Default</translation>
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="97" />
       <source>Configuration Below</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="184" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="189" />
       <source>Validation</source>
       <translation type="unfinished">Validazione</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="185" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="190" />
       <source>The exclusion expression is valid.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="188" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="193" />
       <source>Validation Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="240" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="245" />
       <source>Create TOML snippet</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="246" />
       <source>The 'pyproject.toml' snippet was copied to the clipboard successfully.</source>
       <translation type="unfinished" />
     </message>
@@ -1978,63 +1979,68 @@
   <context>
     <name>BlackFormattingDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="93" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="88" />
       <source>&lt;all&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="91" />
+      <source>Format Code</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../CodeFormatting/BlackFormattingDialog.ui" line="0" />
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="194" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="215" />
       <source>Reformatted:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="196" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="217" />
       <source>Would Reformat:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="273" />
       <source>Formatting Failure</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="242" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="274" />
       <source>&lt;p&gt;Formatting failed due to this error.&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="503" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="539" />
       <source>would reformat</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="506" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="542" />
       <source>reformatted</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="511" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="547" />
       <source>unchanged</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="515" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="551" />
       <source>unmodified</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="519" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="555" />
       <source>ignored</source>
       <translation type="unfinished">ignorato</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="523" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="559" />
       <source>failed</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="528" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="564" />
       <source>invalid status ({0})</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_pt.ts	Tue Sep 20 18:33:03 2022 +0200
+++ b/src/eric7/i18n/eric7_pt.ts	Wed Sep 21 10:38:52 2022 +0200
@@ -1842,52 +1842,53 @@
   <context>
     <name>BlackConfigurationDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="64" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="65" />
       <source>Generate TOML</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="67" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="68" />
       <source>Place a code snippet for 'pyproject.toml' into the clipboard.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="91" />
-      <source>Project File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="93" />
-      <source>Defaults</source>
-      <translation type="unfinished">Padrão</translation>
-    </message>
-    <message>
       <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="94" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="92" />
+      <source>Project File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="96" />
+      <source>Defaults</source>
+      <translation type="unfinished">Padrão</translation>
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="97" />
       <source>Configuration Below</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="184" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="189" />
       <source>Validation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="185" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="190" />
       <source>The exclusion expression is valid.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="188" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="193" />
       <source>Validation Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="240" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="245" />
       <source>Create TOML snippet</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="246" />
       <source>The 'pyproject.toml' snippet was copied to the clipboard successfully.</source>
       <translation type="unfinished" />
     </message>
@@ -1988,63 +1989,68 @@
   <context>
     <name>BlackFormattingDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="93" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="88" />
       <source>&lt;all&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="91" />
+      <source>Format Code</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../CodeFormatting/BlackFormattingDialog.ui" line="0" />
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="194" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="215" />
       <source>Reformatted:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="196" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="217" />
       <source>Would Reformat:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="273" />
       <source>Formatting Failure</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="242" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="274" />
       <source>&lt;p&gt;Formatting failed due to this error.&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="503" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="539" />
       <source>would reformat</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="506" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="542" />
       <source>reformatted</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="511" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="547" />
       <source>unchanged</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="515" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="551" />
       <source>unmodified</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="519" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="555" />
       <source>ignored</source>
       <translation type="unfinished">ignorado</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="523" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="559" />
       <source>failed</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="528" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="564" />
       <source>invalid status ({0})</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_ru.ts	Tue Sep 20 18:33:03 2022 +0200
+++ b/src/eric7/i18n/eric7_ru.ts	Wed Sep 21 10:38:52 2022 +0200
@@ -1836,52 +1836,53 @@
   <context>
     <name>BlackConfigurationDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="64" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="65" />
       <source>Generate TOML</source>
       <translation>Создать TOML</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="67" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="68" />
       <source>Place a code snippet for 'pyproject.toml' into the clipboard.</source>
       <translation>Поместить фрагмент кода для «pyproject.toml» в буфер обмена.</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="91" />
-      <source>Project File</source>
-      <translation>Файл проекта</translation>
-    </message>
-    <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="93" />
-      <source>Defaults</source>
-      <translation>По умолчанию</translation>
-    </message>
-    <message>
       <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="94" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="92" />
+      <source>Project File</source>
+      <translation>Файл проекта</translation>
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="96" />
+      <source>Defaults</source>
+      <translation>По умолчанию</translation>
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="97" />
       <source>Configuration Below</source>
       <translation>Конфигурация ниже</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="184" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="189" />
       <source>Validation</source>
       <translation>Валидация</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="185" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="190" />
       <source>The exclusion expression is valid.</source>
       <translation>Выражение исключения допустимо.</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="188" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="193" />
       <source>Validation Error</source>
       <translation>Ошибка валидации</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="240" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="245" />
       <source>Create TOML snippet</source>
       <translation>Создать фрагмент TOML</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="246" />
       <source>The 'pyproject.toml' snippet was copied to the clipboard successfully.</source>
       <translation>Фрагмент 'pyproject.toml' успешно скопирован в буфер обмена.</translation>
     </message>
@@ -1983,63 +1984,68 @@
   <context>
     <name>BlackFormattingDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="93" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="88" />
       <source>&lt;all&gt;</source>
       <translation>&lt;все&gt;</translation>
     </message>
     <message>
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="91" />
+      <source>Format Code</source>
+      <translation type="unfinished">Форматировать код</translation>
+    </message>
+    <message>
       <location filename="../CodeFormatting/BlackFormattingDialog.ui" line="0" />
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="194" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="215" />
       <source>Reformatted:</source>
       <translation>Переформатировано:</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="196" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="217" />
       <source>Would Reformat:</source>
       <translation>Возможно переформатирование:</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="273" />
       <source>Formatting Failure</source>
       <translation>Сбой форматирования</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="242" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="274" />
       <source>&lt;p&gt;Formatting failed due to this error.&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Не удалось выполнить форматирование из-за ошибки.&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="503" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="539" />
       <source>would reformat</source>
       <translation>возможно переформатирование</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="506" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="542" />
       <source>reformatted</source>
       <translation>переформатировано</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="511" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="547" />
       <source>unchanged</source>
       <translation>без изменений</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="515" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="551" />
       <source>unmodified</source>
       <translation>нет модификаций</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="519" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="555" />
       <source>ignored</source>
       <translation>проигнорировано</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="523" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="559" />
       <source>failed</source>
       <translation>не удалось</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="528" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="564" />
       <source>invalid status ({0})</source>
       <translation>неверный статус ({0})</translation>
     </message>
--- a/src/eric7/i18n/eric7_tr.ts	Tue Sep 20 18:33:03 2022 +0200
+++ b/src/eric7/i18n/eric7_tr.ts	Wed Sep 21 10:38:52 2022 +0200
@@ -1829,52 +1829,53 @@
   <context>
     <name>BlackConfigurationDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="64" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="65" />
       <source>Generate TOML</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="67" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="68" />
       <source>Place a code snippet for 'pyproject.toml' into the clipboard.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="91" />
-      <source>Project File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="93" />
-      <source>Defaults</source>
-      <translation type="unfinished">Varsayılanlar</translation>
-    </message>
-    <message>
       <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="94" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="92" />
+      <source>Project File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="96" />
+      <source>Defaults</source>
+      <translation type="unfinished">Varsayılanlar</translation>
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="97" />
       <source>Configuration Below</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="184" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="189" />
       <source>Validation</source>
       <translation type="unfinished">Onaylama</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="185" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="190" />
       <source>The exclusion expression is valid.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="188" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="193" />
       <source>Validation Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="240" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="245" />
       <source>Create TOML snippet</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="246" />
       <source>The 'pyproject.toml' snippet was copied to the clipboard successfully.</source>
       <translation type="unfinished" />
     </message>
@@ -1975,63 +1976,68 @@
   <context>
     <name>BlackFormattingDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="93" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="88" />
       <source>&lt;all&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="91" />
+      <source>Format Code</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../CodeFormatting/BlackFormattingDialog.ui" line="0" />
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="194" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="215" />
       <source>Reformatted:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="196" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="217" />
       <source>Would Reformat:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="273" />
       <source>Formatting Failure</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="242" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="274" />
       <source>&lt;p&gt;Formatting failed due to this error.&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="503" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="539" />
       <source>would reformat</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="506" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="542" />
       <source>reformatted</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="511" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="547" />
       <source>unchanged</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="515" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="551" />
       <source>unmodified</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="519" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="555" />
       <source>ignored</source>
       <translation type="unfinished">yoksayıldı</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="523" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="559" />
       <source>failed</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="528" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="564" />
       <source>invalid status ({0})</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_zh_CN.ts	Tue Sep 20 18:33:03 2022 +0200
+++ b/src/eric7/i18n/eric7_zh_CN.ts	Wed Sep 21 10:38:52 2022 +0200
@@ -1845,52 +1845,53 @@
   <context>
     <name>BlackConfigurationDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="64" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="65" />
       <source>Generate TOML</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="67" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="68" />
       <source>Place a code snippet for 'pyproject.toml' into the clipboard.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="91" />
-      <source>Project File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="93" />
-      <source>Defaults</source>
-      <translation type="unfinished">默认值</translation>
-    </message>
-    <message>
       <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="94" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="92" />
+      <source>Project File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="96" />
+      <source>Defaults</source>
+      <translation type="unfinished">默认值</translation>
+    </message>
+    <message>
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="97" />
       <source>Configuration Below</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="184" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="189" />
       <source>Validation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="185" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="190" />
       <source>The exclusion expression is valid.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="188" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="193" />
       <source>Validation Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="240" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="245" />
       <source>Create TOML snippet</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackConfigurationDialog.py" line="246" />
       <source>The 'pyproject.toml' snippet was copied to the clipboard successfully.</source>
       <translation type="unfinished" />
     </message>
@@ -1991,63 +1992,68 @@
   <context>
     <name>BlackFormattingDialog</name>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="93" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="88" />
       <source>&lt;all&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="91" />
+      <source>Format Code</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../CodeFormatting/BlackFormattingDialog.ui" line="0" />
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="194" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="215" />
       <source>Reformatted:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="196" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="217" />
       <source>Would Reformat:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="241" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="273" />
       <source>Formatting Failure</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="242" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="274" />
       <source>&lt;p&gt;Formatting failed due to this error.&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="503" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="539" />
       <source>would reformat</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="506" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="542" />
       <source>reformatted</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="511" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="547" />
       <source>unchanged</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="515" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="551" />
       <source>unmodified</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="519" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="555" />
       <source>ignored</source>
       <translation type="unfinished">已忽略</translation>
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="523" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="559" />
       <source>failed</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="528" />
+      <location filename="../CodeFormatting/BlackFormattingDialog.py" line="564" />
       <source>invalid status ({0})</source>
       <translation type="unfinished" />
     </message>

eric ide

mercurial