Regenerated the source docu.

Sat, 25 Mar 2017 17:37:44 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 25 Mar 2017 17:37:44 +0100
changeset 5662
2c99fa1072b6
parent 5661
ae4f5cdc3d00
child 5663
52a91f9a7a76

Regenerated the source docu.

APIs/Python3/eric6.api file | annotate | diff | comparison | revisions
APIs/Python3/eric6.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/eric6.DebugClients.Python.DebugBase.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Debugger.DebugServer.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Debugger.DebugUI.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Debugger.DebuggerInterfaceNone.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Debugger.DebuggerInterfacePython2.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Debugger.DebuggerInterfacePython3.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric6.Plugins.CheckerPlugins.CodeStyleChecker.html file | annotate | diff | comparison | revisions
eric6.e4p file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric6.api	Sat Mar 25 17:36:50 2017 +0100
+++ b/APIs/Python3/eric6.api	Sat Mar 25 17:37:44 2017 +0100
@@ -179,6 +179,7 @@
 eric6.DebugClients.Python.DebugBase.DebugBase.getStack?4(frame=None, applyTrace=False)
 eric6.DebugClients.Python.DebugBase.DebugBase.go?4(special)
 eric6.DebugClients.Python.DebugBase.DebugBase.lib?7
+eric6.DebugClients.Python.DebugBase.DebugBase.move_instruction_pointer?4(lineno)
 eric6.DebugClients.Python.DebugBase.DebugBase.pathsToSkip?7
 eric6.DebugClients.Python.DebugBase.DebugBase.profile?4(frame, event, arg)
 eric6.DebugClients.Python.DebugBase.DebugBase.profileWithRecursion?4(frame, event, arg)
@@ -440,6 +441,7 @@
 eric6.Debugger.DebugServer.DebugServer.remoteCoverage?4(fn, argv, wd, env, autoClearShell=True, erase=False, forProject=False, runInConsole=False, clientType="")
 eric6.Debugger.DebugServer.DebugServer.remoteEnvironment?4(env)
 eric6.Debugger.DebugServer.DebugServer.remoteLoad?4(fn, argv, wd, env, autoClearShell=True, tracePython=False, autoContinue=True, forProject=False, runInConsole=False, autoFork=False, forkChild=False, clientType="", enableCallTrace=False)
+eric6.Debugger.DebugServer.DebugServer.remoteMoveIP?4(line)
 eric6.Debugger.DebugServer.DebugServer.remoteProfile?4(fn, argv, wd, env, autoClearShell=True, erase=False, forProject=False, runInConsole=False, clientType="")
 eric6.Debugger.DebugServer.DebugServer.remoteRawInput?4(s)
 eric6.Debugger.DebugServer.DebugServer.remoteRun?4(fn, argv, wd, env, autoClearShell=True, forProject=False, runInConsole=False, autoFork=False, forkChild=False, clientType="")
@@ -556,6 +558,7 @@
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteEnvironment?4(env)
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteEval?4(arg)
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteLoad?4(fn, argv, wd, traceInterpreter=False, autoContinue=True, autoFork=False, forkChild=False)
+eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteMoveIP?4(line)
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteProfile?4(fn, argv, wd, erase=False)
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteRawInput?4(s)
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteRun?4(fn, argv, wd, autoFork=False, forkChild=False)
@@ -597,6 +600,7 @@
 eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteCoverage?4(fn, argv, wd, erase=False)
 eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteEnvironment?4(env)
 eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteLoad?4(fn, argv, wd, traceInterpreter=False, autoContinue=True, autoFork=False, forkChild=False)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteMoveIP?4(line)
 eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteProfile?4(fn, argv, wd, erase=False)
 eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteRawInput?4(s)
 eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteRun?4(fn, argv, wd, autoFork=False, forkChild=False)
@@ -638,6 +642,7 @@
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteCoverage?4(fn, argv, wd, erase=False)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteEnvironment?4(env)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteLoad?4(fn, argv, wd, traceInterpreter=False, autoContinue=True, autoFork=False, forkChild=False)
+eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteMoveIP?4(line)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteProfile?4(fn, argv, wd, erase=False)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteRawInput?4(s)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteRun?4(fn, argv, wd, autoFork=False, forkChild=False)
@@ -3964,6 +3969,13 @@
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.Reindenter.run?4()
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.Reindenter?1(sourceLines)
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleStatisticsDialog.CodeStyleStatisticsDialog?1(statistics, parent=None)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.ComplexityChecker.Codes?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.ComplexityChecker.run?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.ComplexityChecker?1(source, filename, select, ignore, args)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.LineComplexityVisitor.score?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.LineComplexityVisitor.sortedList?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.LineComplexityVisitor.visit?4(node)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.LineComplexityVisitor?1()
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.DocStyleChecker.Codes?7
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.DocStyleChecker.run?4()
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.DocStyleChecker.unpackArgs?4()
@@ -3975,9 +3987,6 @@
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.DocStyleContext.ssource?4()
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.DocStyleContext.start?4()
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.DocStyleContext?1(source, startLine, contextType)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker.McCabeChecker.Codes?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker.McCabeChecker.run?4()
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker.McCabeChecker?1(source, filename, select, ignore, maxComplexity=10)
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.MiscellaneousChecker.BuiltinsWhiteList?7
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.MiscellaneousChecker.Codes?7
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.MiscellaneousChecker.FormatFieldRegex?7
--- a/APIs/Python3/eric6.bas	Sat Mar 25 17:36:50 2017 +0100
+++ b/APIs/Python3/eric6.bas	Sat Mar 25 17:37:44 2017 +0100
@@ -506,6 +506,7 @@
 LexerYAML Lexer QsciLexerYAML
 LfConvertDataDialog QDialog Ui_LfConvertDataDialog
 LfRevisionsInputDialog QDialog Ui_LfRevisionsInputDialog
