Reintegrated the js syntax checker and therefore improved the background service a little. Py2 comp.

Mon, 21 Apr 2014 19:20:27 +0200

author
T.Rzepka <Tobias.Rzepka@gmail.com>
date
Mon, 21 Apr 2014 19:20:27 +0200
branch
Py2 comp.
changeset 3525
66f4b8646622
parent 3524
c6141071339a
child 3526
b00ee853bceb

Reintegrated the js syntax checker and therefore improved the background service a little.

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
APIs/Python3/eric5.bas file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.translations.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginAbout.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginCodeStyleChecker.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginEricapi.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginEricdoc.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginSyntaxChecker.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginTabnanny.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginVcsMercurial.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginVcsPySvn.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginVcsSubversion.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginVmListspace.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginVmTabview.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginWizardE5MessageBox.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginWizardPyRegExp.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginWizardQColorDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginWizardQFileDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginWizardQFontDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginWizardQInputDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginWizardQMessageBox.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginWizardQRegExp.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.PluginWizardQRegularExpression.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Utilities.__init__.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.Plugins.CheckerPlugins.SyntaxChecker.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.html file | annotate | diff | comparison | revisions
Documentation/eric5-plugin.odt file | annotate | diff | comparison | revisions
Documentation/eric5-plugin.pdf file | annotate | diff | comparison | revisions
Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheck.py file | annotate | diff | comparison | revisions
Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py file | annotate | diff | comparison | revisions
Plugins/CheckerPlugins/SyntaxChecker/jsCheckSyntax.py file | annotate | diff | comparison | revisions
Plugins/PluginSyntaxChecker.py file | annotate | diff | comparison | revisions
QScintilla/Editor.py file | annotate | diff | comparison | revisions
UI/BrowserModel.py file | annotate | diff | comparison | revisions
Utilities/ClassBrowsers/__init__.py file | annotate | diff | comparison | revisions
Utilities/__init__.py file | annotate | diff | comparison | revisions
eric5.e4p file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric5.api	Mon Apr 21 16:37:10 2014 +0200
+++ b/APIs/Python3/eric5.api	Mon Apr 21 19:20:27 2014 +0200
@@ -3957,7 +3957,7 @@
 eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.initService?4()
 eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.normalizeCode?4(codestring)
 eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.syntaxAndPyflakesCheck?4(filename, codestring, checkFlakes=True, ignoreStarImportWarnings=False)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.addLanguage?4(lang, path, module, getArgs, getExt, callback, onError)
+eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.addLanguage?4(lang, env, path, module, getArgs, getExt, callback, onError)
 eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.getExtensions?4()
 eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.getLanguages?4()
 eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.removeLanguage?4(lang)
@@ -3977,125 +3977,9 @@
 eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.SyntaxCheckerDialog.start?4(fn, codestring="")
 eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.SyntaxCheckerDialog.warningRole?7
 eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.SyntaxCheckerDialog?1(parent=None)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.AND?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.ASSIGN?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.AUGASSIGN?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.BOOLOP?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.CLASSDEF?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.COMPREHENSION?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.CONTINUE?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.DICTCOMP?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.EXCEPTHANDLER?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.FOR?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.FUNCTIONDEF?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.GENERATOREXP?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.GLOBAL?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.IMPORT?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.IMPORTFROM?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.LAMBDA?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.LISTCOMP?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.LOAD?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.NAME?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.NONLOCAL?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.NUM?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.RETURN?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.SETCOMP?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.SLICE?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.TRY?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.TRYEXCEPT?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker._customBuiltIns?8
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker._getDoctestExamples?8
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.addArgs?4()
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.addBinding?4(node, value, reportRedef=True)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.builtIns?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.checkDeadScopes?4()
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.checkUnusedAssignments?4()
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.collectLoopVars?4()
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.deferAssignment?4(callable)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.deferFunction?4(callable)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.descendantOf?4(node, ancestors, stop=None)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.differentForks?4(lnode, rnode)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.getCommonAncestor?4(lnode, rnode, stop=None)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.getDocstring?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.getNodeHandler?4(node_class)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.handleChildren?4(tree)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.handleDoctests?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.handleNode?4(node, parent)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.handleNodeDelete?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.handleNodeLoad?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.handleNodeStore?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.hasParent?4(node, kind)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.ignore?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.isDocstring?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.nodeDepth?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.offset?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.onFork?4(parent, lnode, rnode, items)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.popScope?4()
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.pushClassScope?4()
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.pushFunctionScope?4()
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.pushScope?4(scopeClass=FunctionScope)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.report?4(messageClass, *args, **kwargs)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.runDeferred?4(deferred)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.runFunction?4()
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.scope?4()
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.traceTree?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker.withDoctest?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Checker?1(tree, filename='(none)', builtins=None)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.FunctionScope.alwaysUsed?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.FunctionScope.usesLocals?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.Scope.importStarred?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker._MAGIC_GLOBALS?8
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.getNodeName?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.getNodeType?4(node_class)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.iter_child_nodes?4(node)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.names?4(self)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.unusedAssignments?4(self)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.DoctestSyntaxError.message?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.DoctestSyntaxError.message_id?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.DoctestSyntaxError?1(filename, loc, position=None)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.DuplicateArgument.message?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.DuplicateArgument.message_id?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.DuplicateArgument?1(filename, loc, name)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.ImportShadowedByLoopVar.message?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.ImportShadowedByLoopVar.message_id?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.ImportShadowedByLoopVar?1(filename, loc, name, orig_loc)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.ImportStarUsed.message?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.ImportStarUsed.message_id?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.ImportStarUsed?1(filename, loc, modname)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.LateFutureImport.message?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.LateFutureImport.message_id?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.LateFutureImport?1(filename, loc, names)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.Message.getMessageData?4()
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.Message.message?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.Message.message_args?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.Message.message_id?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.Message?1(filename, loc)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.Redefined.message?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.Redefined.message_id?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.Redefined?1(filename, loc, name, orig_loc)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.RedefinedInListComp.message?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.RedefinedInListComp.message_id?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.RedefinedInListComp?1(filename, loc, name, orig_loc)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.RedefinedWhileUnused.message?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.RedefinedWhileUnused.message_id?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.RedefinedWhileUnused?1(filename, loc, name, orig_loc)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UndefinedExport.message?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UndefinedExport.message_id?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UndefinedExport?1(filename, loc, name)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UndefinedLocal.message?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UndefinedLocal.message_id?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UndefinedLocal?1(filename, loc, name, orig_loc)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UndefinedName.message?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UndefinedName.message_id?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UndefinedName?1(filename, loc, name)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UnusedImport.message?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UnusedImport.message_id?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UnusedImport?1(filename, loc, name)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UnusedVariable.message?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UnusedVariable.message_id?7
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.UnusedVariable?1(filename, loc, names)
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.translations._messages?8
-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.translations.getTranslatedFlakesMessage?4(message_id, message_args)
+eric5.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.initService?4()
+eric5.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.jsCheckSyntax?4(file, codestring)
+eric5.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.normalizeCode?4(codestring)
 eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.NannyNag.get_line?4()
 eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.NannyNag.get_lineno?4()
 eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.NannyNag.get_msg?4()
@@ -4166,6 +4050,7 @@
 eric5.Plugins.PluginAbout.name?7
 eric5.Plugins.PluginAbout.packageName?7
 eric5.Plugins.PluginAbout.pyqtApi?7
+eric5.Plugins.PluginAbout.python2Compatible?7
 eric5.Plugins.PluginAbout.shortDescription?7
 eric5.Plugins.PluginAbout.version?7
 eric5.Plugins.PluginCodeStyleChecker.CodeStyleCheckerPlugin.activate?4()
@@ -4182,6 +4067,7 @@
 eric5.Plugins.PluginCodeStyleChecker.name?7
 eric5.Plugins.PluginCodeStyleChecker.packageName?7
 eric5.Plugins.PluginCodeStyleChecker.pyqtApi?7
+eric5.Plugins.PluginCodeStyleChecker.python2Compatible?7
 eric5.Plugins.PluginCodeStyleChecker.shortDescription?7
 eric5.Plugins.PluginCodeStyleChecker.version?7
 eric5.Plugins.PluginEricapi.EricapiPlugin.activate?4()
@@ -4197,6 +4083,7 @@
 eric5.Plugins.PluginEricapi.name?7
 eric5.Plugins.PluginEricapi.packageName?7
 eric5.Plugins.PluginEricapi.pyqtApi?7
+eric5.Plugins.PluginEricapi.python2Compatible?7
 eric5.Plugins.PluginEricapi.shortDescription?7
 eric5.Plugins.PluginEricapi.version?7
 eric5.Plugins.PluginEricdoc.EricdocPlugin.activate?4()
@@ -4212,6 +4099,7 @@
 eric5.Plugins.PluginEricdoc.name?7
 eric5.Plugins.PluginEricdoc.packageName?7
 eric5.Plugins.PluginEricdoc.pyqtApi?7
