--- 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):