+LineComplexityVisitor ast.NodeVisitor
 ListResolver BaseResolver
 Listspace ViewManager
 LogViewer QWidget
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Sat Mar 25 17:36:50 2017 +0100
+++ b/Documentation/Help/source.qhp	Sat Mar 25 17:37:44 2017 +0100
@@ -478,8 +478,8 @@
                 <section title="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCodeSelectionDialog" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCodeSelectionDialog.html" />
                 <section title="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html" />
                 <section title="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleStatisticsDialog" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleStatisticsDialog.html" />
+                <section title="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html" />
                 <section title="eric6.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html" />
-                <section title="eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker.html" />
                 <section title="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html" />
                 <section title="eric6.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html" />
                 <section title="eric6.Plugins.CheckerPlugins.CodeStyleChecker.mccabe" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.mccabe.html" />
@@ -2995,6 +2995,15 @@
       <keyword name="CompleterRuby.__inSingleQuotedString" id="CompleterRuby.__inSingleQuotedString" ref="eric6.QScintilla.TypingCompleters.CompleterRuby.html#CompleterRuby.__inSingleQuotedString" />
       <keyword name="CompleterRuby.charAdded" id="CompleterRuby.charAdded" ref="eric6.QScintilla.TypingCompleters.CompleterRuby.html#CompleterRuby.charAdded" />
       <keyword name="CompleterRuby.readSettings" id="CompleterRuby.readSettings" ref="eric6.QScintilla.TypingCompleters.CompleterRuby.html#CompleterRuby.readSettings" />
+      <keyword name="ComplexityChecker" id="ComplexityChecker" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html#ComplexityChecker" />
+      <keyword name="ComplexityChecker (Constructor)" id="ComplexityChecker (Constructor)" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html#ComplexityChecker.__init__" />
+      <keyword name="ComplexityChecker (Module)" id="ComplexityChecker (Module)" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html" />
+      <keyword name="ComplexityChecker.__checkLineComplexity" id="ComplexityChecker.__checkLineComplexity" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html#ComplexityChecker.__checkLineComplexity" />
+      <keyword name="ComplexityChecker.__checkMcCabeComplexity" id="ComplexityChecker.__checkMcCabeComplexity" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html#ComplexityChecker.__checkMcCabeComplexity" />
+      <keyword name="ComplexityChecker.__error" id="ComplexityChecker.__error" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html#ComplexityChecker.__error" />
+      <keyword name="ComplexityChecker.__ignoreCode" id="ComplexityChecker.__ignoreCode" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html#ComplexityChecker.__ignoreCode" />
+      <keyword name="ComplexityChecker.__reportInvalidSyntax" id="ComplexityChecker.__reportInvalidSyntax" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html#ComplexityChecker.__reportInvalidSyntax" />
+      <keyword name="ComplexityChecker.run" id="ComplexityChecker.run" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html#ComplexityChecker.run" />
       <keyword name="Config (Module)" id="Config (Module)" ref="eric6.Debugger.Config.html" />
       <keyword name="Config (Module)" id="Config (Module)" ref="eric6.DocumentationTools.Config.html" />
       <keyword name="Config (Module)" id="Config (Module)" ref="eric6.E5XML.Config.html" />
@@ -3314,6 +3323,7 @@
       <keyword name="DebugBase.getFrameLocals" id="DebugBase.getFrameLocals" ref="eric6.DebugClients.Python.DebugBase.html#DebugBase.getFrameLocals" />
       <keyword name="DebugBase.getStack" id="DebugBase.getStack" ref="eric6.DebugClients.Python.DebugBase.html#DebugBase.getStack" />
       <keyword name="DebugBase.go" id="DebugBase.go" ref="eric6.DebugClients.Python.DebugBase.html#DebugBase.go" />
+      <keyword name="DebugBase.move_instruction_pointer" id="DebugBase.move_instruction_pointer" ref="eric6.DebugClients.Python.DebugBase.html#DebugBase.move_instruction_pointer" />
       <keyword name="DebugBase.profile" id="DebugBase.profile" ref="eric6.DebugClients.Python.DebugBase.html#DebugBase.profile" />
       <keyword name="DebugBase.profileWithRecursion" id="DebugBase.profileWithRecursion" ref="eric6.DebugClients.Python.DebugBase.html#DebugBase.profileWithRecursion" />
       <keyword name="DebugBase.run" id="DebugBase.run" ref="eric6.DebugClients.Python.DebugBase.html#DebugBase.run" />
@@ -3454,6 +3464,7 @@
       <keyword name="DebugServer.remoteCoverage" id="DebugServer.remoteCoverage" ref="eric6.Debugger.DebugServer.html#DebugServer.remoteCoverage" />
       <keyword name="DebugServer.remoteEnvironment" id="DebugServer.remoteEnvironment" ref="eric6.Debugger.DebugServer.html#DebugServer.remoteEnvironment" />
       <keyword name="DebugServer.remoteLoad" id="DebugServer.remoteLoad" ref="eric6.Debugger.DebugServer.html#DebugServer.remoteLoad" />
+      <keyword name="DebugServer.remoteMoveIP" id="DebugServer.remoteMoveIP" ref="eric6.Debugger.DebugServer.html#DebugServer.remoteMoveIP" />
       <keyword name="DebugServer.remoteProfile" id="DebugServer.remoteProfile" ref="eric6.Debugger.DebugServer.html#DebugServer.remoteProfile" />
       <keyword name="DebugServer.remoteRawInput" id="DebugServer.remoteRawInput" ref="eric6.Debugger.DebugServer.html#DebugServer.remoteRawInput" />
       <keyword name="DebugServer.remoteRun" id="DebugServer.remoteRun" ref="eric6.Debugger.DebugServer.html#DebugServer.remoteRun" />
@@ -3530,6 +3541,7 @@
       <keyword name="DebugUI.__getClientVariables" id="DebugUI.__getClientVariables" ref="eric6.Debugger.DebugUI.html#DebugUI.__getClientVariables" />
       <keyword name="DebugUI.__getThreadList" id="DebugUI.__getThreadList" ref="eric6.Debugger.DebugUI.html#DebugUI.__getThreadList" />
       <keyword name="DebugUI.__lastEditorClosed" id="DebugUI.__lastEditorClosed" ref="eric6.Debugger.DebugUI.html#DebugUI.__lastEditorClosed" />