+eric5.Plugins.PluginEricdoc.python2Compatible?7
 eric5.Plugins.PluginEricdoc.shortDescription?7
 eric5.Plugins.PluginEricdoc.version?7
 eric5.Plugins.PluginSyntaxChecker.SyntaxCheckerPlugin.activate?4()
@@ -4226,6 +4114,7 @@
 eric5.Plugins.PluginSyntaxChecker.name?7
 eric5.Plugins.PluginSyntaxChecker.packageName?7
 eric5.Plugins.PluginSyntaxChecker.pyqtApi?7
+eric5.Plugins.PluginSyntaxChecker.python2Compatible?7
 eric5.Plugins.PluginSyntaxChecker.shortDescription?7
 eric5.Plugins.PluginSyntaxChecker.version?7
 eric5.Plugins.PluginTabnanny.TabnannyPlugin.activate?4()
@@ -4242,6 +4131,7 @@
 eric5.Plugins.PluginTabnanny.name?7
 eric5.Plugins.PluginTabnanny.packageName?7
 eric5.Plugins.PluginTabnanny.pyqtApi?7
+eric5.Plugins.PluginTabnanny.python2Compatible?7
 eric5.Plugins.PluginTabnanny.shortDescription?7
 eric5.Plugins.PluginTabnanny.version?7
 eric5.Plugins.PluginVcsMercurial.VcsMercurialPlugin.activate?4()
@@ -4271,6 +4161,7 @@
 eric5.Plugins.PluginVcsMercurial.pluginTypename?7
 eric5.Plugins.PluginVcsMercurial.prepareUninstall?4()
 eric5.Plugins.PluginVcsMercurial.pyqtApi?7
+eric5.Plugins.PluginVcsMercurial.python2Compatible?7
 eric5.Plugins.PluginVcsMercurial.shortDescription?7
 eric5.Plugins.PluginVcsMercurial.version?7
 eric5.Plugins.PluginVcsPySvn.VcsPySvnPlugin.activate?4()
@@ -4299,6 +4190,7 @@
 eric5.Plugins.PluginVcsPySvn.pluginTypename?7
 eric5.Plugins.PluginVcsPySvn.prepareUninstall?4()
 eric5.Plugins.PluginVcsPySvn.pyqtApi?7
+eric5.Plugins.PluginVcsPySvn.python2Compatible?7
 eric5.Plugins.PluginVcsPySvn.shortDescription?7
 eric5.Plugins.PluginVcsPySvn.subversionCfgPluginObject?7
 eric5.Plugins.PluginVcsPySvn.version?7
@@ -4328,6 +4220,7 @@
 eric5.Plugins.PluginVcsSubversion.pluginTypename?7
 eric5.Plugins.PluginVcsSubversion.prepareUninstall?4()
 eric5.Plugins.PluginVcsSubversion.pyqtApi?7
+eric5.Plugins.PluginVcsSubversion.python2Compatible?7
 eric5.Plugins.PluginVcsSubversion.shortDescription?7
 eric5.Plugins.PluginVcsSubversion.subversionCfgPluginObject?7
 eric5.Plugins.PluginVcsSubversion.version?7
@@ -4347,6 +4240,7 @@
 eric5.Plugins.PluginVmListspace.pluginTypename?7
 eric5.Plugins.PluginVmListspace.previewPix?4()
 eric5.Plugins.PluginVmListspace.pyqtApi?7
+eric5.Plugins.PluginVmListspace.python2Compatible?7
 eric5.Plugins.PluginVmListspace.shortDescription?7
 eric5.Plugins.PluginVmListspace.version?7
 eric5.Plugins.PluginVmTabview.VmTabviewPlugin.activate?4()
@@ -4365,6 +4259,7 @@
 eric5.Plugins.PluginVmTabview.pluginTypename?7
 eric5.Plugins.PluginVmTabview.previewPix?4()
 eric5.Plugins.PluginVmTabview.pyqtApi?7
+eric5.Plugins.PluginVmTabview.python2Compatible?7
 eric5.Plugins.PluginVmTabview.shortDescription?7
 eric5.Plugins.PluginVmTabview.version?7
 eric5.Plugins.PluginWizardE5MessageBox.E5MessageBoxWizard.activate?4()
@@ -4379,6 +4274,7 @@
 eric5.Plugins.PluginWizardE5MessageBox.name?7
 eric5.Plugins.PluginWizardE5MessageBox.packageName?7
 eric5.Plugins.PluginWizardE5MessageBox.pyqtApi?7
+eric5.Plugins.PluginWizardE5MessageBox.python2Compatible?7
 eric5.Plugins.PluginWizardE5MessageBox.shortDescription?7
 eric5.Plugins.PluginWizardE5MessageBox.version?7
 eric5.Plugins.PluginWizardPyRegExp.PyRegExpWizard.activate?4()
@@ -4393,6 +4289,7 @@
 eric5.Plugins.PluginWizardPyRegExp.name?7
 eric5.Plugins.PluginWizardPyRegExp.packageName?7
 eric5.Plugins.PluginWizardPyRegExp.pyqtApi?7
+eric5.Plugins.PluginWizardPyRegExp.python2Compatible?7
 eric5.Plugins.PluginWizardPyRegExp.shortDescription?7
 eric5.Plugins.PluginWizardPyRegExp.version?7
 eric5.Plugins.PluginWizardQColorDialog.ColorDialogWizard.activate?4()
@@ -4407,6 +4304,7 @@
 eric5.Plugins.PluginWizardQColorDialog.name?7
 eric5.Plugins.PluginWizardQColorDialog.packageName?7
 eric5.Plugins.PluginWizardQColorDialog.pyqtApi?7
+eric5.Plugins.PluginWizardQColorDialog.python2Compatible?7
 eric5.Plugins.PluginWizardQColorDialog.shortDescription?7
 eric5.Plugins.PluginWizardQColorDialog.version?7
 eric5.Plugins.PluginWizardQFileDialog.FileDialogWizard.activate?4()
@@ -4421,6 +4319,7 @@
 eric5.Plugins.PluginWizardQFileDialog.name?7
 eric5.Plugins.PluginWizardQFileDialog.packageName?7
 eric5.Plugins.PluginWizardQFileDialog.pyqtApi?7
+eric5.Plugins.PluginWizardQFileDialog.python2Compatible?7
 eric5.Plugins.PluginWizardQFileDialog.shortDescription?7
 eric5.Plugins.PluginWizardQFileDialog.version?7
 eric5.Plugins.PluginWizardQFontDialog.FontDialogWizard.activate?4()
@@ -4435,6 +4334,7 @@
 eric5.Plugins.PluginWizardQFontDialog.name?7
 eric5.Plugins.PluginWizardQFontDialog.packageName?7
 eric5.Plugins.PluginWizardQFontDialog.pyqtApi?7
+eric5.Plugins.PluginWizardQFontDialog.python2Compatible?7
 eric5.Plugins.PluginWizardQFontDialog.shortDescription?7
 eric5.Plugins.PluginWizardQFontDialog.version?7
 eric5.Plugins.PluginWizardQInputDialog.InputDialogWizard.activate?4()
@@ -4449,6 +4349,7 @@
 eric5.Plugins.PluginWizardQInputDialog.name?7
 eric5.Plugins.PluginWizardQInputDialog.packageName?7
 eric5.Plugins.PluginWizardQInputDialog.pyqtApi?7
+eric5.Plugins.PluginWizardQInputDialog.python2Compatible?7
 eric5.Plugins.PluginWizardQInputDialog.shortDescription?7
 eric5.Plugins.PluginWizardQInputDialog.version?7
 eric5.Plugins.PluginWizardQMessageBox.MessageBoxWizard.activate?4()
@@ -4463,6 +4364,7 @@
 eric5.Plugins.PluginWizardQMessageBox.name?7
 eric5.Plugins.PluginWizardQMessageBox.packageName?7
 eric5.Plugins.PluginWizardQMessageBox.pyqtApi?7
+eric5.Plugins.PluginWizardQMessageBox.python2Compatible?7
 eric5.Plugins.PluginWizardQMessageBox.shortDescription?7
 eric5.Plugins.PluginWizardQMessageBox.version?7
 eric5.Plugins.PluginWizardQRegExp.QRegExpWizard.activate?4()
@@ -4477,6 +4379,7 @@
 eric5.Plugins.PluginWizardQRegExp.name?7
 eric5.Plugins.PluginWizardQRegExp.packageName?7
 eric5.Plugins.PluginWizardQRegExp.pyqtApi?7
+eric5.Plugins.PluginWizardQRegExp.python2Compatible?7
 eric5.Plugins.PluginWizardQRegExp.shortDescription?7
 eric5.Plugins.PluginWizardQRegExp.version?7
 eric5.Plugins.PluginWizardQRegularExpression.QRegularExpressionWizard.activate?4()
