src/eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py

branch
eric7
changeset 9925
a267ac36dd69
parent 9653
e67609152c5e
child 9926
6222ddc7e1bd
--- a/src/eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py	Mon Mar 20 10:43:29 2023 +0100
+++ b/src/eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py	Mon Mar 20 16:08:35 2023 +0100
@@ -72,6 +72,7 @@
 
         self.__fileList = []
         self.__project = None
+        self.__arguments = tuple()
         self.filterFrame.setVisible(False)
 
         self.checkProgress.setVisible(False)
@@ -158,6 +159,15 @@
         itm.setData(0, self.errorRole, error)
         itm.setData(0, self.warningRole, isWarning)
 
+    def setArguments(self, args):
+        """
+        Public method to set additional arguments to be used by the syntax check.
+
+        @param args tuple containing the additional arguments
+        @type tuple of Any
+        """
+        self.__arguments = args
+
     def prepare(self, fileList, project):
         """
         Public method to prepare the dialog with a list of filenames.
@@ -179,7 +189,11 @@
         self.__data = self.__project.getData("CHECKERSPARMS", "SyntaxChecker")
         if self.__data is None or "ExcludeFiles" not in self.__data:
             self.__data = {"ExcludeFiles": ""}
+        if "AdditionalBuiltins" not in self.__data:
+            self.__data["AdditionalBuiltins"] = ""
+
         self.excludeFilesEdit.setText(self.__data["ExcludeFiles"])
+        self.builtinsEdit.setText(self.__data["AdditionalBuiltins"])
 
     def startForBrowser(self, fn):
         """
@@ -214,7 +228,11 @@
             self.__data = self.__project.getData("CHECKERSPARMS", "SyntaxChecker")
             if self.__data is None or "ExcludeFiles" not in self.__data:
                 self.__data = {"ExcludeFiles": ""}
+            if "AdditionalBuiltins" not in self.__data:
+                self.__data["AdditionalBuiltins"] = ""
+
             self.excludeFilesEdit.setText(self.__data["ExcludeFiles"])
+            self.builtinsEdit.setText(self.__data["AdditionalBuiltins"])
 
             self.on_startButton_clicked()  # press the start button
 
@@ -324,7 +342,9 @@
                 return
 
         self.__finished = False
-        self.syntaxCheckService.syntaxCheck(None, self.filename, self.source)
+        self.syntaxCheckService.syntaxCheck(
+            None, self.filename, self.source, *self.__arguments
+        )
 
     def checkBatch(self):
         """
@@ -355,7 +375,7 @@
                 )
                 continue
 
-            argumentsList.append((filename, source))
+            argumentsList.append((filename, source, *self.__arguments))
 
         # reset the progress bar to the checked files
         self.checkProgress.setValue(self.progress)
@@ -502,11 +522,9 @@
         fileList = self.__fileList[:]
 
         filterString = self.excludeFilesEdit.text()
-        if (
-            "ExcludeFiles" not in self.__data
-            or filterString != self.__data["ExcludeFiles"]
-        ):
-            self.__data["ExcludeFiles"] = filterString
+        self.__data["ExcludeFiles"] = filterString
+        self.__data["AdditionalBuiltins"] = self.builtinsEdit.text().strip()
+        if self.__data != self.__project.getData("CHECKERSPARMS", "SyntaxChecker"):
             self.__project.setData("CHECKERSPARMS", "SyntaxChecker", self.__data)
         filterList = [f.strip() for f in filterString.split(",") if f.strip()]
         if filterList:
@@ -516,6 +534,7 @@
         self.resultList.clear()
         self.noResults = True
         self.cancelled = False
+        self.setArguments((self.__data["AdditionalBuiltins"].split(),))
         self.start(fileList)
 
     def on_resultList_itemActivated(self, itm, col):

eric ide

mercurial