+      <keyword name="DebugUI.__moveInstructionPointer" id="DebugUI.__moveInstructionPointer" ref="eric6.Debugger.DebugUI.html#DebugUI.__moveInstructionPointer" />
       <keyword name="DebugUI.__nextBreakpoint" id="DebugUI.__nextBreakpoint" ref="eric6.Debugger.DebugUI.html#DebugUI.__nextBreakpoint" />
       <keyword name="DebugUI.__passiveDebugStarted" id="DebugUI.__passiveDebugStarted" ref="eric6.Debugger.DebugUI.html#DebugUI.__passiveDebugStarted" />
       <keyword name="DebugUI.__previousBreakpoint" id="DebugUI.__previousBreakpoint" ref="eric6.Debugger.DebugUI.html#DebugUI.__previousBreakpoint" />
@@ -3626,6 +3638,7 @@
       <keyword name="DebuggerInterfaceNone.remoteEnvironment" id="DebuggerInterfaceNone.remoteEnvironment" ref="eric6.Debugger.DebuggerInterfaceNone.html#DebuggerInterfaceNone.remoteEnvironment" />
       <keyword name="DebuggerInterfaceNone.remoteEval" id="DebuggerInterfaceNone.remoteEval" ref="eric6.Debugger.DebuggerInterfaceNone.html#DebuggerInterfaceNone.remoteEval" />
       <keyword name="DebuggerInterfaceNone.remoteLoad" id="DebuggerInterfaceNone.remoteLoad" ref="eric6.Debugger.DebuggerInterfaceNone.html#DebuggerInterfaceNone.remoteLoad" />
+      <keyword name="DebuggerInterfaceNone.remoteMoveIP" id="DebuggerInterfaceNone.remoteMoveIP" ref="eric6.Debugger.DebuggerInterfaceNone.html#DebuggerInterfaceNone.remoteMoveIP" />
       <keyword name="DebuggerInterfaceNone.remoteProfile" id="DebuggerInterfaceNone.remoteProfile" ref="eric6.Debugger.DebuggerInterfaceNone.html#DebuggerInterfaceNone.remoteProfile" />
       <keyword name="DebuggerInterfaceNone.remoteRawInput" id="DebuggerInterfaceNone.remoteRawInput" ref="eric6.Debugger.DebuggerInterfaceNone.html#DebuggerInterfaceNone.remoteRawInput" />
       <keyword name="DebuggerInterfaceNone.remoteRun" id="DebuggerInterfaceNone.remoteRun" ref="eric6.Debugger.DebuggerInterfaceNone.html#DebuggerInterfaceNone.remoteRun" />
@@ -3673,6 +3686,7 @@
       <keyword name="DebuggerInterfacePython2.remoteCoverage" id="DebuggerInterfacePython2.remoteCoverage" ref="eric6.Debugger.DebuggerInterfacePython2.html#DebuggerInterfacePython2.remoteCoverage" />
       <keyword name="DebuggerInterfacePython2.remoteEnvironment" id="DebuggerInterfacePython2.remoteEnvironment" ref="eric6.Debugger.DebuggerInterfacePython2.html#DebuggerInterfacePython2.remoteEnvironment" />
       <keyword name="DebuggerInterfacePython2.remoteLoad" id="DebuggerInterfacePython2.remoteLoad" ref="eric6.Debugger.DebuggerInterfacePython2.html#DebuggerInterfacePython2.remoteLoad" />
+      <keyword name="DebuggerInterfacePython2.remoteMoveIP" id="DebuggerInterfacePython2.remoteMoveIP" ref="eric6.Debugger.DebuggerInterfacePython2.html#DebuggerInterfacePython2.remoteMoveIP" />
       <keyword name="DebuggerInterfacePython2.remoteProfile" id="DebuggerInterfacePython2.remoteProfile" ref="eric6.Debugger.DebuggerInterfacePython2.html#DebuggerInterfacePython2.remoteProfile" />
       <keyword name="DebuggerInterfacePython2.remoteRawInput" id="DebuggerInterfacePython2.remoteRawInput" ref="eric6.Debugger.DebuggerInterfacePython2.html#DebuggerInterfacePython2.remoteRawInput" />
       <keyword name="DebuggerInterfacePython2.remoteRun" id="DebuggerInterfacePython2.remoteRun" ref="eric6.Debugger.DebuggerInterfacePython2.html#DebuggerInterfacePython2.remoteRun" />
@@ -3720,6 +3734,7 @@
       <keyword name="DebuggerInterfacePython3.remoteCoverage" id="DebuggerInterfacePython3.remoteCoverage" ref="eric6.Debugger.DebuggerInterfacePython3.html#DebuggerInterfacePython3.remoteCoverage" />
       <keyword name="DebuggerInterfacePython3.remoteEnvironment" id="DebuggerInterfacePython3.remoteEnvironment" ref="eric6.Debugger.DebuggerInterfacePython3.html#DebuggerInterfacePython3.remoteEnvironment" />
       <keyword name="DebuggerInterfacePython3.remoteLoad" id="DebuggerInterfacePython3.remoteLoad" ref="eric6.Debugger.DebuggerInterfacePython3.html#DebuggerInterfacePython3.remoteLoad" />
+      <keyword name="DebuggerInterfacePython3.remoteMoveIP" id="DebuggerInterfacePython3.remoteMoveIP" ref="eric6.Debugger.DebuggerInterfacePython3.html#DebuggerInterfacePython3.remoteMoveIP" />
       <keyword name="DebuggerInterfacePython3.remoteProfile" id="DebuggerInterfacePython3.remoteProfile" ref="eric6.Debugger.DebuggerInterfacePython3.html#DebuggerInterfacePython3.remoteProfile" />
       <keyword name="DebuggerInterfacePython3.remoteRawInput" id="DebuggerInterfacePython3.remoteRawInput" ref="eric6.Debugger.DebuggerInterfacePython3.html#DebuggerInterfacePython3.remoteRawInput" />
       <keyword name="DebuggerInterfacePython3.remoteRun" id="DebuggerInterfacePython3.remoteRun" ref="eric6.Debugger.DebuggerInterfacePython3.html#DebuggerInterfacePython3.remoteRun" />