@@ -4491,6 +4394,7 @@
 eric5.Plugins.PluginWizardQRegularExpression.name?7
 eric5.Plugins.PluginWizardQRegularExpression.packageName?7
 eric5.Plugins.PluginWizardQRegularExpression.pyqtApi?7
+eric5.Plugins.PluginWizardQRegularExpression.python2Compatible?7
 eric5.Plugins.PluginWizardQRegularExpression.shortDescription?7
 eric5.Plugins.PluginWizardQRegularExpression.version?7
 eric5.Plugins.VcsPlugins.vcsMercurial.BookmarksExtension.HgBookmarkDialog.HgBookmarkDialog.DEFINE_MODE?7
@@ -8678,7 +8582,6 @@
 eric5.Utilities.isExecutable?4(exe)
 eric5.Utilities.isinpath?4(file)
 eric5.Utilities.joinext?4(prefix, ext)
-eric5.Utilities.jsCheckSyntax?4(file, codestring="")
 eric5.Utilities.linesep?4()
 eric5.Utilities.normabsjoinpath?4(a, *p)
 eric5.Utilities.normabspath?4(path)
--- a/APIs/Python3/eric5.bas	Mon Apr 21 16:37:10 2014 +0200
+++ b/APIs/Python3/eric5.bas	Mon Apr 21 19:20:27 2014 +0200
@@ -22,10 +22,8 @@
 AddProjectDialog QDialog Ui_AddProjectDialog
 ApplicationDiagramBuilder UMLDiagramBuilder
 ApplicationPage ConfigurationPageBase Ui_ApplicationPage
-Argument Binding
 ArgumentsError RuntimeError
 ArrayElementVarItem VariableItem
-Assignment Binding
 AssociationItem E5ArrowItem
 Attribute ClbrBaseClasses.Attribute VisibilityMixin
 AuthenticationDialog QDialog Ui_AuthenticationDialog
@@ -65,10 +63,8 @@
 ChatWidget QWidget Ui_ChatWidget
 ChromeImporter BookmarksImporter
 Class ClbrBaseClasses.Class VisibilityMixin
-ClassDefinition Definition
 ClassItem UMLItem
 ClassModel UMLModel
-ClassScope Scope
 ClbrBase _ClbrBase
 ClickToFlash QWidget Ui_ClickToFlash
 ClickToFlashPlugin WebPluginInterface
@@ -127,18 +123,15 @@
 DebuggerPython3Page ConfigurationPageBase Ui_DebuggerPython3Page
 DebuggerPythonPage ConfigurationPageBase Ui_DebuggerPythonPage
 DebuggerRubyPage ConfigurationPageBase Ui_DebuggerRubyPage
-Definition Binding
 DeleteFilesConfirmationDialog QDialog Ui_DeleteFilesConfirmationDialog
 DiffDialog QWidget Ui_DiffDialog
 DiffReport StandardReport
 DiffWindow E5MainWindow
 DirectorySyncHandler SyncHandler
-DoctestSyntaxError Message
 DownloadAskActionDialog QDialog Ui_DownloadAskActionDialog
 DownloadItem QWidget Ui_DownloadItem
 DownloadManager QDialog Ui_DownloadManager
 DownloadModel QAbstractListModel
-DuplicateArgument Message
 E5Action QAction
 E5Application QApplication
 E5ArrowItem QAbstractGraphicsShapeItem
@@ -232,7 +225,6 @@
 ErrorLogDialog QDialog Ui_ErrorLogDialog
 ExceptionLogger QTreeWidget
 ExceptionsFilterDialog QDialog Ui_ExceptionsFilterDialog
-ExportBinding Binding
 ExporterBase QObject
 ExporterHTML ExporterBase
 ExporterODT ExporterBase
@@ -264,9 +256,6 @@
 FtpReply QNetworkReply
 FtpSyncHandler SyncHandler
 Function ClbrBaseClasses.Function VisibilityMixin
-FunctionDefinition Definition
-FunctionScope Scope
-GeneratorScope Scope
 GotoDialog QDialog Ui_GotoDialog
 Gpg HgExtension
 GpgProjectHelper HgExtensionProjectHelper
@@ -383,9 +372,6 @@
 IconSizeDialog QDialog Ui_IconSizeDialog
 IconsPage ConfigurationPageBase Ui_IconsPage
 IconsPreviewDialog QDialog Ui_IconsPreviewDialog
-ImportShadowedByLoopVar Message
-ImportStarUsed Message
-Importation Binding
 ImportsDiagramBuilder UMLDiagramBuilder
 InputDialogWizard QObject
 InputDialogWizardDialog QDialog Ui_InputDialogWizardDialog
@@ -410,7 +396,6 @@
 Largefiles HgExtension
 LargefilesProjectBrowserHelper HgExtensionProjectBrowserHelper
 LargefilesProjectHelper HgExtensionProjectHelper
-LateFutureImport Message
 LexerAssociationDialog QDialog Ui_LexerAssociationDialog
 LexerBash Lexer QsciLexerBash
 LexerBatch Lexer QsciLexerBatch
@@ -460,7 +445,6 @@
 Module ClbrBaseClasses.Module VisibilityMixin
 ModuleItem UMLItem
 ModuleModel UMLModel
-ModuleScope Scope
 MultiProject QObject
 MultiProjectBrowser QTreeWidget
 MultiProjectPage ConfigurationPageBase Ui_MultiProjectPage
@@ -594,15 +578,11 @@
 Rebase HgExtension
 RebaseProjectHelper HgExtensionProjectHelper
 RecursionError OverflowError ValueError
-Redefined Message
-RedefinedInListComp Message
-RedefinedWhileUnused Message
 Redirector QObject
 RemoveBookmarksCommand QUndoCommand
 RevisionsValidator QValidator
 SafariImporter BookmarksImporter
 SchemeAccessHandler QObject
-Scope dict
 SearchReplaceSlidingWidget QWidget
 SearchReplaceWidget QWidget
 SearchWidget QWidget Ui_SearchWidget
@@ -736,13 +716,8 @@
 UMLItem QGraphicsRectItem
 UMLSceneSizeDialog QDialog Ui_UMLSceneSizeDialog
 Uid int
-UndefinedExport Message
-UndefinedLocal Message
-UndefinedName Message
 UnittestDialog QWidget Ui_UnittestDialog
 UnittestWindow E5MainWindow
-UnusedImport Message
-UnusedVariable Message
 UrlBar E5LineEdit
 UserAgentManager QObject
 UserAgentMenu QMenu
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Help/source.qhp	Mon Apr 21 19:20:27 2014 +0200
@@ -469,6 +469,7 @@
                 <section title="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html" />
                 <section title="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html" />
                 <section title="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html" />
+                <section title="eric5.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html" />
               </section>
               <section title="eric5.Plugins.CheckerPlugins.Tabnanny" ref="index-eric5.Plugins.CheckerPlugins.Tabnanny.html">
                 <section title="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html" />
@@ -13158,6 +13159,7 @@
       <keyword name="initRecentSettings" id="initRecentSettings" ref="eric5.Preferences.__init__.html#initRecentSettings" />
       <keyword name="initService" id="initService" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html#initService" />
       <keyword name="initService" id="initService" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html#initService" />
+      <keyword name="initService" id="initService" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html#initService" />
       <keyword name="initService" id="initService" ref="eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#initService" />
       <keyword name="init_checks_registry" id="init_checks_registry" ref="eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#init_checks_registry" />
       <keyword name="initializeResourceSearchPath" id="initializeResourceSearchPath" ref="eric5.Toolbox.Startup.html#initializeResourceSearchPath" />
@@ -13177,7 +13179,8 @@
       <keyword name="isatty" id="isatty" ref="eric5.DebugClients.Ruby.AsyncFile.html#isatty" />
       <keyword name="isinpath" id="isinpath" ref="eric5.Utilities.__init__.html#isinpath" />
       <keyword name="joinext" id="joinext" ref="eric5.Utilities.__init__.html#joinext" />
-      <keyword name="jsCheckSyntax" id="jsCheckSyntax" ref="eric5.Utilities.__init__.html#jsCheckSyntax" />
+      <keyword name="jsCheckSyntax" id="jsCheckSyntax" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html#jsCheckSyntax" />
+      <keyword name="jsCheckSyntax (Module)" id="jsCheckSyntax (Module)" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html" />
       <keyword name="jsclbr (Module)" id="jsclbr (Module)" ref="eric5.Utilities.ClassBrowsers.jsclbr.html" />
       <keyword name="largefiles (Module)" id="largefiles (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.LargefilesExtension.largefiles.html" />
       <keyword name="linesep" id="linesep" ref="eric5.Utilities.__init__.html#linesep" />
@@ -13223,6 +13226,7 @@
       <keyword name="normabsjoinpath" id="normabsjoinpath" ref="eric5.Utilities.__init__.html#normabsjoinpath" />
       <keyword name="normabspath" id="normabspath" ref="eric5.Utilities.__init__.html#normabspath" />
       <keyword name="normalizeCode" id="normalizeCode" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html#normalizeCode" />
