Fixed an issue where the py3flakes checker threw a syntax error although the syntax check passed.

Sun, 14 Feb 2010 14:01:08 +0000

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 14 Feb 2010 14:01:08 +0000
changeset 115
13d58f643b43
parent 114
f6e7cec11168
child 116
2add429042ef

Fixed an issue where the py3flakes checker threw a syntax error although the syntax check passed.

Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py file | annotate | diff | comparison | revisions
QScintilla/Editor.py file | annotate | diff | comparison | revisions
--- a/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py	Sun Feb 14 13:33:03 2010 +0000
+++ b/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py	Sun Feb 14 14:01:08 2010 +0000
@@ -140,16 +140,23 @@
                     self.__createResultItem(fname, line, error, code)
                 else:
                     if Preferences.getFlakes("IncludeInSyntaxCheck"):
-                        warnings = Checker(source, file)
-                        warnings.messages.sort(key = lambda a: a.lineno)
-                        for warning in warnings.messages:
-                            if ignoreStarImportWarnings and \
-                               isinstance(warning, ImportStarUsed):
-                                continue
-                            self.noResults = False
-                            fname, lineno, message = warning.getMessageData()
-                            self.__createResultItem(fname, lineno, message, "", 
-                                                    isWarning = True)
+                        try:
+                            warnings = Checker(source, file)
+                            warnings.messages.sort(key = lambda a: a.lineno)
+                            for warning in warnings.messages:
+                                if ignoreStarImportWarnings and \
+                                   isinstance(warning, ImportStarUsed):
+                                    continue
+                                self.noResults = False
+                                fname, lineno, message = warning.getMessageData()
+                                self.__createResultItem(fname, lineno, message, "", 
+                                                        isWarning = True)
+                        except SyntaxError as err:
+                            if err.text.strip():
+                                msg = err.text.strip()
+                            else:
+                                msg = err.msg
+                            self.__createResultItem(err.filename, err.lineno, msg, "")
                 progress += 1
                 self.checkProgress.setValue(progress)
                 QApplication.processEvents()
--- a/QScintilla/Editor.py	Sun Feb 14 13:33:03 2010 +0000
+++ b/QScintilla/Editor.py	Sun Feb 14 14:01:08 2010 +0000
@@ -4057,15 +4057,22 @@
                     if Preferences.getFlakes("IncludeInSyntaxCheck"):
                         ignoreStarImportWarnings = \
                             Preferences.getFlakes("IgnoreStarImportWarnings")
-                        warnings = Checker(self.text(), self.fileName)
-                        warnings.messages.sort(key = lambda a: a.lineno)
-                        for warning in warnings.messages:
-                            if ignoreStarImportWarnings and \
-                               isinstance(warning, ImportStarUsed):
-                                continue
-                            
-                            _fn, lineno, message = warning.getMessageData()
-                            self.toggleFlakesWarning(lineno, True, message)
+                        try:
+                            warnings = Checker(self.text(), self.fileName)
+                            warnings.messages.sort(key = lambda a: a.lineno)
+                            for warning in warnings.messages:
+                                if ignoreStarImportWarnings and \
+                                   isinstance(warning, ImportStarUsed):
+                                    continue
+                                
+                                _fn, lineno, message = warning.getMessageData()
+                                self.toggleFlakesWarning(lineno, True, message)
+                        except SyntaxError as err:
+                            if err.text.strip():
+                                msg = err.text.strip()
+                            else:
+                                msg = err.msg
+                            self.toggleSyntaxError(err.lineno, True, msg)
         
     def __showCodeMetrics(self):
         """

eric ide

mercurial