@@ -9472,6 +9487,12 @@
       <keyword name="LfRevisionsInputDialog (Module)" id="LfRevisionsInputDialog (Module)" ref="eric6.Plugins.VcsPlugins.vcsMercurial.LargefilesExtension.LfRevisionsInputDialog.html" />
       <keyword name="LfRevisionsInputDialog.getRevisions" id="LfRevisionsInputDialog.getRevisions" ref="eric6.Plugins.VcsPlugins.vcsMercurial.LargefilesExtension.LfRevisionsInputDialog.html#LfRevisionsInputDialog.getRevisions" />
       <keyword name="LfRevisionsInputDialog.on_revisionsEdit_textChanged" id="LfRevisionsInputDialog.on_revisionsEdit_textChanged" ref="eric6.Plugins.VcsPlugins.vcsMercurial.LargefilesExtension.LfRevisionsInputDialog.html#LfRevisionsInputDialog.on_revisionsEdit_textChanged" />
+      <keyword name="LineComplexityVisitor" id="LineComplexityVisitor" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html#LineComplexityVisitor" />
+      <keyword name="LineComplexityVisitor (Constructor)" id="LineComplexityVisitor (Constructor)" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html#LineComplexityVisitor.__init__" />
+      <keyword name="LineComplexityVisitor.__median" id="LineComplexityVisitor.__median" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html#LineComplexityVisitor.__median" />
+      <keyword name="LineComplexityVisitor.score" id="LineComplexityVisitor.score" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html#LineComplexityVisitor.score" />
+      <keyword name="LineComplexityVisitor.sortedList" id="LineComplexityVisitor.sortedList" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html#LineComplexityVisitor.sortedList" />
+      <keyword name="LineComplexityVisitor.visit" id="LineComplexityVisitor.visit" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html#LineComplexityVisitor.visit" />
       <keyword name="LineShortener" id="LineShortener" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html#LineShortener" />
       <keyword name="LineShortener (Constructor)" id="LineShortener (Constructor)" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html#LineShortener.__init__" />
       <keyword name="LineShortener.__breakMultiline" id="LineShortener.__breakMultiline" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html#LineShortener.__breakMultiline" />
@@ -9631,13 +9652,6 @@
       <keyword name="MasterPasswordEntryDialog.on_currentPasswordEdit_textChanged" id="MasterPasswordEntryDialog.on_currentPasswordEdit_textChanged" ref="eric6.Preferences.ConfigurationPages.MasterPasswordEntryDialog.html#MasterPasswordEntryDialog.on_currentPasswordEdit_textChanged" />
       <keyword name="MasterPasswordEntryDialog.on_newPasswordAgainEdit_textChanged" id="MasterPasswordEntryDialog.on_newPasswordAgainEdit_textChanged" ref="eric6.Preferences.ConfigurationPages.MasterPasswordEntryDialog.html#MasterPasswordEntryDialog.on_newPasswordAgainEdit_textChanged" />
       <keyword name="MasterPasswordEntryDialog.on_newPasswordEdit_textChanged" id="MasterPasswordEntryDialog.on_newPasswordEdit_textChanged" ref="eric6.Preferences.ConfigurationPages.MasterPasswordEntryDialog.html#MasterPasswordEntryDialog.on_newPasswordEdit_textChanged" />
-      <keyword name="McCabeChecker" id="McCabeChecker" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker.html#McCabeChecker" />
-      <keyword name="McCabeChecker (Constructor)" id="McCabeChecker (Constructor)" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker.html#McCabeChecker.__init__" />
-      <keyword name="McCabeChecker (Module)" id="McCabeChecker (Module)" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker.html" />
-      <keyword name="McCabeChecker.__error" id="McCabeChecker.__error" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker.html#McCabeChecker.__error" />
-      <keyword name="McCabeChecker.__ignoreCode" id="McCabeChecker.__ignoreCode" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker.html#McCabeChecker.__ignoreCode" />
-      <keyword name="McCabeChecker.__reportInvalidSyntax" id="McCabeChecker.__reportInvalidSyntax" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker.html#McCabeChecker.__reportInvalidSyntax" />
-      <keyword name="McCabeChecker.run" id="McCabeChecker.run" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker.html#McCabeChecker.run" />
       <keyword name="MercurialPage" id="MercurialPage" ref="eric6.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html#MercurialPage" />
       <keyword name="MercurialPage (Constructor)" id="MercurialPage (Constructor)" ref="eric6.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html#MercurialPage.__init__" />
       <keyword name="MercurialPage (Module)" id="MercurialPage (Module)" ref="eric6.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html" />
@@ -17436,8 +17450,8 @@
       <file>eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleCodeSelectionDialog.html</file>
       <file>eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html</file>
       <file>eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleStatisticsDialog.html</file>
+      <file>eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html</file>
       <file>eric6.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html</file>
-      <file>eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker.html</file>
       <file>eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html</file>
       <file>eric6.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html</file>
       <file>eric6.Plugins.CheckerPlugins.CodeStyleChecker.mccabe.html</file>
--- a/Documentation/Source/eric6.DebugClients.Python.DebugBase.html	Sat Mar 25 17:36:50 2017 +0100
+++ b/Documentation/Source/eric6.DebugClients.Python.DebugBase.html	Sat Mar 25 17:37:44 2017 +0100
@@ -119,6 +119,9 @@
 <td><a href="#DebugBase.go">go</a></td>
 <td>Public method to resume the thread.</td>
 </tr><tr>
+<td><a href="#DebugBase.move_instruction_pointer">move_instruction_pointer</a></td>
+<td>Public methode to move the instruction pointer to another line.</td>
+</tr><tr>
 <td><a href="#DebugBase.profile">profile</a></td>
 <td>Public method used to trace some stuff independent of the debugger trace function.</td>
 </tr><tr>