+      <keyword name="normalizeCode" id="normalizeCode" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html#normalizeCode" />
       <keyword name="normcaseabspath" id="normcaseabspath" ref="eric5.Utilities.__init__.html#normcaseabspath" />
       <keyword name="normcasepath" id="normcasepath" ref="eric5.Utilities.__init__.html#normcasepath" />
       <keyword name="normjoinpath" id="normjoinpath" ref="eric5.Utilities.__init__.html#normjoinpath" />
@@ -13797,9 +13801,7 @@
       <file>eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html</file>
       <file>eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html</file>
       <file>eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html</file>
-      <file>eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html</file>
-      <file>eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html</file>
-      <file>eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.translations.html</file>
+      <file>eric5.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html</file>
       <file>eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html</file>
       <file>eric5.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html</file>
       <file>eric5.Plugins.DocumentationPlugins.Ericapi.EricapiConfigDialog.html</file>
@@ -14304,7 +14306,6 @@
       <file>index-eric5.Plugins.AboutPlugin.html</file>
       <file>index-eric5.Plugins.CheckerPlugins.CodeStyleChecker.html</file>
       <file>index-eric5.Plugins.CheckerPlugins.SyntaxChecker.html</file>
-      <file>index-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.html</file>
       <file>index-eric5.Plugins.CheckerPlugins.Tabnanny.html</file>
       <file>index-eric5.Plugins.CheckerPlugins.html</file>
       <file>index-eric5.Plugins.DocumentationPlugins.Ericapi.html</file>
--- a/Documentation/Source/eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html	Mon Apr 21 19:20:27 2014 +0200
@@ -119,13 +119,16 @@
 </dd>
 </dl><a NAME="SyntaxCheckService.addLanguage" ID="SyntaxCheckService.addLanguage"></a>
 <h4>SyntaxCheckService.addLanguage</h4>
-<b>addLanguage</b>(<i>lang, path, module, getArgs, getExt, callback, onError</i>)
+<b>addLanguage</b>(<i>lang, env, path, module, getArgs, getExt, callback, onError</i>)
 <p>
         Register the new language to the supported languages.
 </p><dl>
 <dt><i>lang</i></dt>
 <dd>
 new language to check syntax (str)
