eric6/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py

changeset 7615
ca2949b1a29a
parent 7614
646742c260bd
child 7619
ef2b5af23ce7
--- a/eric6/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py	Tue Jun 09 20:10:59 2020 +0200
+++ b/eric6/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py	Wed Jun 10 17:52:53 2020 +0200
@@ -246,21 +246,23 @@
             self.__lastFileItem.setExpanded(True)
             self.__lastFileItem.setData(0, self.filenameRole, filename)
         
+        msgCode = result["code"].split(".", 1)[0]
+        
         fixable = False
         itm = QTreeWidgetItem(
             self.__lastFileItem, [
                 "{0:6}".format(result["line"]),
-                result["code"],
+                msgCode,
                 result["display"]
             ]
         )
-        if result["code"].startswith(("W", "-", "C", "M")):
+        if msgCode.startswith(("W", "-", "C", "M")):
             itm.setIcon(1, UI.PixmapCache.getIcon("warning"))
-        elif result["code"].startswith(("A", "N")):
+        elif msgCode.startswith(("A", "N")):
             itm.setIcon(1, UI.PixmapCache.getIcon("namingError"))
-        elif result["code"].startswith("D"):
+        elif msgCode.startswith("D"):
             itm.setIcon(1, UI.PixmapCache.getIcon("docstringError"))
-        elif result["code"].startswith("S"):
+        elif msgCode.startswith("S"):
             if "severity" in result:
                 if result["severity"] == "H":
                     itm.setIcon(1, UI.PixmapCache.getIcon("securityLow"))
@@ -277,9 +279,9 @@
         if result["fixed"]:
             itm.setIcon(0, UI.PixmapCache.getIcon("issueFixed"))
         elif (
-            result["code"] in FixableCodeStyleIssues and
+            msgCode in FixableCodeStyleIssues and
             not result["autofixing"] and
-            result["code"] not in self.__noFixCodesList
+            msgCode not in self.__noFixCodesList
         ):
             itm.setIcon(0, UI.PixmapCache.getIcon("issueFixable"))
             fixable = True
@@ -296,7 +298,7 @@
         itm.setData(0, self.positionRole, int(result["offset"]))
         itm.setData(0, self.messageRole, result["display"])
         itm.setData(0, self.fixableRole, fixable)
-        itm.setData(0, self.codeRole, result["code"].split(".", 1)[0])
+        itm.setData(0, self.codeRole, msgCode)
         itm.setData(0, self.ignoredRole, result["ignored"])
         itm.setData(0, self.argsRole, result["args"])
         
@@ -327,7 +329,7 @@
             itm.setIcon(0, QIcon())
         itm.setData(0, self.fixableRole, False)
     
-    def __updateStatistics(self, statistics, fixer, ignoredErrors):
+    def __updateStatistics(self, statistics, fixer, ignoredErrors, securityOk):
         """
         Private method to update the collected statistics.
         
@@ -338,6 +340,8 @@
         @type CodeStyleFixer
         @param ignoredErrors number of ignored errors
         @type int
+        @param securityOk number of acknowledged security reports
+        @type int
         """
         self.__statistics["_FilesCount"] += 1
         stats = [k for k in statistics.keys() if k[0].isupper()]
@@ -350,6 +354,7 @@
                     self.__statistics[key] = statistics[key]
         self.__statistics["_IssuesFixed"] += fixer
         self.__statistics["_IgnoredErrors"] += ignoredErrors
+        self.__statistics["_SecurityOK"] += securityOk
     
     def __updateFixerStatistics(self, fixer):
         """
@@ -369,6 +374,7 @@
         self.__statistics["_FilesIssues"] = 0
         self.__statistics["_IssuesFixed"] = 0
         self.__statistics["_IgnoredErrors"] = 0
+        self.__statistics["_SecurityOK"] = 0
     
     def prepare(self, fileList, project):
         """
@@ -812,6 +818,7 @@
         
         fixed = None
         ignoredErrors = 0
+        securityOk = 0
         if self.__itms:
             for itm, result in zip(self.__itms, results):
                 self.__modifyFixedResultItem(itm, result)
@@ -828,11 +835,16 @@
                         ).format(result["display"])
                     else:
                         continue
+                
+                elif result["securityOk"]:
+                    securityOk += 1
+                    continue
+                
                 self.results = CodeStyleCheckerDialog.hasResults
                 self.__createResultItem(fn, result)
 
             self.__updateStatistics(
-                codeStyleCheckerStats, fixes, ignoredErrors)
+                codeStyleCheckerStats, fixes, ignoredErrors, securityOk)
         
         if fixed:
             vm = e5App().getObject("ViewManager")

eric ide

mercurial