@@ -476,6 +479,16 @@
 <dd>
 flag indicating a special continue operation
 </dd>
+</dl><a NAME="DebugBase.move_instruction_pointer" ID="DebugBase.move_instruction_pointer"></a>
+<h4>DebugBase.move_instruction_pointer</h4>
+<b>move_instruction_pointer</b>(<i>lineno</i>)
+<p>
+        Public methode to move the instruction pointer to another line.
+</p><dl>
+<dt><i>lineno</i> (int)</dt>
+<dd>
+new line number
+</dd>
 </dl><a NAME="DebugBase.profile" ID="DebugBase.profile"></a>
 <h4>DebugBase.profile</h4>
 <b>profile</b>(<i>frame, event, arg</i>)
--- a/Documentation/Source/eric6.Debugger.DebugServer.html	Sat Mar 25 17:36:50 2017 +0100
+++ b/Documentation/Source/eric6.Debugger.DebugServer.html	Sat Mar 25 17:37:44 2017 +0100
@@ -388,6 +388,9 @@
 <td><a href="#DebugServer.remoteLoad">remoteLoad</a></td>
 <td>Public method to load a new program to debug.</td>
 </tr><tr>
+<td><a href="#DebugServer.remoteMoveIP">remoteMoveIP</a></td>
+<td>Public method to move the instruction pointer to a different line.</td>
+</tr><tr>
 <td><a href="#DebugServer.remoteProfile">remoteProfile</a></td>
 <td>Public method to load a new program to collect profiling data.</td>
 </tr><tr>
@@ -1314,6 +1317,16 @@
 flag indicating to enable the call trace
             function (boolean)
 </dd>
+</dl><a NAME="DebugServer.remoteMoveIP" ID="DebugServer.remoteMoveIP"></a>
+<h4>DebugServer.remoteMoveIP</h4>
+<b>remoteMoveIP</b>(<i>line</i>)
+<p>
+        Public method to move the instruction pointer to a different line.
+</p><dl>
+<dt><i>line</i></dt>
+<dd>
+the new line, where execution should be continued
+</dd>
 </dl><a NAME="DebugServer.remoteProfile" ID="DebugServer.remoteProfile"></a>
 <h4>DebugServer.remoteProfile</h4>
 <b>remoteProfile</b>(<i>fn, argv, wd, env, autoClearShell=True, erase=False, forProject=False, runInConsole=False, clientType=""</i>)
--- a/Documentation/Source/eric6.Debugger.DebugUI.html	Sat Mar 25 17:36:50 2017 +0100
+++ b/Documentation/Source/eric6.Debugger.DebugUI.html	Sat Mar 25 17:37:44 2017 +0100
@@ -193,6 +193,9 @@
 <td><a href="#DebugUI.__lastEditorClosed">__lastEditorClosed</a></td>
 <td>Private slot to handle the closeProgram signal.</td>
 </tr><tr>
+<td><a href="#DebugUI.__moveInstructionPointer">__moveInstructionPointer</a></td>
+<td>Private method to move the instruction pointer to a different line.</td>
+</tr><tr>
 <td><a href="#DebugUI.__nextBreakpoint">__nextBreakpoint</a></td>
 <td>Private slot to handle the 'Next breakpoint' action.</td>
 </tr><tr>
@@ -661,6 +664,11 @@
 <b>__lastEditorClosed</b>(<i></i>)
 <p>
         Private slot to handle the closeProgram signal.
+</p><a NAME="DebugUI.__moveInstructionPointer" ID="DebugUI.__moveInstructionPointer"></a>
+<h4>DebugUI.__moveInstructionPointer</h4>
+<b>__moveInstructionPointer</b>(<i></i>)
+<p>
+        Private method to move the instruction pointer to a different line.
 </p><a NAME="DebugUI.__nextBreakpoint" ID="DebugUI.__nextBreakpoint"></a>
 <h4>DebugUI.__nextBreakpoint</h4>
 <b>__nextBreakpoint</b>(<i></i>)
--- a/Documentation/Source/eric6.Debugger.DebuggerInterfaceNone.html	Sat Mar 25 17:36:50 2017 +0100
+++ b/Documentation/Source/eric6.Debugger.DebuggerInterfaceNone.html	Sat Mar 25 17:37:44 2017 +0100
@@ -117,6 +117,9 @@
 <td><a href="#DebuggerInterfaceNone.remoteLoad">remoteLoad</a></td>
 <td>Public method to load a new program to debug.</td>
 </tr><tr>
+<td><a href="#DebuggerInterfaceNone.remoteMoveIP">remoteMoveIP</a></td>
+<td>Public method to move the instruction pointer to a different line.</td>
+</tr><tr>
 <td><a href="#DebuggerInterfaceNone.remoteProfile">remoteProfile</a></td>
 <td>Public method to load a new program to collect profiling data.</td>
 </tr><tr>
@@ -438,6 +441,16 @@
 flag indicating to debug the child after forking
             (boolean)
 </dd>
+</dl><a NAME="DebuggerInterfaceNone.remoteMoveIP" ID="DebuggerInterfaceNone.remoteMoveIP"></a>
+<h4>DebuggerInterfaceNone.remoteMoveIP</h4>
+<b>remoteMoveIP</b>(<i>line</i>)
+<p>
+        Public method to move the instruction pointer to a different line.
+</p><dl>
+<dt><i>line</i></dt>
+<dd>
+the new line, where execution should be continued
+</dd>
 </dl><a NAME="DebuggerInterfaceNone.remoteProfile" ID="DebuggerInterfaceNone.remoteProfile"></a>
 <h4>DebuggerInterfaceNone.remoteProfile</h4>
 <b>remoteProfile</b>(<i>fn, argv, wd, erase=False</i>)