+</dd><dt><i>env</i></dt>
+<dd>
+the environment in which the checker is implemented (str)
 </dd><dt><i>path</i></dt>
 <dd>
 full path to the module (str)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html	Mon Apr 21 19:20:27 2014 +0200
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric5.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric5.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax</h1>
+<p>
+Module implementing the syntax check for Python 2/3.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr>
+<td><a href="#initService">initService</a></td>
+<td>Initialize the service and return the entry point.</td>
+</tr><tr>
+<td><a href="#jsCheckSyntax">jsCheckSyntax</a></td>
+<td>Function to check a Javascript source file for syntax errors.</td>
+</tr><tr>
+<td><a href="#normalizeCode">normalizeCode</a></td>
+<td>Function to normalize the given code.</td>
+</tr>
+</table>
+<hr /><hr />
+<a NAME="initService" ID="initService"></a>
+<h2>initService</h2>
+<b>initService</b>(<i></i>)
+<p>
+    Initialize the service and return the entry point.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+the entry point for the background client (function)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="jsCheckSyntax" ID="jsCheckSyntax"></a>
+<h2>jsCheckSyntax</h2>
+<b>jsCheckSyntax</b>(<i>file, codestring</i>)
+<p>
+    Function to check a Javascript source file for syntax errors.
+</p><dl>
+<dt><i>file</i></dt>
+<dd>
+source filename (string)
+</dd><dt><i>codestring</i></dt>
+<dd>
+string containing the code to check (string)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+dictionary with the keys 'error' and 'warnings' which
+            hold a list containing details about the error/ warnings
+            (file name, line number, column, codestring (only at syntax
+            errors), the message, a list with arguments for the message)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="normalizeCode" ID="normalizeCode"></a>
+<h2>normalizeCode</h2>
+<b>normalizeCode</b>(<i>codestring</i>)
+<p>
+    Function to normalize the given code.
+</p><dl>
+<dt><i>codestring</i></dt>
+<dd>
+code to be normalized (string)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+normalized code (string)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html	Mon Apr 21 16:37:10 2014 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,461 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker</h1>
-<p>
-Main module.
-</p><p>
-Implement the central Checker class.
-Also, it models the Bindings and Scopes.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>_MAGIC_GLOBALS</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#Argument">Argument</a></td>
-<td>Represents binding a name as an argument.</td>
-</tr><tr>
-<td><a href="#Assignment">Assignment</a></td>
-<td>Represents binding a name with an explicit assignment.</td>
-</tr><tr>
-<td><a href="#Binding">Binding</a></td>
-<td>Represents the binding of a value to a name.</td>
-</tr><tr>
-<td><a href="#Checker">Checker</a></td>
-<td>I check the cleanliness and sanity of Python code.</td>
-</tr><tr>
-<td><a href="#ClassDefinition">ClassDefinition</a></td>
-<td></td>
-</tr><tr>
-<td><a href="#ClassScope">ClassScope</a></td>
-<td></td>
-</tr><tr>
-<td><a href="#Definition">Definition</a></td>
-<td>A binding that defines a function or a class.</td>
-</tr><tr>
-<td><a href="#ExportBinding">ExportBinding</a></td>
-<td>A binding created by an C{__all__} assignment.</td>
-</tr><tr>
-<td><a href="#FunctionDefinition">FunctionDefinition</a></td>
-<td></td>
-</tr><tr>
-<td><a href="#FunctionScope">FunctionScope</a></td>
-<td>I represent a name scope for a function.</td>
-</tr><tr>
-<td><a href="#GeneratorScope">GeneratorScope</a></td>
-<td></td>
-</tr><tr>
-<td><a href="#Importation">Importation</a></td>
-<td>A binding created by an import statement.</td>
-</tr><tr>
-<td><a href="#ModuleScope">ModuleScope</a></td>
-<td></td>
-</tr><tr>
-<td><a href="#Scope">Scope</a></td>
-<td></td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#__init__">__init__</a></td>
-<td></td>
-</tr><tr>
-<td><a href="#__init___1">__init__</a></td>
-<td></td>
-</tr><tr>
-<td><a href="#__init___2">__init__</a></td>
-<td></td>
-</tr><tr>
-<td><a href="#__repr__">__repr__</a></td>
-<td></td>
-</tr><tr>
-<td><a href="#__repr___1">__repr__</a></td>
-<td></td>
-</tr><tr>
-<td><a href="#__str__">__str__</a></td>
-<td></td>
-</tr><tr>
-<td><a href="#getNodeName">getNodeName</a></td>
-<td></td>
-</tr><tr>
-<td><a href="#getNodeType">getNodeType</a></td>
-<td></td>
-</tr><tr>
-<td><a href="#getNodeType_1">getNodeType</a></td>
-<td></td>
-</tr><tr>
-<td><a href="#iter_child_nodes">iter_child_nodes</a></td>
-<td>Yield all direct child nodes of *node*, that is, all fields that are nodes and all items of fields that are lists of nodes.</td>
-</tr><tr>
-<td><a href="#names">names</a></td>
-<td>Return a list of the names referenced by this binding.</td>
-</tr><tr>
-<td><a href="#unusedAssignments">unusedAssignments</a></td>
-<td>Return a generator for the assignments which have not been used.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="Argument" ID="Argument"></a>
-<h2>Argument</h2>
-<p>
-    Represents binding a name as an argument.
-</p>
-<h3>Derived from</h3>
-Binding
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="Assignment" ID="Assignment"></a>
-<h2>Assignment</h2>
-<p>
-    Represents binding a name with an explicit assignment.
-</p><p>
-    The checker will raise warnings for any Assignment that isn't used. Also,
-    the checker does not consider assignments in tuple/list unpacking to be
-    Assignments, rather it treats them as simple Bindings.
-</p>
-<h3>Derived from</h3>
-Binding
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="ClassDefinition" ID="ClassDefinition"></a>
-<h2>ClassDefinition</h2>
-
-<h3>Derived from</h3>
-Definition
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="ClassScope" ID="ClassScope"></a>
-<h2>ClassScope</h2>
-
-<h3>Derived from</h3>
-Scope
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="Definition" ID="Definition"></a>
-<h2>Definition</h2>
-<p>
-    A binding that defines a function or a class.
-</p>
-<h3>Derived from</h3>
-Binding
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="ExportBinding" ID="ExportBinding"></a>
-<h2>ExportBinding</h2>
-<p>
-    A binding created by an C{__all__} assignment.  If the names in the list
-    can be determined statically, they will be treated as names for export and
-    additional checking applied to them.
-</p><p>
-    The only C{__all__} assignment that can be recognized is one which takes
-    the value of a literal list containing literal strings.  For example::
-</p><p>
-        __all__ = ["foo", "bar"]
-</p><p>
-    Names which are imported and not otherwise used but appear in the value of
-    C{__all__} will not have an unused import warning reported for them.
-</p>
-<h3>Derived from</h3>
-Binding
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="FunctionDefinition" ID="FunctionDefinition"></a>
-<h2>FunctionDefinition</h2>
-
-<h3>Derived from</h3>
-Definition
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="GeneratorScope" ID="GeneratorScope"></a>
-<h2>GeneratorScope</h2>
-
-<h3>Derived from</h3>
-Scope
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="ModuleScope" ID="ModuleScope"></a>
-<h2>ModuleScope</h2>
-
-<h3>Derived from</h3>
-Scope
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="Scope" ID="Scope"></a>
-<h2>Scope</h2>
-
-<h3>Derived from</h3>
-dict
-<h3>Class Attributes</h3>
-<table>
-<tr><td>importStarred</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="__init__" ID="__init__"></a>
-<h2>__init__</h2>
-<b>__init__</b>(<i>self, name, source</i>)
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="__init___1" ID="__init___1"></a>
-<h2>__init__</h2>
-<b>__init__</b>(<i>self, name, source</i>)
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="__init___2" ID="__init___2"></a>
-<h2>__init__</h2>
-<b>__init__</b>(<i>self</i>)
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="__repr__" ID="__repr__"></a>
-<h2>__repr__</h2>
-<b>__repr__</b>(<i>self</i>)
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="__repr___1" ID="__repr___1"></a>
-<h2>__repr__</h2>
-<b>__repr__</b>(<i>self</i>)
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="__str__" ID="__str__"></a>
-<h2>__str__</h2>
-<b>__str__</b>(<i>self</i>)
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getNodeName" ID="getNodeName"></a>
-<h2>getNodeName</h2>
-<b>getNodeName</b>(<i>node</i>)
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getNodeType" ID="getNodeType"></a>
-<h2>getNodeType</h2>
-<b>getNodeType</b>(<i>node_class</i>)
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getNodeType_1" ID="getNodeType_1"></a>
-<h2>getNodeType</h2>
-<b>getNodeType</b>(<i>node_class</i>)
-
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="iter_child_nodes" ID="iter_child_nodes"></a>
-<h2>iter_child_nodes</h2>
-<b>iter_child_nodes</b>(<i>node</i>)
-<p>
-        Yield all direct child nodes of *node*, that is, all fields that
-        are nodes and all items of fields that are lists of nodes.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="names" ID="names"></a>
-<h2>names</h2>
-<b>names</b>(<i>self</i>)
-<p>
-        Return a list of the names referenced by this binding.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="unusedAssignments" ID="unusedAssignments"></a>
-<h2>unusedAssignments</h2>
-<b>unusedAssignments</b>(<i>self</i>)
-<p>
-        Return a generator for the assignments which have not been used.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html	Mon Apr 21 16:37:10 2014 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,753 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages</h1>
-<p>
-Module implementing the messages for pyflakes.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#DoctestSyntaxError">DoctestSyntaxError</a></td>
-<td>Class defining the "Doctest syntax Error" message.</td>
-</tr><tr>
-<td><a href="#DuplicateArgument">DuplicateArgument</a></td>
-<td>Class defining the "Duplicate Argument" message.</td>
-</tr><tr>
-<td><a href="#ImportShadowedByLoopVar">ImportShadowedByLoopVar</a></td>
-<td>Class defining the "Import Shadowed By Loop Var" message.</td>
-</tr><tr>
-<td><a href="#ImportStarUsed">ImportStarUsed</a></td>
-<td>Class defining the "Import Star Used" message.</td>
-</tr><tr>
-<td><a href="#LateFutureImport">LateFutureImport</a></td>
-<td>Class defining the "Late Future Import" message.</td>
-</tr><tr>
-<td><a href="#Message">Message</a></td>
-<td>Class defining the base for all specific message classes.</td>
-</tr><tr>
-<td><a href="#Redefined">Redefined</a></td>
-<td>Class defining the "Redefined" message.</td>
-</tr><tr>
-<td><a href="#RedefinedInListComp">RedefinedInListComp</a></td>
-<td>Class defining the "Redefined In List Comprehension" message.</td>
-</tr><tr>
-<td><a href="#RedefinedWhileUnused">RedefinedWhileUnused</a></td>
-<td>Class defining the "Redefined While Unused" message.</td>
-</tr><tr>
-<td><a href="#UndefinedExport">UndefinedExport</a></td>
-<td>Class defining the "Undefined Export" message.</td>
-</tr><tr>
-<td><a href="#UndefinedLocal">UndefinedLocal</a></td>
-<td>Class defining the "Undefined Local Variable" message.</td>
-</tr><tr>
-<td><a href="#UndefinedName">UndefinedName</a></td>
-<td>Class defining the "Undefined Name" message.</td>
-</tr><tr>
-<td><a href="#UnusedImport">UnusedImport</a></td>
-<td>Class defining the "Unused Import" message.</td>
-</tr><tr>
-<td><a href="#UnusedVariable">UnusedVariable</a></td>
-<td>Class defining the "Unused Variable" message.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="DoctestSyntaxError" ID="DoctestSyntaxError"></a>
-<h2>DoctestSyntaxError</h2>
-<p>
-    Class defining the "Doctest syntax Error" message.
-</p>
-<h3>Derived from</h3>
-Message
-<h3>Class Attributes</h3>
-<table>
-<tr><td>message</td></tr><tr><td>message_id</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#DoctestSyntaxError.__init__">DoctestSyntaxError</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="DoctestSyntaxError.__init__" ID="DoctestSyntaxError.__init__"></a>
-<h4>DoctestSyntaxError (Constructor)</h4>
-<b>DoctestSyntaxError</b>(<i>filename, loc, position=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>filename</i></dt>
-<dd>
-name of the file (string)
-</dd><dt><i>loc</i></dt>
-<dd>
-location of the issue
-</dd><dt><i>position</i></dt>
-<dd>
-position of the syntax error
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="DuplicateArgument" ID="DuplicateArgument"></a>
-<h2>DuplicateArgument</h2>
-<p>
-    Class defining the "Duplicate Argument" message.
-</p>
-<h3>Derived from</h3>
-Message
-<h3>Class Attributes</h3>
-<table>
-<tr><td>message</td></tr><tr><td>message_id</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#DuplicateArgument.__init__">DuplicateArgument</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="DuplicateArgument.__init__" ID="DuplicateArgument.__init__"></a>
-<h4>DuplicateArgument (Constructor)</h4>
-<b>DuplicateArgument</b>(<i>filename, loc, name</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>filename</i></dt>
-<dd>
-name of the file (string)
-</dd><dt><i>loc</i></dt>
-<dd>
-location of the issue
-</dd><dt><i>name</i></dt>
-<dd>
-name of the duplicate argument (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="ImportShadowedByLoopVar" ID="ImportShadowedByLoopVar"></a>
-<h2>ImportShadowedByLoopVar</h2>
-<p>
-    Class defining the "Import Shadowed By Loop Var" message.
-</p>
-<h3>Derived from</h3>
-Message
-<h3>Class Attributes</h3>
-<table>
-<tr><td>message</td></tr><tr><td>message_id</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#ImportShadowedByLoopVar.__init__">ImportShadowedByLoopVar</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="ImportShadowedByLoopVar.__init__" ID="ImportShadowedByLoopVar.__init__"></a>
-<h4>ImportShadowedByLoopVar (Constructor)</h4>
-<b>ImportShadowedByLoopVar</b>(<i>filename, loc, name, orig_loc</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>filename</i></dt>
-<dd>
-name of the file (string)
-</dd><dt><i>loc</i></dt>
-<dd>
-location of the issue
-</dd><dt><i>name</i></dt>
-<dd>
-name of the shadowed import (string)
-</dd><dt><i>orig_loc</i></dt>
-<dd>
-location of the import
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="ImportStarUsed" ID="ImportStarUsed"></a>
-<h2>ImportStarUsed</h2>
-<p>
-    Class defining the "Import Star Used" message.
-</p>
-<h3>Derived from</h3>
-Message
-<h3>Class Attributes</h3>
-<table>
-<tr><td>message</td></tr><tr><td>message_id</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#ImportStarUsed.__init__">ImportStarUsed</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="ImportStarUsed.__init__" ID="ImportStarUsed.__init__"></a>
-<h4>ImportStarUsed (Constructor)</h4>
-<b>ImportStarUsed</b>(<i>filename, loc, modname</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>filename</i></dt>
-<dd>
-name of the file (string)
-</dd><dt><i>loc</i></dt>
-<dd>
-location of the issue
-</dd><dt><i>modname</i></dt>
-<dd>
-name of the module imported using star import (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="LateFutureImport" ID="LateFutureImport"></a>
-<h2>LateFutureImport</h2>
-<p>
-    Class defining the "Late Future Import" message.
-</p>
-<h3>Derived from</h3>
-Message
-<h3>Class Attributes</h3>
-<table>
-<tr><td>message</td></tr><tr><td>message_id</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#LateFutureImport.__init__">LateFutureImport</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="LateFutureImport.__init__" ID="LateFutureImport.__init__"></a>
-<h4>LateFutureImport (Constructor)</h4>
-<b>LateFutureImport</b>(<i>filename, loc, names</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>filename</i></dt>
-<dd>
-name of the file (string)
-</dd><dt><i>loc</i></dt>
-<dd>
-location of the issue
-</dd><dt><i>names</i></dt>
-<dd>
-names of the imported futures (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="Message" ID="Message"></a>
-<h2>Message</h2>
-<p>
-    Class defining the base for all specific message classes.
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>message</td></tr><tr><td>message_args</td></tr><tr><td>message_id</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#Message.__init__">Message</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#Message.__str__">__str__</a></td>
-<td>Special method return a string representation of the instance object.</td>
-</tr><tr>
-<td><a href="#Message.getMessageData">getMessageData</a></td>
-<td>Public method to get the individual message data elements.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="Message.__init__" ID="Message.__init__"></a>
-<h4>Message (Constructor)</h4>
-<b>Message</b>(<i>filename, loc</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>filename</i></dt>
-<dd>
-name of the file (string)
-</dd><dt><i>loc</i></dt>
-<dd>
-location of the issue
-</dd>
-</dl><a NAME="Message.__str__" ID="Message.__str__"></a>
-<h4>Message.__str__</h4>
-<b>__str__</b>(<i></i>)
-<p>
-        Special method return a string representation of the instance object.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-string representation of the object (string)
-</dd>
-</dl><a NAME="Message.getMessageData" ID="Message.getMessageData"></a>
-<h4>Message.getMessageData</h4>
-<b>getMessageData</b>(<i></i>)
-<p>
-        Public method to get the individual message data elements.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-tuple containing file name, line number, column, message ID
-            and message arguments (string, integer, integer, string, list)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="Redefined" ID="Redefined"></a>
-<h2>Redefined</h2>
-<p>
-    Class defining the "Redefined" message.
-</p>
-<h3>Derived from</h3>
-Message
-<h3>Class Attributes</h3>
-<table>
-<tr><td>message</td></tr><tr><td>message_id</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#Redefined.__init__">Redefined</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="Redefined.__init__" ID="Redefined.__init__"></a>
-<h4>Redefined (Constructor)</h4>
-<b>Redefined</b>(<i>filename, loc, name, orig_loc</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>filename</i></dt>
-<dd>
-name of the file (string)
-</dd><dt><i>loc</i></dt>
-<dd>
-location of the issue
-</dd><dt><i>name</i></dt>
-<dd>
-name of the redefined function (string)
-</dd><dt><i>orig_loc</i></dt>
-<dd>
-location of the original definition
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="RedefinedInListComp" ID="RedefinedInListComp"></a>
-<h2>RedefinedInListComp</h2>
-<p>
-    Class defining the "Redefined In List Comprehension" message.
-</p>
-<h3>Derived from</h3>
-Message
-<h3>Class Attributes</h3>
-<table>
-<tr><td>message</td></tr><tr><td>message_id</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#RedefinedInListComp.__init__">RedefinedInListComp</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="RedefinedInListComp.__init__" ID="RedefinedInListComp.__init__"></a>
-<h4>RedefinedInListComp (Constructor)</h4>
-<b>RedefinedInListComp</b>(<i>filename, loc, name, orig_loc</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>filename</i></dt>
-<dd>
-name of the file (string)
-</dd><dt><i>loc</i></dt>
-<dd>
-location of the issue
-</dd><dt><i>name</i></dt>
-<dd>
-name of the redefined object (string)
-</dd><dt><i>orig_loc</i></dt>
-<dd>
-location of the original definition
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="RedefinedWhileUnused" ID="RedefinedWhileUnused"></a>
-<h2>RedefinedWhileUnused</h2>
-<p>
-    Class defining the "Redefined While Unused" message.
-</p>
-<h3>Derived from</h3>
-Message
-<h3>Class Attributes</h3>
-<table>
-<tr><td>message</td></tr><tr><td>message_id</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#RedefinedWhileUnused.__init__">RedefinedWhileUnused</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="RedefinedWhileUnused.__init__" ID="RedefinedWhileUnused.__init__"></a>
-<h4>RedefinedWhileUnused (Constructor)</h4>
-<b>RedefinedWhileUnused</b>(<i>filename, loc, name, orig_loc</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>filename</i></dt>
-<dd>
-name of the file (string)
-</dd><dt><i>loc</i></dt>
-<dd>
-location of the issue
-</dd><dt><i>name</i></dt>
-<dd>
-name of the redefined object (string)
-</dd><dt><i>orig_loc</i></dt>
-<dd>
-location of the original definition
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="UndefinedExport" ID="UndefinedExport"></a>
-<h2>UndefinedExport</h2>
-<p>
-    Class defining the "Undefined Export" message.
-</p>
-<h3>Derived from</h3>
-Message
-<h3>Class Attributes</h3>
-<table>
-<tr><td>message</td></tr><tr><td>message_id</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#UndefinedExport.__init__">UndefinedExport</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="UndefinedExport.__init__" ID="UndefinedExport.__init__"></a>
-<h4>UndefinedExport (Constructor)</h4>
-<b>UndefinedExport</b>(<i>filename, loc, name</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>filename</i></dt>
-<dd>
-name of the file (string)
-</dd><dt><i>loc</i></dt>
-<dd>
-location of the issue
-</dd><dt><i>name</i></dt>
-<dd>
-undefined exported name (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="UndefinedLocal" ID="UndefinedLocal"></a>
-<h2>UndefinedLocal</h2>
-<p>
-    Class defining the "Undefined Local Variable" message.
-</p>
-<h3>Derived from</h3>
-Message
-<h3>Class Attributes</h3>
-<table>
-<tr><td>message</td></tr><tr><td>message_id</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#UndefinedLocal.__init__">UndefinedLocal</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="UndefinedLocal.__init__" ID="UndefinedLocal.__init__"></a>
-<h4>UndefinedLocal (Constructor)</h4>
-<b>UndefinedLocal</b>(<i>filename, loc, name, orig_loc</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>filename</i></dt>
-<dd>
-name of the file (string)
-</dd><dt><i>loc</i></dt>
-<dd>
-location of the issue
-</dd><dt><i>name</i></dt>
-<dd>
-name of the prematurely referenced variable (string)
-</dd><dt><i>orig_loc</i></dt>
-<dd>
-location of the variable definition
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="UndefinedName" ID="UndefinedName"></a>
-<h2>UndefinedName</h2>
-<p>
-    Class defining the "Undefined Name" message.
-</p>
-<h3>Derived from</h3>
-Message
-<h3>Class Attributes</h3>
-<table>
-<tr><td>message</td></tr><tr><td>message_id</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#UndefinedName.__init__">UndefinedName</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="UndefinedName.__init__" ID="UndefinedName.__init__"></a>
-<h4>UndefinedName (Constructor)</h4>
-<b>UndefinedName</b>(<i>filename, loc, name</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>filename</i></dt>
-<dd>
-name of the file (string)
-</dd><dt><i>loc</i></dt>
-<dd>
-location of the issue
-</dd><dt><i>name</i></dt>
-<dd>
-undefined name (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="UnusedImport" ID="UnusedImport"></a>
-<h2>UnusedImport</h2>
-<p>
-    Class defining the "Unused Import" message.
-</p>
-<h3>Derived from</h3>
-Message
-<h3>Class Attributes</h3>
-<table>
-<tr><td>message</td></tr><tr><td>message_id</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#UnusedImport.__init__">UnusedImport</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="UnusedImport.__init__" ID="UnusedImport.__init__"></a>
-<h4>UnusedImport (Constructor)</h4>
-<b>UnusedImport</b>(<i>filename, loc, name</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>filename</i></dt>
-<dd>
-name of the file (string)
-</dd><dt><i>loc</i></dt>
-<dd>
-location of the issue
-</dd><dt><i>name</i></dt>
-<dd>
-name of the unused import (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="UnusedVariable" ID="UnusedVariable"></a>
-<h2>UnusedVariable</h2>
-<p>
-    Class defining the "Unused Variable" message.
-</p><p>
-    Indicates that a variable has been explicitly assigned to but not actually
-    used.
-</p>
-<h3>Derived from</h3>
-Message
-<h3>Class Attributes</h3>
-<table>
-<tr><td>message</td></tr><tr><td>message_id</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#UnusedVariable.__init__">UnusedVariable</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="UnusedVariable.__init__" ID="UnusedVariable.__init__"></a>
-<h4>UnusedVariable (Constructor)</h4>
-<b>UnusedVariable</b>(<i>filename, loc, names</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>filename</i></dt>
-<dd>
-name of the file (string)
-</dd><dt><i>loc</i></dt>
-<dd>
-location of the issue
-</dd><dt><i>names</i></dt>
-<dd>
-names of unused variable (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.translations.html	Mon Apr 21 16:37:10 2014 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.translations</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.translations</h1>
-<p>
-Module implementing message translations for pyflakes warning messages.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>__all__</td></tr><tr><td>_messages</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#getTranslatedFlakesMessage">getTranslatedFlakesMessage</a></td>
-<td>Module function to get a translated and formatted message for a given pyflakes message ID.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="getTranslatedFlakesMessage" ID="getTranslatedFlakesMessage"></a>
-<h2>getTranslatedFlakesMessage</h2>
-<b>getTranslatedFlakesMessage</b>(<i>message_id, message_args</i>)
-<p>
-    Module function to get a translated and formatted message for a
-    given pyflakes message ID.
-</p><dl>
-<dt><i>message_id</i></dt>
-<dd>
-message ID (string)
-</dd><dt><i>message_args</i></dt>
-<dd>
-arguments for a formatted message (list)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-translated and formatted message (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric5.Plugins.PluginAbout.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginAbout.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginCodeStyleChecker.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginCodeStyleChecker.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginEricapi.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginEricapi.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginEricdoc.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginEricdoc.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginSyntaxChecker.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginSyntaxChecker.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginTabnanny.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginTabnanny.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginVcsMercurial.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginVcsMercurial.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>mercurialCfgPluginObject</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>mercurialCfgPluginObject</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginVcsPySvn.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginVcsPySvn.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>subversionCfgPluginObject</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>subversionCfgPluginObject</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginVcsSubversion.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginVcsSubversion.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>subversionCfgPluginObject</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>subversionCfgPluginObject</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginVmListspace.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginVmListspace.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>displayString</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>displayString</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginVmTabview.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginVmTabview.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>displayString</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>displayString</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginWizardE5MessageBox.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginWizardE5MessageBox.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginWizardPyRegExp.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginWizardPyRegExp.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginWizardQColorDialog.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginWizardQColorDialog.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginWizardQFileDialog.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginWizardQFileDialog.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginWizardQFontDialog.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginWizardQFontDialog.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginWizardQInputDialog.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginWizardQInputDialog.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginWizardQMessageBox.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginWizardQMessageBox.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginWizardQRegExp.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginWizardQRegExp.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Plugins.PluginWizardQRegularExpression.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Plugins.PluginWizardQRegularExpression.html	Mon Apr 21 19:20:27 2014 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/eric5.Utilities.__init__.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/eric5.Utilities.__init__.html	Mon Apr 21 19:20:27 2014 +0200
@@ -169,9 +169,6 @@
 <td><a href="#joinext">joinext</a></td>
 <td>Function to join a file extension to a path.</td>
 </tr><tr>
-<td><a href="#jsCheckSyntax">jsCheckSyntax</a></td>
-<td>Function to check a Javascript source file for syntax errors.</td>
-</tr><tr>
 <td><a href="#linesep">linesep</a></td>
 <td>Function to return the lineseparator used by the editor.</td>
 </tr><tr>
@@ -1180,29 +1177,6 @@
 </dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
-<a NAME="jsCheckSyntax" ID="jsCheckSyntax"></a>
-<h2>jsCheckSyntax</h2>
-<b>jsCheckSyntax</b>(<i>file, codestring=""</i>)
-<p>
-    Function to check a Javascript source file for syntax errors.
-</p><dl>
-<dt><i>file</i></dt>
-<dd>
-source filename (string)
-</dd><dt><i>codestring</i></dt>
-<dd>
-string containing the code to check (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-A tuple indicating status (True = an error was found), the
-        file name, the line number and the error message (boolean, string,
-        string, string). The values are only valid, if the status is True.
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
 <a NAME="linesep" ID="linesep"></a>
 <h2>linesep</h2>
 <b>linesep</b>(<i></i>)
--- a/Documentation/Source/index-eric5.Plugins.CheckerPlugins.SyntaxChecker.html	Mon Apr 21 16:37:10 2014 +0200
+++ b/Documentation/Source/index-eric5.Plugins.CheckerPlugins.SyntaxChecker.html	Mon Apr 21 19:20:27 2014 +0200
@@ -36,6 +36,9 @@
 </tr><tr>
 <td><a href="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html">SyntaxCheckerDialog</a></td>
 <td>Module implementing a simple Python syntax checker.</td>
+</tr><tr>
+<td><a href="eric5.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html">jsCheckSyntax</a></td>
+<td>Module implementing the syntax check for Python 2/3.</td>
 </tr>
 </table>
 </body></html>
\ No newline at end of file
--- a/Documentation/Source/index-eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.html	Mon Apr 21 16:37:10 2014 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes</h1>
-<p>
-Package containg pyflakes adapted for Qt.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.checker.html">checker</a></td>
-<td>Main module.</td>
-</tr><tr>
-<td><a href="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.messages.html">messages</a></td>
-<td>Module implementing the messages for pyflakes.</td>
-</tr><tr>
-<td><a href="eric5.Plugins.CheckerPlugins.SyntaxChecker.pyflakes.translations.html">translations</a></td>
-<td>Module implementing message translations for pyflakes warning messages.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
Binary file Documentation/eric5-plugin.odt has changed
Binary file Documentation/eric5-plugin.pdf has changed
--- a/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheck.py	Mon Apr 21 16:37:10 2014 +0200
+++ b/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheck.py	Mon Apr 21 19:20:27 2014 +0200
@@ -7,6 +7,7 @@
 """
 Module implementing the syntax check for Python 2/3.
 """
+import ast
 import re
 import sys
 import traceback
@@ -111,8 +112,8 @@
             template = quixote.ptl_compile.Template(codestring, file_enc)
             template.compile()
         else:
-            # ast.PyCF_ONLY_AST = 1024, speed optimisation
-            module = builtins.compile(codestring, file_enc, 'exec', 1024)
+            module = builtins.compile(
+                codestring, file_enc, 'exec', ast.PyCF_ONLY_AST)
     except SyntaxError as detail:
         index = 0
         code = ""
--- a/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py	Mon Apr 21 16:37:10 2014 +0200
+++ b/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py	Mon Apr 21 19:20:27 2014 +0200
@@ -49,18 +49,19 @@
         if pyVer:
             return 'Python{0}'.format(pyVer)
         
-        for lang, (getArgs, getExt) in self.__supportedLanguages.items():
+        for lang, (env, getArgs, getExt) in self.__supportedLanguages.items():
             if filename.endswith(tuple(getExt())):
                 return lang
         
         return None
 
     def addLanguage(
-            self, lang, path, module, getArgs, getExt, callback, onError):
+            self, lang, env, path, module, getArgs, getExt, callback, onError):
         """
         Register the new language to the supported languages.
         
         @param lang new language to check syntax (str)
+        @param env the environment in which the checker is implemented (str)
         @param path full path to the module (str)
         @param module name to import (str)
         @param getArgs function to collect the required arguments to call the
@@ -71,10 +72,10 @@
         @param onError callback function if client or service isn't available
             (function)
         """
-        self.__supportedLanguages[lang] = getArgs, getExt
+        self.__supportedLanguages[lang] = env, getArgs, getExt
         # Connect to the background service
         self.backgroundService.serviceConnect(
-            'syntax', lang, path, module, callback, onError)
+            '{0}Syntax'.format(lang), env, path, module, callback, onError)
 
     def getLanguages(self):
         """
@@ -91,7 +92,8 @@
         @param lang language to remove (str)
         """
         self.__supportedLanguages.pop(lang, None)
-        self.backgroundService.serviceDisconnect('syntax', lang)
+        self.backgroundService.serviceDisconnect(
+            '{0}Syntax'.format(lang), lang)
 
     def getExtensions(self):
         """
@@ -100,7 +102,7 @@
         @return set of all supported file extensions (set of str)
         """
         extensions = set()
-        for getArgs, getExt in self.__supportedLanguages.values():
+        for env, getArgs, getExt in self.__supportedLanguages.values():
             for ext in getExt():
                 extensions.add(ext)
         return extensions
@@ -121,6 +123,7 @@
             return
         data = [source]
         # Call the getArgs function to get the required arguments
-        args = self.__supportedLanguages[lang][0]()
-        data.extend(args)
-        self.backgroundService.enqueueRequest('syntax', lang, filename, data)
+        env, args, getExt = self.__supportedLanguages[lang]
+        data.extend(args())
+        self.backgroundService.enqueueRequest(
+            '{0}Syntax'.format(lang), env, filename, data)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Plugins/CheckerPlugins/SyntaxChecker/jsCheckSyntax.py	Mon Apr 21 19:20:27 2014 +0200
@@ -0,0 +1,77 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2014 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+# pylint: disable=C0103
+
+"""
+Module implementing the syntax check for Python 2/3.
+"""
+import os
+import sys
+
+
+def initService():
+    """
+    Initialize the service and return the entry point.
+    
+    @return the entry point for the background client (function)
+    """
+    path = __file__
+    for i in range(4):
+        path = os.path.dirname(path)
+    sys.path.insert(2, os.path.join(path, "ThirdParty", "Jasy"))
+    return jsCheckSyntax
+
+
+def normalizeCode(codestring):
+    """
+    Function to normalize the given code.
+    
+    @param codestring code to be normalized (string)
+    @return normalized code (string)
+    """
+    codestring = codestring.replace("\r\n", "\n").replace("\r", "\n")
+
+    if codestring and codestring[-1] != '\n':
+        codestring = codestring + '\n'
+
+    # Check type for py2: if not str it's unicode
+#    if sys.version_info[0] == 2:
+#        try:
+#            codestring = codestring.encode('utf-8')
+#        except UnicodeError:
+#            pass
+    
+    return codestring
+
+
+def jsCheckSyntax(file, codestring):
+    """
+    Function to check a Javascript source file for syntax errors.
+    
+    @param file source filename (string)
+    @param codestring string containing the code to check (string)
+    @return dictionary with the keys 'error' and 'warnings' which
+            hold a list containing details about the error/ warnings
+            (file name, line number, column, codestring (only at syntax
+            errors), the message, a list with arguments for the message)
+    """
+    import jasy.js.parse.Parser as jsParser
+    import jasy.js.tokenize.Tokenizer as jsTokenizer
+    
+    codestring = normalizeCode(codestring)
+    
+    try:
+        jsParser.parse(codestring, file)
+    except (jsParser.SyntaxError, jsTokenizer.ParseError) as exc:
+        details = exc.args[0]
+        error, details = details.splitlines()
+        fn, line = details.strip().rsplit(":", 1)
+        error = error.split(":", 1)[1].strip()
+        
+        cline = min(len(codestring.splitlines()), int(line)) - 1
+        code = codestring.splitlines()[cline]
+        return [{'error': (fn, int(line), 0, code, error)}]
+    
+    return [{}]
--- a/Plugins/PluginSyntaxChecker.py	Mon Apr 21 16:37:10 2014 +0200
+++ b/Plugins/PluginSyntaxChecker.py	Mon Apr 21 19:20:27 2014 +0200
@@ -64,21 +64,33 @@
                             'SyntaxChecker')
         
         self.syntaxCheckService.addLanguage(
-            'Python2', path, 'SyntaxCheck',
+            'Python2', 'Python2', path, 'SyntaxCheck',
             self.__getPythonOptions,
             lambda: Preferences.getPython("PythonExtensions"),
             self.__translateSyntaxCheck,
             lambda fx, lng, fn, msg:
-                self.syntaxCheckService.syntaxChecked.emit(
+                self.syntaxCheckService.syntaxChecked.emit(  # __IGNORE_WARNING__
                     fn, {'error': (fn, 0, 0, '', msg)}))
         
         self.syntaxCheckService.addLanguage(
-            'Python3', path, 'SyntaxCheck',
+            'Python3', 'Python3', path, 'SyntaxCheck',
             self.__getPythonOptions,
             lambda: Preferences.getPython("Python3Extensions"),
             self.__translateSyntaxCheck,
             lambda fx, lng, fn, msg:
-                self.syntaxCheckService.syntaxChecked.emit(
+                self.syntaxCheckService.syntaxChecked.emit(  # __IGNORE_WARNING__
+                    fn, {'error': (fn, 0, 0, '', msg)}))
+        
+        # Jasy isn't yet compatible to Python2
+        self.syntaxCheckService.addLanguage(
+            'JavaScript', 'Python3', path,
+            'jsCheckSyntax',
+            lambda: [],  # No options
+            lambda: ['.js'],
+            lambda fn, problems:
+                self.syntaxCheckService.syntaxChecked.emit(fn, problems),  # __IGNORE_WARNING__
+            lambda fx, lng, fn, msg:
+                self.syntaxCheckService.syntaxChecked.emit(  # __IGNORE_WARNING__
                     fn, {'error': (fn, 0, 0, '', msg)}))
 
     def __initialize(self):
--- a/QScintilla/Editor.py	Mon Apr 21 16:37:10 2014 +0200
+++ b/QScintilla/Editor.py	Mon Apr 21 19:20:27 2014 +0200
@@ -1509,7 +1509,7 @@
                 pyVer = Utilities.determinePythonVersion(
                     filename, self.text(0), self)
                 language = "Python{0}".format(pyVer)
-            if language in ['Python2', 'Python3']:
+            if language in ['Python2', 'Python3', 'Ruby', 'JavaScript']:
                 self.filetype = language
             else:
                 self.filetype = ""
--- a/UI/BrowserModel.py	Mon Apr 21 16:37:10 2014 +0200
+++ b/UI/BrowserModel.py	Mon Apr 21 19:20:27 2014 +0200
@@ -14,6 +14,7 @@
     pass
 
 import os
+import sys
 import fnmatch
 import json
 
@@ -1090,7 +1091,7 @@
         elif self.isJavaScriptFile():
             pixName = "fileJavascript.png"
             self._populated = False
-            self._lazyPopulation = True
+            self._lazyPopulation = sys.version_info[0] == 3
             self._moduleName = os.path.basename(finfo)
         else:
             pixName = "fileMisc.png"
--- a/Utilities/ClassBrowsers/__init__.py	Mon Apr 21 16:37:10 2014 +0200
+++ b/Utilities/ClassBrowsers/__init__.py	Mon Apr 21 19:20:27 2014 +0200
@@ -20,6 +20,7 @@
 
 import os
 import imp
+import sys
 
 import Preferences
 
@@ -62,7 +63,7 @@
         from . import rbclbr
         dict = rbclbr.readmodule_ex(module, path)
         rbclbr._modules.clear()
-    elif ext in __extensions["JavaScript"]:
+    elif ext in __extensions["JavaScript"] and sys.version_info[0] == 3:
         from . import jsclbr
         dict = jsclbr.readmodule_ex(module, path)
         jsclbr._modules.clear()
--- a/Utilities/__init__.py	Mon Apr 21 16:37:10 2014 +0200
+++ b/Utilities/__init__.py	Mon Apr 21 19:20:27 2014 +0200
@@ -1738,46 +1738,3 @@
     nameBuffer = ctypes.create_unicode_buffer(size.contents.value)
     GetUserNameEx(NameDisplay, nameBuffer, size)
     return nameBuffer.value
-
-###############################################################################
-# Javascript related functions below
-###############################################################################
-
-
-def jsCheckSyntax(file, codestring=""):
-    """
-    Function to check a Javascript source file for syntax errors.
-    
-    @param file source filename (string)
-    @param codestring string containing the code to check (string)
-    @return A tuple indicating status (True = an error was found), the
-        file name, the line number and the error message (boolean, string,
-        string, string). The values are only valid, if the status is True.
-    """
-    import jasy.js.parse.Parser as jsParser
-    import jasy.js.tokenize.Tokenizer as jsTokenizer
-    
-    if not codestring:
-        try:
-            codestring = readEncodedFile(file)[0]
-        except (UnicodeDecodeError, IOError):
-            return (False, None, None, None)
-    
-    # normalize line endings
-    codestring = codestring.replace("\r\n", "\n")
-    codestring = codestring.replace("\r", "\n")
-    
-    # ensure source ends with an eol
-    if codestring and codestring[-1] != '\n':
-        codestring = codestring + '\n'
-    
-    try:
-        jsParser.parse(codestring, file)
-    except (jsParser.SyntaxError, jsTokenizer.ParseError) as exc:
-        details = exc.args[0]
-        error, details = details.splitlines()
-        fn, line = details.strip().rsplit(":", 1)
-        error = error.split(":", 1)[1].strip()
-        return (True, fn, line, error)
-    
-    return (False, None, None, None)
--- a/eric5.e4p	Mon Apr 21 16:37:10 2014 +0200
+++ b/eric5.e4p	Mon Apr 21 19:20:27 2014 +0200
@@ -1137,6 +1137,7 @@
     <Source>Plugins/CheckerPlugins/SyntaxChecker/pyflakes/checker.py</Source>
     <Source>Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py</Source>
     <Source>Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py</Source>
+    <Source>Plugins/CheckerPlugins/SyntaxChecker/jsCheckSyntax.py</Source>
   </Sources>
   <Forms>
     <Form>PyUnit/UnittestDialog.ui</Form>
@@ -1768,6 +1769,7 @@
                 <string>.directory</string>
                 <string>.issues</string>
                 <string>data</string>
+                <string>pyflakes</string>
               </list>
             </value>
             <key>

eric ide

mercurial