--- a/src/eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py Mon Jan 22 08:19:03 2024 +0100 +++ b/src/eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py Mon Jan 22 11:47:06 2024 +0100 @@ -173,6 +173,7 @@ itm = QTreeWidgetItem(self.__errorItem, [msg]) itm.setForeground(0, Qt.GlobalColor.red) itm.setFirstColumnSpanned(True) + itm.setData(0, self.filenameRole, filename) def __createHeaderItem(self, filename, fileStatistics=None): """ @@ -414,6 +415,7 @@ return self.__lastFileItem = None + self.__finished = False if codestring: self.source = Utilities.normalizeCode(codestring) @@ -435,7 +437,6 @@ self.check() return - self.__finished = False self.syntaxCheckService.syntaxCheck( None, self.filename, self.source, *self.__arguments ) @@ -447,6 +448,7 @@ The results are reported to the __processResult slot. """ self.__lastFileItem = None + self.__finished = False argumentsList = [] for progress, filename in enumerate(self.files, start=1): @@ -475,7 +477,6 @@ self.checkProgress.setValue(self.progress) QApplication.processEvents() - self.__finished = False self.syntaxCheckService.syntaxBatchCheck(argumentsList) def __batchFinished(self): @@ -679,7 +680,7 @@ @param col column the item was activated in @type int """ - if self.noResults: + if self.noResults or itm.data(0, self.filenameRole) is None: return vm = ericApp().getObject("ViewManager") @@ -729,31 +730,31 @@ selectedIndexes = list(range(self.resultList.topLevelItemCount())) for index in selectedIndexes: itm = self.resultList.topLevelItem(index) - fn = os.path.abspath(itm.data(0, self.filenameRole)) - vm.openSourceFile(fn, 1) - editor = vm.getOpenEditor(fn) - editor.clearSyntaxError() - editor.clearFlakesWarnings() - for cindex in range(itm.childCount()): - citm = itm.child(cindex) - lineno = citm.data(0, self.lineRole) - index = citm.data(0, self.indexRole) - error = citm.data(0, self.errorRole) - if citm.data(0, self.warningRole): - editor.toggleWarning(lineno, 0, True, error) - else: - editor.toggleSyntaxError(lineno, index, True, error, show=True) + if itm.data(0, self.filenameRole) is not None: + fn = os.path.abspath(itm.data(0, self.filenameRole)) + vm.openSourceFile(fn, 1) + editor = vm.getOpenEditor(fn) + editor.clearSyntaxError() + editor.clearFlakesWarnings() + for cindex in range(itm.childCount()): + citm = itm.child(cindex) + lineno = citm.data(0, self.lineRole) + index = citm.data(0, self.indexRole) + error = citm.data(0, self.errorRole) + if citm.data(0, self.warningRole): + editor.toggleWarning(lineno, 0, True, error) + else: + editor.toggleSyntaxError(lineno, index, True, error, show=True) # go through the list again to clear syntax error and # flakes warning markers for files, that are ok - openFiles = vm.getOpenFilenames() errorFiles = [] for index in range(self.resultList.topLevelItemCount()): itm = self.resultList.topLevelItem(index) errorFiles.append(os.path.abspath(itm.data(0, self.filenameRole))) - for file in openFiles: - if file not in errorFiles: - editor = vm.getOpenEditor(file) + for fn in vm.getOpenFilenames(): + if fn not in errorFiles: + editor = vm.getOpenEditor(fn) editor.clearSyntaxError() editor.clearFlakesWarnings()