--- a/Documentation/Source/eric6.Debugger.DebuggerInterfacePython2.html	Sat Mar 25 17:36:50 2017 +0100
+++ b/Documentation/Source/eric6.Debugger.DebuggerInterfacePython2.html	Sat Mar 25 17:37:44 2017 +0100
@@ -138,6 +138,9 @@
 <td><a href="#DebuggerInterfacePython2.remoteLoad">remoteLoad</a></td>
 <td>Public method to load a new program to debug.</td>
 </tr><tr>
+<td><a href="#DebuggerInterfacePython2.remoteMoveIP">remoteMoveIP</a></td>
+<td>Public method to move the instruction pointer to a different line.</td>
+</tr><tr>
 <td><a href="#DebuggerInterfacePython2.remoteProfile">remoteProfile</a></td>
 <td>Public method to load a new program to collect profiling data.</td>
 </tr><tr>
@@ -548,6 +551,16 @@
 flag indicating to debug the child after forking
             (boolean)
 </dd>
+</dl><a NAME="DebuggerInterfacePython2.remoteMoveIP" ID="DebuggerInterfacePython2.remoteMoveIP"></a>
+<h4>DebuggerInterfacePython2.remoteMoveIP</h4>
+<b>remoteMoveIP</b>(<i>line</i>)
+<p>
+        Public method to move the instruction pointer to a different line.
+</p><dl>
+<dt><i>line</i></dt>
+<dd>
+the new line, where execution should be continued
+</dd>
 </dl><a NAME="DebuggerInterfacePython2.remoteProfile" ID="DebuggerInterfacePython2.remoteProfile"></a>
 <h4>DebuggerInterfacePython2.remoteProfile</h4>
 <b>remoteProfile</b>(<i>fn, argv, wd, erase=False</i>)
--- a/Documentation/Source/eric6.Debugger.DebuggerInterfacePython3.html	Sat Mar 25 17:36:50 2017 +0100
+++ b/Documentation/Source/eric6.Debugger.DebuggerInterfacePython3.html	Sat Mar 25 17:37:44 2017 +0100
@@ -138,6 +138,9 @@
 <td><a href="#DebuggerInterfacePython3.remoteLoad">remoteLoad</a></td>
 <td>Public method to load a new program to debug.</td>
 </tr><tr>
+<td><a href="#DebuggerInterfacePython3.remoteMoveIP">remoteMoveIP</a></td>
+<td>Public method to move the instruction pointer to a different line.</td>
+</tr><tr>
 <td><a href="#DebuggerInterfacePython3.remoteProfile">remoteProfile</a></td>
 <td>Public method to load a new program to collect profiling data.</td>
 </tr><tr>
@@ -548,6 +551,16 @@
 flag indicating to debug the child after forking
             (boolean)
 </dd>
+</dl><a NAME="DebuggerInterfacePython3.remoteMoveIP" ID="DebuggerInterfacePython3.remoteMoveIP"></a>
+<h4>DebuggerInterfacePython3.remoteMoveIP</h4>
+<b>remoteMoveIP</b>(<i>line</i>)
+<p>
+        Public method to move the instruction pointer to a different line.
+</p><dl>
+<dt><i>line</i></dt>
+<dd>
+the new line, where execution should be continued
+</dd>
 </dl><a NAME="DebuggerInterfacePython3.remoteProfile" ID="DebuggerInterfacePython3.remoteProfile"></a>
 <h4>DebuggerInterfacePython3.remoteProfile</h4>
 <b>remoteProfile</b>(<i>fn, argv, wd, erase=False</i>)
--- a/Documentation/Source/eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html	Sat Mar 25 17:36:50 2017 +0100
+++ b/Documentation/Source/eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html	Sat Mar 25 17:37:44 2017 +0100
@@ -147,10 +147,10 @@
 arguments used by the codeStyleCheck function (list of
         excludeMessages (str), includeMessages (str), repeatMessages
         (bool), fixCodes (str), noFixCodes (str), fixIssues (bool),
-        maxLineLength (int), hangClosing (bool), docType (str), maximum
-        allowed code complexity (int), dictionary with arguments for the
-        miscellaneous checker (dict), errors (list of str), eol (str),
-        encoding (str), backup (bool))
+        maxLineLength (int), hangClosing (bool), docType (str), dictionary
+        with arguments for the code complexity checker (dict), dictionary
+        with arguments for the miscellaneous checker (dict), errors (list
+        of str), eol (str), encoding (str), backup (bool))
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html	Sat Mar 25 17:37:44 2017 +0100
@@ -0,0 +1,285 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker</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>eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker</h1>
+<p>
+Module implementing a checker for code complexity.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#ComplexityChecker">ComplexityChecker</a></td>
+<td>Class implementing a checker for code complexity.</td>
+</tr><tr>
+<td><a href="#LineComplexityVisitor">LineComplexityVisitor</a></td>
+<td>Class calculating the number of AST nodes per line of code and the median nodes/line score.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="ComplexityChecker" ID="ComplexityChecker"></a>
+<h2>ComplexityChecker</h2>
+<p>
+    Class implementing a checker for code complexity.
+</p>
+<h3>Derived from</h3>
+object
+<h3>Class Attributes</h3>
+<table>
+<tr><td>Codes</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#ComplexityChecker.__init__">ComplexityChecker</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#ComplexityChecker.__checkLineComplexity">__checkLineComplexity</a></td>
+<td>Private method to check the complexity of a single line of code and the median line complexity of the source code.</td>
+</tr><tr>
+<td><a href="#ComplexityChecker.__checkMcCabeComplexity">__checkMcCabeComplexity</a></td>
+<td>Private method to check the McCabe code complexity.</td>
+</tr><tr>
+<td><a href="#ComplexityChecker.__error">__error</a></td>
+<td>Private method to record an issue.</td>
+</tr><tr>
+<td><a href="#ComplexityChecker.__ignoreCode">__ignoreCode</a></td>
+<td>Private method to check if the message code should be ignored.</td>
+</tr><tr>
+<td><a href="#ComplexityChecker.__reportInvalidSyntax">__reportInvalidSyntax</a></td>
+<td>Private method to report a syntax error.</td>
+</tr><tr>
+<td><a href="#ComplexityChecker.run">run</a></td>
+<td>Public method to check the given source for code complexity.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="ComplexityChecker.__init__" ID="ComplexityChecker.__init__"></a>
+<h4>ComplexityChecker (Constructor)</h4>
+<b>ComplexityChecker</b>(<i>source, filename, select, ignore, args</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>source</i> (list of str)</dt>
+<dd>
+source code to be checked
+</dd><dt><i>filename</i> (str)</dt>
+<dd>
+name of the source file
+</dd><dt><i>select</i> (list of str)</dt>
+<dd>
+list of selected codes
+</dd><dt><i>ignore</i> (list of str)</dt>
+<dd>
+list of codes to be ignored
+</dd><dt><i>args</i> (dict)</dt>
+<dd>
+dictionary of arguments for the miscellaneous checks
+</dd>
+</dl><a NAME="ComplexityChecker.__checkLineComplexity" ID="ComplexityChecker.__checkLineComplexity"></a>
+<h4>ComplexityChecker.__checkLineComplexity</h4>
+<b>__checkLineComplexity</b>(<i></i>)
+<p>
+        Private method to check the complexity of a single line of code and
+        the median line complexity of the source code.
+</p><p>
+        Complexity is defined as the number of AST nodes produced by a line
+        of code.
+</p><a NAME="ComplexityChecker.__checkMcCabeComplexity" ID="ComplexityChecker.__checkMcCabeComplexity"></a>
+<h4>ComplexityChecker.__checkMcCabeComplexity</h4>
+<b>__checkMcCabeComplexity</b>(<i></i>)
+<p>
+        Private method to check the McCabe code complexity.
+</p><a NAME="ComplexityChecker.__error" ID="ComplexityChecker.__error"></a>
+<h4>ComplexityChecker.__error</h4>
+<b>__error</b>(<i>lineNumber, offset, code, *args</i>)
+<p>
+        Private method to record an issue.
+</p><dl>
+<dt><i>lineNumber</i> (int)</dt>
+<dd>
+line number of the issue
+</dd><dt><i>offset</i> (int)</dt>
+<dd>
+position within line of the issue
+</dd><dt><i>code</i> (str)</dt>
+<dd>
+message code
+</dd><dt><i>args</i> (list)</dt>
+<dd>
+arguments for the message
+</dd>
+</dl><a NAME="ComplexityChecker.__ignoreCode" ID="ComplexityChecker.__ignoreCode"></a>
+<h4>ComplexityChecker.__ignoreCode</h4>
+<b>__ignoreCode</b>(<i>code</i>)
+<p>
+        Private method to check if the message code should be ignored.
+</p><dl>
+<dt><i>code</i> (str)</dt>
+<dd>
+message code to check for
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating to ignore the given code
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="ComplexityChecker.__reportInvalidSyntax" ID="ComplexityChecker.__reportInvalidSyntax"></a>
+<h4>ComplexityChecker.__reportInvalidSyntax</h4>
+<b>__reportInvalidSyntax</b>(<i></i>)
+<p>
+        Private method to report a syntax error.
+</p><a NAME="ComplexityChecker.run" ID="ComplexityChecker.run"></a>
+<h4>ComplexityChecker.run</h4>
+<b>run</b>(<i></i>)
+<p>
+        Public method to check the given source for code complexity.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="LineComplexityVisitor" ID="LineComplexityVisitor"></a>
+<h2>LineComplexityVisitor</h2>
+<p>
+    Class calculating the number of AST nodes per line of code
+    and the median nodes/line score.
+</p>
+<h3>Derived from</h3>
+ast.NodeVisitor
+<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><a href="#LineComplexityVisitor.__init__">LineComplexityVisitor</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#LineComplexityVisitor.__median">__median</a></td>
+<td>Private method to determine the median of a list.</td>
+</tr><tr>
+<td><a href="#LineComplexityVisitor.score">score</a></td>
+<td>Public method to calculate the median.</td>
+</tr><tr>
+<td><a href="#LineComplexityVisitor.sortedList">sortedList</a></td>
+<td>Public method to get a sorted list of (line, nodes) tuples.</td>
+</tr><tr>
+<td><a href="#LineComplexityVisitor.visit">visit</a></td>
+<td>Public method to recursively visit all the nodes and add up the instructions.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="LineComplexityVisitor.__init__" ID="LineComplexityVisitor.__init__"></a>
+<h4>LineComplexityVisitor (Constructor)</h4>
+<b>LineComplexityVisitor</b>(<i></i>)
+<p>
+        Constructor
+</p><a NAME="LineComplexityVisitor.__median" ID="LineComplexityVisitor.__median"></a>
+<h4>LineComplexityVisitor.__median</h4>
+<b>__median</b>(<i>lst</i>)
+<p>
+        Private method to determine the median of a list.
+</p><dl>
+<dt><i>lst</i> (list of int)</dt>
+<dd>
+list to determine the median for
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+median of the list
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+float
+</dd>
+</dl><a NAME="LineComplexityVisitor.score" ID="LineComplexityVisitor.score"></a>
+<h4>LineComplexityVisitor.score</h4>
+<b>score</b>(<i></i>)
+<p>
+        Public method to calculate the median.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+median line complexity value
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+float
+</dd>
+</dl><a NAME="LineComplexityVisitor.sortedList" ID="LineComplexityVisitor.sortedList"></a>
+<h4>LineComplexityVisitor.sortedList</h4>
+<b>sortedList</b>(<i></i>)
+<p>
+        Public method to get a sorted list of (line, nodes) tuples.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+sorted list of (line, nodes) tuples
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+list of tuple of (int,int)
+</dd>
+</dl><a NAME="LineComplexityVisitor.visit" ID="LineComplexityVisitor.visit"></a>
+<h4>LineComplexityVisitor.visit</h4>
+<b>visit</b>(<i>node</i>)
+<p>
+        Public method to recursively visit all the nodes and add up the
+        instructions.
+</p><dl>
+<dt><i>node</i> (ast.AST)</dt>
+<dd>
+reference to the node
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker.html	Sat Mar 25 17:36:50 2017 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,149 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker</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>eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker</h1>
-<p>
-Module implementing a checker for code complexity.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#McCabeChecker">McCabeChecker</a></td>
-<td>Class implementing a checker for code complexity iaw.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="McCabeChecker" ID="McCabeChecker"></a>
-<h2>McCabeChecker</h2>
-<p>
-    Class implementing a checker for code complexity iaw. McCabe.
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>Codes</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#McCabeChecker.__init__">McCabeChecker</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#McCabeChecker.__error">__error</a></td>
-<td>Private method to record an issue.</td>
-</tr><tr>
-<td><a href="#McCabeChecker.__ignoreCode">__ignoreCode</a></td>
-<td>Private method to check if the error code should be ignored.</td>
-</tr><tr>
-<td><a href="#McCabeChecker.__reportInvalidSyntax">__reportInvalidSyntax</a></td>
-<td>Private method to report a syntax error.</td>
-</tr><tr>
-<td><a href="#McCabeChecker.run">run</a></td>
-<td>Public method to check the given source for code complexity.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="McCabeChecker.__init__" ID="McCabeChecker.__init__"></a>
-<h4>McCabeChecker (Constructor)</h4>
-<b>McCabeChecker</b>(<i>source, filename, select, ignore, maxComplexity=10</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>source</i> (list of str)</dt>
-<dd>
-source code to be checked
-</dd><dt><i>filename</i> (str)</dt>
-<dd>
-name of the source file
-</dd><dt><i>select</i> (list of str)</dt>
-<dd>
-list of selected codes
-</dd><dt><i>ignore</i> (list of str)</dt>
-<dd>
-list of codes to be ignored
-</dd><dt><i>maxComplexity</i> (int)</dt>
-<dd>
-maximum allowed complexity value
-</dd>
-</dl><a NAME="McCabeChecker.__error" ID="McCabeChecker.__error"></a>
-<h4>McCabeChecker.__error</h4>
-<b>__error</b>(<i>lineNumber, offset, code, *args</i>)
-<p>
-        Private method to record an issue.
-</p><dl>
-<dt><i>lineNumber</i> (int)</dt>
-<dd>
-line number of the issue
-</dd><dt><i>offset</i> (int)</dt>
-<dd>
-position within line of the issue
-</dd><dt><i>code</i> (str)</dt>
-<dd>
-message code
-</dd><dt><i>args</i> (list)</dt>
-<dd>
-arguments for the message
-</dd>
-</dl><a NAME="McCabeChecker.__ignoreCode" ID="McCabeChecker.__ignoreCode"></a>
-<h4>McCabeChecker.__ignoreCode</h4>
-<b>__ignoreCode</b>(<i>code</i>)
-<p>
-        Private method to check if the error code should be ignored.
-</p><dl>
-<dt><i>code</i></dt>
-<dd>
-message code to check for (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating to ignore the given code (boolean)
-</dd>
-</dl><a NAME="McCabeChecker.__reportInvalidSyntax" ID="McCabeChecker.__reportInvalidSyntax"></a>
-<h4>McCabeChecker.__reportInvalidSyntax</h4>
-<b>__reportInvalidSyntax</b>(<i></i>)
-<p>
-        Private method to report a syntax error.
-</p><a NAME="McCabeChecker.run" ID="McCabeChecker.run"></a>
-<h4>McCabeChecker.run</h4>
-<b>run</b>(<i></i>)
-<p>
-        Public method to check the given source for code complexity.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/Documentation/Source/index-eric6.Plugins.CheckerPlugins.CodeStyleChecker.html	Sat Mar 25 17:36:50 2017 +0100
+++ b/Documentation/Source/index-eric6.Plugins.CheckerPlugins.CodeStyleChecker.html	Sat Mar 25 17:37:44 2017 +0100
@@ -46,12 +46,12 @@
 <td><a href="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleStatisticsDialog.html">CodeStyleStatisticsDialog</a></td>
 <td>Module implementing a dialog showing statistical data for the last code style checker run.</td>
 </tr><tr>
+<td><a href="eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker.html">ComplexityChecker</a></td>
+<td>Module implementing a checker for code complexity.</td>
+</tr><tr>
 <td><a href="eric6.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.html">DocStyleChecker</a></td>
 <td>Module implementing a checker for documentation string conventions.</td>
 </tr><tr>
-<td><a href="eric6.Plugins.CheckerPlugins.CodeStyleChecker.McCabeChecker.html">McCabeChecker</a></td>
-<td>Module implementing a checker for code complexity.</td>
-</tr><tr>
 <td><a href="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html">MiscellaneousChecker</a></td>
 <td>Module implementing a checker for miscellaneous checks.</td>
 </tr><tr>
--- a/eric6.e4p	Sat Mar 25 17:36:50 2017 +0100
+++ b/eric6.e4p	Sat Mar 25 17:37:44 2017 +0100
@@ -471,8 +471,8 @@
     <Source>Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCodeSelectionDialog.py</Source>
     <Source>Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py</Source>
     <Source>Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleStatisticsDialog.py</Source>
+    <Source>Plugins/CheckerPlugins/CodeStyleChecker/ComplexityChecker.py</Source>
     <Source>Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py</Source>
-    <Source>Plugins/CheckerPlugins/CodeStyleChecker/McCabeChecker.py</Source>
     <Source>Plugins/CheckerPlugins/CodeStyleChecker/MiscellaneousChecker.py</Source>
     <Source>Plugins/CheckerPlugins/CodeStyleChecker/NamingStyleChecker.py</Source>
     <Source>Plugins/CheckerPlugins/CodeStyleChecker/__init__.py</Source>
@@ -2555,6 +2555,18 @@
               <string></string>
             </value>
             <key>
+              <string>LineComplexity</string>
+            </key>
+            <value>
+              <int>20</int>
+            </value>
+            <key>
+              <string>LineComplexityScore</string>
+            </key>
+            <value>
+              <int>10</int>
+            </value>
+            <key>
               <string>MaxCodeComplexity</string>
             </key>
             <value>

eric ide

mercurial