Fri, 24 Apr 2015 18:41:06 +0200
Added a batch mode to the indentation checker to make use of multiple CPUs/CPU-Cores.
--- a/APIs/Python3/eric6.api Thu Apr 23 20:11:44 2015 +0200 +++ b/APIs/Python3/eric6.api Fri Apr 24 18:41:06 2015 +0200 @@ -4038,11 +4038,15 @@ eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.Whitespace.not_equal_witness?4(other) eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.Whitespace.not_less_witness?4(other) eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.Whitespace?1(ws) +eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.batchCheck?4(argumentsList, send, fx, cancelled) eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.check?4(file, text="") eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.format_witnesses?4(w) +eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.initBatchService?4() eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.initService?4() eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.process_tokens?4(tokens) +eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.worker?4(input, output) eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.TabnannyDialog.check?4(codestring='') +eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.TabnannyDialog.checkBatch?4() eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.TabnannyDialog.on_buttonBox_clicked?4(button) eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.TabnannyDialog.on_resultList_itemActivated?4(itm, col) eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.TabnannyDialog.on_startButton_clicked?4() @@ -4171,7 +4175,11 @@ eric6.Plugins.PluginSyntaxChecker.shortDescription?7 eric6.Plugins.PluginSyntaxChecker.version?7 eric6.Plugins.PluginTabnanny.TabnannyPlugin.activate?4() +eric6.Plugins.PluginTabnanny.TabnannyPlugin.batchFinished?7 +eric6.Plugins.PluginTabnanny.TabnannyPlugin.batchJobDone?4(fx, lang) +eric6.Plugins.PluginTabnanny.TabnannyPlugin.cancelIndentBatchCheck?4() eric6.Plugins.PluginTabnanny.TabnannyPlugin.deactivate?4() +eric6.Plugins.PluginTabnanny.TabnannyPlugin.indentBatchCheck?4(argumentsList) eric6.Plugins.PluginTabnanny.TabnannyPlugin.indentCheck?4(lang, filename, source) eric6.Plugins.PluginTabnanny.TabnannyPlugin.indentChecked?7 eric6.Plugins.PluginTabnanny.TabnannyPlugin.serviceErrorPy2?4(fx, lang, fn, msg)
--- a/Documentation/Help/source.qhp Thu Apr 23 20:11:44 2015 +0200 +++ b/Documentation/Help/source.qhp Fri Apr 24 18:41:06 2015 +0200 @@ -11540,11 +11540,13 @@ <keyword name="TabnannyDialog" id="TabnannyDialog" ref="eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog" /> <keyword name="TabnannyDialog (Constructor)" id="TabnannyDialog (Constructor)" ref="eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.__init__" /> <keyword name="TabnannyDialog (Module)" id="TabnannyDialog (Module)" ref="eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html" /> + <keyword name="TabnannyDialog.__batchFinished" id="TabnannyDialog.__batchFinished" ref="eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.__batchFinished" /> <keyword name="TabnannyDialog.__createResultItem" id="TabnannyDialog.__createResultItem" ref="eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.__createResultItem" /> <keyword name="TabnannyDialog.__finish" id="TabnannyDialog.__finish" ref="eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.__finish" /> <keyword name="TabnannyDialog.__processResult" id="TabnannyDialog.__processResult" ref="eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.__processResult" /> <keyword name="TabnannyDialog.__resort" id="TabnannyDialog.__resort" ref="eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.__resort" /> <keyword name="TabnannyDialog.check" id="TabnannyDialog.check" ref="eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.check" /> + <keyword name="TabnannyDialog.checkBatch" id="TabnannyDialog.checkBatch" ref="eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.checkBatch" /> <keyword name="TabnannyDialog.on_buttonBox_clicked" id="TabnannyDialog.on_buttonBox_clicked" ref="eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.on_buttonBox_clicked" /> <keyword name="TabnannyDialog.on_resultList_itemActivated" id="TabnannyDialog.on_resultList_itemActivated" ref="eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.on_resultList_itemActivated" /> <keyword name="TabnannyDialog.on_startButton_clicked" id="TabnannyDialog.on_startButton_clicked" ref="eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog.on_startButton_clicked" /> @@ -11563,7 +11565,10 @@ <keyword name="TabnannyPlugin.__projectTabnanny" id="TabnannyPlugin.__projectTabnanny" ref="eric6.Plugins.PluginTabnanny.html#TabnannyPlugin.__projectTabnanny" /> <keyword name="TabnannyPlugin.__serviceError" id="TabnannyPlugin.__serviceError" ref="eric6.Plugins.PluginTabnanny.html#TabnannyPlugin.__serviceError" /> <keyword name="TabnannyPlugin.activate" id="TabnannyPlugin.activate" ref="eric6.Plugins.PluginTabnanny.html#TabnannyPlugin.activate" /> + <keyword name="TabnannyPlugin.batchJobDone" id="TabnannyPlugin.batchJobDone" ref="eric6.Plugins.PluginTabnanny.html#TabnannyPlugin.batchJobDone" /> + <keyword name="TabnannyPlugin.cancelIndentBatchCheck" id="TabnannyPlugin.cancelIndentBatchCheck" ref="eric6.Plugins.PluginTabnanny.html#TabnannyPlugin.cancelIndentBatchCheck" /> <keyword name="TabnannyPlugin.deactivate" id="TabnannyPlugin.deactivate" ref="eric6.Plugins.PluginTabnanny.html#TabnannyPlugin.deactivate" /> + <keyword name="TabnannyPlugin.indentBatchCheck" id="TabnannyPlugin.indentBatchCheck" ref="eric6.Plugins.PluginTabnanny.html#TabnannyPlugin.indentBatchCheck" /> <keyword name="TabnannyPlugin.indentCheck" id="TabnannyPlugin.indentCheck" ref="eric6.Plugins.PluginTabnanny.html#TabnannyPlugin.indentCheck" /> <keyword name="TabnannyPlugin.serviceErrorPy2" id="TabnannyPlugin.serviceErrorPy2" ref="eric6.Plugins.PluginTabnanny.html#TabnannyPlugin.serviceErrorPy2" /> <keyword name="TabnannyPlugin.serviceErrorPy3" id="TabnannyPlugin.serviceErrorPy3" ref="eric6.Plugins.PluginTabnanny.html#TabnannyPlugin.serviceErrorPy3" /> @@ -13028,6 +13033,7 @@ <keyword name="_ClbrBase.setEndLine" id="_ClbrBase.setEndLine" ref="eric6.Utilities.ClassBrowsers.ClbrBaseClasses.html#_ClbrBase.setEndLine" /> <keyword name="_StrikeThroughExtension" id="_StrikeThroughExtension" ref="eric6.UI.Previewers.PreviewerHTML.html#_StrikeThroughExtension" /> <keyword name="_StrikeThroughExtension.extendMarkdown" id="_StrikeThroughExtension.extendMarkdown" ref="eric6.UI.Previewers.PreviewerHTML.html#_StrikeThroughExtension.extendMarkdown" /> + <keyword name="__check" id="__check" ref="eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#__check" /> <keyword name="__checkCodeStyle" id="__checkCodeStyle" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html#__checkCodeStyle" /> <keyword name="__getMasterPassword" id="__getMasterPassword" ref="eric6.Utilities.crypto.__init__.html#__getMasterPassword" /> <keyword name="__getPygmentsLexer" id="__getPygmentsLexer" ref="eric6.QScintilla.Lexers.__init__.html#__getPygmentsLexer" /> @@ -13060,6 +13066,7 @@ <keyword name="amendConfig" id="amendConfig" ref="eric6.Plugins.VcsPlugins.vcsSubversion.SvnUtilities.html#amendConfig" /> <keyword name="analyze" id="analyze" ref="eric6.DataViews.CodeMetrics.html#analyze" /> <keyword name="append_PKCS7_padding" id="append_PKCS7_padding" ref="eric6.Utilities.crypto.py3AES.html#append_PKCS7_padding" /> + <keyword name="batchCheck" id="batchCheck" ref="eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#batchCheck" /> <keyword name="binplistlib (Module)" id="binplistlib (Module)" ref="eric6.Utilities.binplistlib.html" /> <keyword name="blank_lines" id="blank_lines" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#blank_lines" /> <keyword name="changeRememberedMaster" id="changeRememberedMaster" ref="eric6.Utilities.crypto.__init__.html#changeRememberedMaster" /> @@ -13416,6 +13423,7 @@ <keyword name="initBatchService" id="initBatchService" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html#initBatchService" /> <keyword name="initBatchService" id="initBatchService" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html#initBatchService" /> <keyword name="initBatchService" id="initBatchService" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html#initBatchService" /> + <keyword name="initBatchService" id="initBatchService" ref="eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#initBatchService" /> <keyword name="initDebugger" id="initDebugger" ref="eric6.DebugClients.Python.eric6dbgstub.html#initDebugger" /> <keyword name="initDebugger" id="initDebugger" ref="eric6.DebugClients.Python3.eric6dbgstub.html#initDebugger" /> <keyword name="initGlobals" id="initGlobals" ref="eric6.install.html#initGlobals" /> @@ -13707,6 +13715,7 @@ <keyword name="worker" id="worker" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html#worker" /> <keyword name="worker" id="worker" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html#worker" /> <keyword name="worker" id="worker" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html#worker" /> + <keyword name="worker" id="worker" ref="eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#worker" /> <keyword name="wrapperName" id="wrapperName" ref="eric6.install.html#wrapperName" /> <keyword name="wrapperName" id="wrapperName" ref="eric6.uninstall.html#wrapperName" /> <keyword name="write" id="write" ref="eric6.DebugClients.Ruby.AsyncFile.html#write" />
--- a/Documentation/Source/eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html Thu Apr 23 20:11:44 2015 +0200 +++ b/Documentation/Source/eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html Fri Apr 24 18:41:06 2015 +0200 @@ -57,17 +57,29 @@ <h3>Functions</h3> <table> <tr> +<td><a href="#__check">__check</a></td> +<td>Private function to check one Python source file for whitespace related problems.</td> +</tr><tr> +<td><a href="#batchCheck">batchCheck</a></td> +<td>Module function to check a batch of files for whitespace related problems.</td> +</tr><tr> <td><a href="#check">check</a></td> <td>Private function to check one Python source file for whitespace related problems.</td> </tr><tr> <td><a href="#format_witnesses">format_witnesses</a></td> <td>Function to format the witnesses as a readable string.</td> </tr><tr> +<td><a href="#initBatchService">initBatchService</a></td> +<td>Initialize the batch service and return the entry point.</td> +</tr><tr> <td><a href="#initService">initService</a></td> <td>Initialize the service and return the entry point.</td> </tr><tr> <td><a href="#process_tokens">process_tokens</a></td> <td>Function processing all tokens generated by a tokenizer run.</td> +</tr><tr> +<td><a href="#worker">worker</a></td> +<td>Module function acting as the parallel worker for the style check.</td> </tr> </table> <hr /><hr /> @@ -312,6 +324,54 @@ </dl> <div align="right"><a href="#top">Up</a></div> <hr /><hr /> +<a NAME="__check" ID="__check"></a> +<h2>__check</h2> +<b>__check</b>(<i>file, text=""</i>) +<p> + Private function to check one Python source file for whitespace related + problems. +</p><dl> +<dt><i>file</i></dt> +<dd> +source filename (string) +</dd><dt><i>text</i></dt> +<dd> +source text (string) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +A tuple indicating status (True = an error was found), the + filename, the linenumber and the error message + (boolean, 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="batchCheck" ID="batchCheck"></a> +<h2>batchCheck</h2> +<b>batchCheck</b>(<i>argumentsList, send, fx, cancelled</i>) +<p> + Module function to check a batch of files for whitespace related problems. +</p><dl> +<dt><i>argumentsList</i></dt> +<dd> +list of arguments tuples as given for check +</dd><dt><i>send</i></dt> +<dd> +reference to send function (function) +</dd><dt><i>fx</i></dt> +<dd> +registered service name (string) +</dd><dt><i>cancelled</i></dt> +<dd> +reference to function checking for a cancellation + (function) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> <a NAME="check" ID="check"></a> <h2>check</h2> <b>check</b>(<i>file, text=""</i>) @@ -355,6 +415,19 @@ </dl> <div align="right"><a href="#top">Up</a></div> <hr /><hr /> +<a NAME="initBatchService" ID="initBatchService"></a> +<h2>initBatchService</h2> +<b>initBatchService</b>(<i></i>) +<p> + Initialize the batch 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="initService" ID="initService"></a> <h2>initService</h2> <b>initService</b>(<i></i>) @@ -385,5 +458,21 @@ </dd> </dl> <div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="worker" ID="worker"></a> +<h2>worker</h2> +<b>worker</b>(<i>input, output</i>) +<p> + Module function acting as the parallel worker for the style check. +</p><dl> +<dt><i>input</i></dt> +<dd> +input queue (multiprocessing.Queue) +</dd><dt><i>output</i></dt> +<dd> +output queue (multiprocessing.Queue) +</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.Tabnanny.TabnannyDialog.html Thu Apr 23 20:11:44 2015 +0200 +++ b/Documentation/Source/eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html Fri Apr 24 18:41:06 2015 +0200 @@ -61,6 +61,9 @@ <td><a href="#TabnannyDialog.__init__">TabnannyDialog</a></td> <td>Constructor</td> </tr><tr> +<td><a href="#TabnannyDialog.__batchFinished">__batchFinished</a></td> +<td>Private slot handling the completion of a batch job.</td> +</tr><tr> <td><a href="#TabnannyDialog.__createResultItem">__createResultItem</a></td> <td>Private method to create an entry in the result list.</td> </tr><tr> @@ -74,7 +77,10 @@ <td>Private method to resort the tree.</td> </tr><tr> <td><a href="#TabnannyDialog.check">check</a></td> -<td>Public method to start a style check for one file.</td> +<td>Public method to start an indentation check for one file.</td> +</tr><tr> +<td><a href="#TabnannyDialog.checkBatch">checkBatch</a></td> +<td>Public method to start an indentation check batch job.</td> </tr><tr> <td><a href="#TabnannyDialog.on_buttonBox_clicked">on_buttonBox_clicked</a></td> <td>Private slot called by a button of the button box clicked.</td> @@ -109,7 +115,12 @@ <dd> The parent widget (QWidget). </dd> -</dl><a NAME="TabnannyDialog.__createResultItem" ID="TabnannyDialog.__createResultItem"></a> +</dl><a NAME="TabnannyDialog.__batchFinished" ID="TabnannyDialog.__batchFinished"></a> +<h4>TabnannyDialog.__batchFinished</h4> +<b>__batchFinished</b>(<i></i>) +<p> + Private slot handling the completion of a batch job. +</p><a NAME="TabnannyDialog.__createResultItem" ID="TabnannyDialog.__createResultItem"></a> <h4>TabnannyDialog.__createResultItem</h4> <b>__createResultItem</b>(<i>file, line, sourcecode</i>) <p> @@ -158,7 +169,7 @@ <h4>TabnannyDialog.check</h4> <b>check</b>(<i>codestring=''</i>) <p> - Public method to start a style check for one file. + Public method to start an indentation check for one file. </p><p> The results are reported to the __processResult slot. </p><dl> @@ -166,7 +177,14 @@ <dd> optional sourcestring (str) </dd> -</dl><a NAME="TabnannyDialog.on_buttonBox_clicked" ID="TabnannyDialog.on_buttonBox_clicked"></a> +</dl><a NAME="TabnannyDialog.checkBatch" ID="TabnannyDialog.checkBatch"></a> +<h4>TabnannyDialog.checkBatch</h4> +<b>checkBatch</b>(<i></i>) +<p> + Public method to start an indentation check batch job. +</p><p> + The results are reported to the __processResult slot. +</p><a NAME="TabnannyDialog.on_buttonBox_clicked" ID="TabnannyDialog.on_buttonBox_clicked"></a> <h4>TabnannyDialog.on_buttonBox_clicked</h4> <b>on_buttonBox_clicked</b>(<i>button</i>) <p>
--- a/Documentation/Source/eric6.Plugins.PluginTabnanny.html Thu Apr 23 20:11:44 2015 +0200 +++ b/Documentation/Source/eric6.Plugins.PluginTabnanny.html Fri Apr 24 18:41:06 2015 +0200 @@ -45,9 +45,12 @@ Class implementing the Tabnanny plugin. </p><h3>Signals</h3> <dl> -<dt>indentChecked(str, bool, str, str)</dt> +<dt>batchFinished()</dt> <dd> -emited when the indent +emitted when a style check batch is done +</dd><dt>indentChecked(str, bool, str, str)</dt> +<dd> +emitted when the indent check was done. </dd> </dl> @@ -100,17 +103,26 @@ <td><a href="#TabnannyPlugin.activate">activate</a></td> <td>Public method to activate this plugin.</td> </tr><tr> +<td><a href="#TabnannyPlugin.batchJobDone">batchJobDone</a></td> +<td>Public slot handling the completion of a batch job.</td> +</tr><tr> +<td><a href="#TabnannyPlugin.cancelIndentBatchCheck">cancelIndentBatchCheck</a></td> +<td>Public method to cancel all batch jobs.</td> +</tr><tr> <td><a href="#TabnannyPlugin.deactivate">deactivate</a></td> <td>Public method to deactivate this plugin.</td> </tr><tr> +<td><a href="#TabnannyPlugin.indentBatchCheck">indentBatchCheck</a></td> +<td>Public method to prepare an indentation check on multiple Python source files.</td> +</tr><tr> <td><a href="#TabnannyPlugin.indentCheck">indentCheck</a></td> -<td>Public method to prepare a style check on one Python source file.</td> +<td>Public method to prepare an indentation check on one Python source file.</td> </tr><tr> <td><a href="#TabnannyPlugin.serviceErrorPy2">serviceErrorPy2</a></td> -<td>Public method handling service errors for Python 2.</td> +<td>Public slot handling service errors for Python 2.</td> </tr><tr> <td><a href="#TabnannyPlugin.serviceErrorPy3">serviceErrorPy3</a></td> -<td>Public method handling service errors for Python 2.</td> +<td>Public slot handling service errors for Python 2.</td> </tr> </table> <h3>Static Methods</h3> @@ -236,16 +248,47 @@ <dd> tuple of None and activation status (boolean) </dd> -</dl><a NAME="TabnannyPlugin.deactivate" ID="TabnannyPlugin.deactivate"></a> +</dl><a NAME="TabnannyPlugin.batchJobDone" ID="TabnannyPlugin.batchJobDone"></a> +<h4>TabnannyPlugin.batchJobDone</h4> +<b>batchJobDone</b>(<i>fx, lang</i>) +<p> + Public slot handling the completion of a batch job. +</p><dl> +<dt><i>fx</i></dt> +<dd> +service name (string) +</dd><dt><i>lang</i></dt> +<dd> +language (string) +</dd> +</dl><a NAME="TabnannyPlugin.cancelIndentBatchCheck" ID="TabnannyPlugin.cancelIndentBatchCheck"></a> +<h4>TabnannyPlugin.cancelIndentBatchCheck</h4> +<b>cancelIndentBatchCheck</b>(<i></i>) +<p> + Public method to cancel all batch jobs. +</p><a NAME="TabnannyPlugin.deactivate" ID="TabnannyPlugin.deactivate"></a> <h4>TabnannyPlugin.deactivate</h4> <b>deactivate</b>(<i></i>) <p> Public method to deactivate this plugin. -</p><a NAME="TabnannyPlugin.indentCheck" ID="TabnannyPlugin.indentCheck"></a> +</p><a NAME="TabnannyPlugin.indentBatchCheck" ID="TabnannyPlugin.indentBatchCheck"></a> +<h4>TabnannyPlugin.indentBatchCheck</h4> +<b>indentBatchCheck</b>(<i>argumentsList</i>) +<p> + Public method to prepare an indentation check on multiple Python + source files. +</p><dl> +<dt><i>argumentsList</i></dt> +<dd> +list of arguments tuples with each tuple + containing filename and source (string, string) +</dd> +</dl><a NAME="TabnannyPlugin.indentCheck" ID="TabnannyPlugin.indentCheck"></a> <h4>TabnannyPlugin.indentCheck</h4> <b>indentCheck</b>(<i>lang, filename, source</i>) <p> - Public method to prepare a style check on one Python source file. + Public method to prepare an indentation check on one Python source + file. </p><dl> <dt><i>lang</i></dt> <dd> @@ -262,7 +305,7 @@ <h4>TabnannyPlugin.serviceErrorPy2</h4> <b>serviceErrorPy2</b>(<i>fx, lang, fn, msg</i>) <p> - Public method handling service errors for Python 2. + Public slot handling service errors for Python 2. </p><dl> <dt><i>fx</i></dt> <dd> @@ -281,7 +324,7 @@ <h4>TabnannyPlugin.serviceErrorPy3</h4> <b>serviceErrorPy3</b>(<i>fx, lang, fn, msg</i>) <p> - Public method handling service errors for Python 2. + Public slot handling service errors for Python 2. </p><dl> <dt><i>fx</i></dt> <dd>
--- a/Plugins/CheckerPlugins/Tabnanny/Tabnanny.py Thu Apr 23 20:11:44 2015 +0200 +++ b/Plugins/CheckerPlugins/Tabnanny/Tabnanny.py Fri Apr 24 18:41:06 2015 +0200 @@ -48,6 +48,7 @@ import StringIO as io except (ImportError): import io # __IGNORE_WARNING__ +import multiprocessing if not hasattr(tokenize, 'NL'): raise ValueError("tokenize.NL doesn't exist -- tokenize module too old") @@ -64,6 +65,15 @@ return check +def initBatchService(): + """ + Initialize the batch service and return the entry point. + + @return the entry point for the background client (function) + """ + return batchCheck + + class NannyNag(Exception): """ Class implementing an exception for indentation issues. @@ -118,6 +128,80 @@ (boolean, string, string, string). The values are only valid, if the status is True. """ + return __check(file, text) + + +def batchCheck(argumentsList, send, fx, cancelled): + """ + Module function to check a batch of files for whitespace related problems. + + @param argumentsList list of arguments tuples as given for check + @param send reference to send function (function) + @param fx registered service name (string) + @param cancelled reference to function checking for a cancellation + (function) + """ + try: + NumberOfProcesses = multiprocessing.cpu_count() + if NumberOfProcesses >= 1: + NumberOfProcesses -= 1 + except NotImplementedError: + NumberOfProcesses = 1 + + # Create queues + taskQueue = multiprocessing.Queue() + doneQueue = multiprocessing.Queue() + + # Submit tasks (initially two time number of processes + initialTasks = 2 * NumberOfProcesses + for task in argumentsList[:initialTasks]: + taskQueue.put(task) + + # Start worker processes + for i in range(NumberOfProcesses): + multiprocessing.Process(target=worker, args=(taskQueue, doneQueue))\ + .start() + + # Get and send results + endIndex = len(argumentsList) - initialTasks + for i in range(len(argumentsList)): + filename, result = doneQueue.get() + send(fx, filename, result) + if cancelled(): + # just exit the loop ignoring the results of queued tasks + break + if i < endIndex: + taskQueue.put(argumentsList[i + initialTasks]) + + # Tell child processes to stop + for i in range(NumberOfProcesses): + taskQueue.put('STOP') + + +def worker(input, output): + """ + Module function acting as the parallel worker for the style check. + + @param input input queue (multiprocessing.Queue) + @param output output queue (multiprocessing.Queue) + """ + for filename, source in iter(input.get, 'STOP'): + result = __check(filename, source) + output.put((filename, result)) + + +def __check(file, text=""): + """ + Private function to check one Python source file for whitespace related + problems. + + @param file source filename (string) + @param text source text (string) + @return A tuple indicating status (True = an error was found), the + filename, the linenumber and the error message + (boolean, string, string). The values are only + valid, if the status is True. + """ global indents, check_equal indents = [Whitespace("")] check_equal = 0 @@ -143,7 +227,7 @@ except Exception as err: return (True, "1", "Unspecific Error: {0}".format(str(err))) - return (False, None, None) + return (False, "", "") class Whitespace(object):
--- a/Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py Thu Apr 23 20:11:44 2015 +0200 +++ b/Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py Fri Apr 24 18:41:06 2015 +0200 @@ -17,7 +17,7 @@ import os import fnmatch -from PyQt5.QtCore import pyqtSlot, Qt +from PyQt5.QtCore import pyqtSlot, Qt, QTimer from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QTreeWidgetItem, \ QApplication, QHeaderView @@ -51,10 +51,12 @@ self.indentCheckService = indentCheckService self.indentCheckService.indentChecked.connect(self.__processResult) + self.indentCheckService.batchFinished.connect(self.__batchFinished) self.filename = None self.noResults = True self.cancelled = False + self.__finished = True self.__fileList = [] self.__project = None @@ -141,14 +143,20 @@ self.checkProgress.setVisible(len(self.files) > 1) self.checkProgressLabel.setVisible(len(self.files) > 1) QApplication.processEvents() - - # now go through all the files - self.progress = 0 - self.check() + + # now go through all the files + self.progress = 0 + self.files.sort() + if len(self.files) == 1: + self.__batch = False + self.check() + else: + self.__batch = True + self.checkBatch() def check(self, codestring=''): """ - Public method to start a style check for one file. + Public method to start an indentation check for one file. The results are reported to the __processResult slot. @keyparam codestring optional sourcestring (str) @@ -182,9 +190,55 @@ self.check() return + self.__finished = False self.indentCheckService.indentCheck( None, self.filename, self.source) + def checkBatch(self): + """ + Public method to start an indentation check batch job. + + The results are reported to the __processResult slot. + """ + self.__lastFileItem = None + + self.checkProgressLabel.setPath(self.tr("Preparing files...")) + progress = 0 + + argumentsList = [] + for filename in self.files: + progress += 1 + self.checkProgress.setValue(progress) + QApplication.processEvents() + + try: + source = Utilities.readEncodedFile(filename)[0] + source = Utilities.normalizeCode(source) + except (UnicodeError, IOError) as msg: + self.noResults = False + self.__createResultItem( + filename, 1, + "Error: {0}".format(str(msg)).rstrip()) + continue + + argumentsList.append((filename, source)) + + # reset the progress bar to the checked files + self.checkProgress.setValue(self.progress) + QApplication.processEvents() + + self.__finished = False + self.indentCheckService.indentBatchCheck(argumentsList) + + def __batchFinished(self): + """ + Private slot handling the completion of a batch job. + """ + self.checkProgressLabel.setPath("") + self.checkProgress.setMaximum(1) + self.checkProgress.setValue(1) + self.__finish() + def __processResult(self, fn, nok, line, error): """ Private slot called after perfoming a style check on one file. @@ -194,8 +248,12 @@ @param line line number (str) @param error text of the problem (str) """ - # Check if it's the requested file, otherwise ignore signal - if fn != self.filename: + if self.__finished: + return + + # Check if it's the requested file, otherwise ignore signal if not + # in batch mode + if not self.__batch and fn != self.filename: return if nok: @@ -204,30 +262,35 @@ self.progress += 1 self.checkProgress.setValue(self.progress) - self.checkProgressLabel.setPath("") + self.checkProgressLabel.setPath(fn) QApplication.processEvents() self.__resort() - self.check() + if not self.__batch: + self.check() def __finish(self): """ Private slot called when the action or the user pressed the button. """ - self.cancelled = True - self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) - self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) - self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) - - if self.noResults: - self.__createResultItem( - self.tr('No indentation errors found.'), "", "") - QApplication.processEvents() - self.resultList.header().resizeSections(QHeaderView.ResizeToContents) - self.resultList.header().setStretchLastSection(True) - - self.checkProgress.setVisible(False) - self.checkProgressLabel.setVisible(False) + if not self.__finished: + self.__finished = True + + self.cancelled = True + self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) + self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) + + if self.noResults: + self.__createResultItem( + self.tr('No indentation errors found.'), "", "") + QApplication.processEvents() + self.resultList.header().resizeSections( + QHeaderView.ResizeToContents) + self.resultList.header().setStretchLastSection(True) + + self.checkProgress.setVisible(False) + self.checkProgressLabel.setVisible(False) def on_buttonBox_clicked(self, button): """ @@ -238,7 +301,11 @@ if button == self.buttonBox.button(QDialogButtonBox.Close): self.close() elif button == self.buttonBox.button(QDialogButtonBox.Cancel): - self.__finish() + if self.__batch: + self.indentCheckService.cancelIndentBatchCheck() + QTimer.singleShot(1000, self.__finish) + else: + self.__finish() @pyqtSlot() def on_startButton_clicked(self):
--- a/Plugins/PluginTabnanny.py Thu Apr 23 20:11:44 2015 +0200 +++ b/Plugins/PluginTabnanny.py Fri Apr 24 18:41:06 2015 +0200 @@ -43,10 +43,12 @@ """ Class implementing the Tabnanny plugin. - @signal indentChecked(str, bool, str, str) emited when the indent + @signal indentChecked(str, bool, str, str) emitted when the indent check was done. + @signal batchFinished() emitted when a style check batch is done """ indentChecked = pyqtSignal(str, bool, str, str) + batchFinished = pyqtSignal() def __init__(self, ui): """ @@ -65,11 +67,16 @@ self.backgroundService.serviceConnect( 'indent', 'Python2', path, 'Tabnanny', lambda *args: self.indentChecked.emit(*args), - onErrorCallback=self.serviceErrorPy2) + onErrorCallback=self.serviceErrorPy2, + onBatchDone=self.batchJobDone) self.backgroundService.serviceConnect( 'indent', 'Python3', path, 'Tabnanny', lambda *args: self.indentChecked.emit(*args), - onErrorCallback=self.serviceErrorPy3) + onErrorCallback=self.serviceErrorPy3, + onBatchDone=self.batchJobDone) + + self.queuedBatches = [] + self.batchesFinished = True def __serviceError(self, fn, msg): """ @@ -82,27 +89,50 @@ def serviceErrorPy2(self, fx, lang, fn, msg): """ - Public method handling service errors for Python 2. + Public slot handling service errors for Python 2. @param fx service name (string) @param lang language (string) @param fn file name (string) @param msg message text (string) """ - if fx == 'indent' and lang == 'Python2': - self.__serviceError(fn, msg) + if fx in ['indent', 'batch_indent'] and lang == 'Python2': + if fx == 'indent': + self.__serviceError(fn, msg) + else: + self.__serviceError(self.tr("Python 2 batch check"), msg) + self.batchJobDone(fx, lang) def serviceErrorPy3(self, fx, lang, fn, msg): """ - Public method handling service errors for Python 2. + Public slot handling service errors for Python 2. @param fx service name (string) @param lang language (string) @param fn file name (string) @param msg message text (string) """ - if fx == 'indent' and lang == 'Python3': - self.__serviceError(fn, msg) + if fx in ['indent', 'batch_indent'] and lang == 'Python3': + if fx == 'indent': + self.__serviceError(fn, msg) + else: + self.__serviceError(self.tr("Python 3 batch check"), msg) + self.batchJobDone(fx, lang) + + def batchJobDone(self, fx, lang): + """ + Public slot handling the completion of a batch job. + + @param fx service name (string) + @param lang language (string) + """ + if fx in ['indent', 'batch_indent']: + if lang in self.queuedBatches: + self.queuedBatches.remove(lang) + # prevent sending the signal multiple times + if len(self.queuedBatches) == 0 and not self.batchesFinished: + self.batchFinished.emit() + self.batchesFinished = True def __initialize(self): """ @@ -121,7 +151,8 @@ def indentCheck(self, lang, filename, source): """ - Public method to prepare a style check on one Python source file. + Public method to prepare an indentation check on one Python source + file. @param lang language of the file or None to determine by internal algorithm (str or None) @@ -136,6 +167,40 @@ self.backgroundService.enqueueRequest( 'indent', lang, filename, [source]) + def indentBatchCheck(self, argumentsList): + """ + Public method to prepare an indentation check on multiple Python + source files. + + @param argumentsList list of arguments tuples with each tuple + containing filename and source (string, string) + """ + data = { + "Python2": [], + "Python3": [], + } + for filename, source in argumentsList: + lang = 'Python{0}'.format(determinePythonVersion(filename, source)) + if lang not in ['Python2', 'Python3']: + continue + else: + data[lang].append((filename, source)) + + self.queuedBatches = [] + for lang in ['Python2', 'Python3']: + if data[lang]: + self.queuedBatches.append(lang) + self.backgroundService.enqueueRequest('batch_indent', lang, "", + data[lang]) + self.batchesFinished = False + + def cancelIndentBatchCheck(self): + """ + Public method to cancel all batch jobs. + """ + for lang in ['Python2', 'Python3']: + self.backgroundService.requestCancel('batch_style', lang) + def activate(self): """ Public method to activate this plugin.
--- a/changelog Thu Apr 23 20:11:44 2015 +0200 +++ b/changelog Fri Apr 24 18:41:06 2015 +0200 @@ -10,6 +10,8 @@ multiple CPUs/CPU-Cores -- added a batch mode to the syntax checker to make use of multiple CPUs/CPU-Cores + -- added a batch mode to the indentation checker to make use of + multiple CPUs/CPU-Cores - Editor -- added capability to configure the indentation guides colors -- Lexers
--- a/i18n/eric6_cs.ts Thu Apr 23 20:11:44 2015 +0200 +++ b/i18n/eric6_cs.ts Fri Apr 24 18:41:06 2015 +0200 @@ -1393,37 +1393,37 @@ <context> <name>BackgroundService</name> <message> - <location filename="../Utilities/BackgroundService.py" line="120"/> + <location filename="../Utilities/BackgroundService.py" line="121"/> <source>{0} not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source>Restart background client?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="195"/> + <location filename="../Utilities/BackgroundService.py" line="200"/> <source>An error in Erics background client stopped the service.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="390"/> + <location filename="../Utilities/BackgroundService.py" line="405"/> <source>Erics background client disconnected because of an unknown reason.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>Background client disconnected.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>The background client for <b>{0}</b> disconnect because of an unknown reason.<br>Should it be restarted?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source><p>The background client for <b>{0}</b> has stopped due to an exception. It's used by various plug-ins like the different checkers.</p><p>Select<ul><li><b>'Yes'</b> to restart the client, but abort the last job</li><li><b>'Retry'</b> to restart the client and the last job</li><li><b>'No'</b> to leave the client off.</li></ul></p><p>Note: The client can be restarted by opening and accepting the preferences dialog or reloading/changing the project.</p></source> <translation type="unfinished"></translation> </message> @@ -3142,7 +3142,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="585"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="586"/> <source>No issues found.</source> <translation type="unfinished">Žádné problémy nenalezeny.</translation> </message> @@ -53526,17 +53526,17 @@ <context> <name>SyntaxCheckService</name> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="204"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="201"/> <source>Python 2 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="220"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="217"/> <source>Python 3 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="236"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="233"/> <source>JavaScript batch check</source> <translation type="unfinished"></translation> </message> @@ -53598,7 +53598,7 @@ <translation>Stisknout pro zobrazení všech souborů, které obsahují problém</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="332"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="345"/> <source>No issues found.</source> <translation>Žádné problémy nenalezeny.</translation> </message> @@ -54044,7 +54044,7 @@ <translation>Zobrazit průběh akce tabnanny</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="223"/> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="285"/> <source>No indentation errors found.</source> <translation>Žádné chyby zarážek nebyly nalezeny.</translation> </message> @@ -54073,29 +54073,44 @@ <source>%v/%m Files</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="205"/> + <source>Preparing files...</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>TabnannyPlugin</name> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>Check Indentations</source> <translation>Kontrola odsazení</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>&Indentations...</source> <translation>&Odsazení...</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="152"/> + <location filename="../Plugins/PluginTabnanny.py" line="217"/> <source>Check indentations using tabnanny.</source> <translation>Kontrola odsazení za použití tabnanny.</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="247"/> + <location filename="../Plugins/PluginTabnanny.py" line="312"/> <source><b>Check Indentations...</b><p>This checks Python files for bad indentations using tabnanny.</p></source> <translation><b>Kontrola odsazení....</b><p>Zkontroluje všechny Python soubory na správné odsazení za použití funkce tabnanny.</p></translation> </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="104"/> + <source>Python 2 batch check</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="120"/> + <source>Python 3 batch check</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>Tabview</name>
--- a/i18n/eric6_de.ts Thu Apr 23 20:11:44 2015 +0200 +++ b/i18n/eric6_de.ts Fri Apr 24 18:41:06 2015 +0200 @@ -1401,37 +1401,37 @@ <context> <name>BackgroundService</name> <message> - <location filename="../Utilities/BackgroundService.py" line="120"/> + <location filename="../Utilities/BackgroundService.py" line="121"/> <source>{0} not configured.</source> <translation>{0} nicht konfiguriert.</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source>Restart background client?</source> <translation>Hintergrund Client neu starten?</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>Background client disconnected.</source> <translation>Hintergrund Client wurde getrennt.</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>The background client for <b>{0}</b> disconnect because of an unknown reason.<br>Should it be restarted?</source> <translation>Die Verbindung zum Hintergund Client für <b>{0}</b> wurde aus unbekanntem Grund getrennt.<br>Soll er neu gestartet werden?</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="390"/> + <location filename="../Utilities/BackgroundService.py" line="405"/> <source>Erics background client disconnected because of an unknown reason.</source> <translation>Die Verbindung zu Erics Hintergund Client wurde aus unbekanntem Grund getrennt.</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="195"/> + <location filename="../Utilities/BackgroundService.py" line="200"/> <source>An error in Erics background client stopped the service.</source> <translation>Ein Fehler im Eric Hintergrunddienst hat den Dienst beendet.</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source><p>The background client for <b>{0}</b> has stopped due to an exception. It's used by various plug-ins like the different checkers.</p><p>Select<ul><li><b>'Yes'</b> to restart the client, but abort the last job</li><li><b>'Retry'</b> to restart the client and the last job</li><li><b>'No'</b> to leave the client off.</li></ul></p><p>Note: The client can be restarted by opening and accepting the preferences dialog or reloading/changing the project.</p></source> <translation><p>Der Hintergund Client für <b>{0}</b> wurde durch eine Exception gestoppt. Er wird für verschiedene Plugins, wie z.B. die Checker, verwendet.</p><p>Wähle:<ul><li><b>'Ja'</b>, um den Client aber nicht den letzten Job neu zu starten</li><li><b>'Wiederholen'</b>, um den Client und letzten Job neu zu starten</li><li><b>'Nein'</b>, um den Client nicht neu zu starten.</li></ul></p><p>Hinweis: Der Client kann immer wieder gestartet werden, indem der Einstellungsdialog mit Ok geschlossen wird oder durch das Neuladen/ Wechseln des Projektes.</p></translation> </message> @@ -3159,7 +3159,7 @@ <translation>Lösung: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="585"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="586"/> <source>No issues found.</source> <translation>Keine Probleme gefunden.</translation> </message> @@ -53628,17 +53628,17 @@ <context> <name>SyntaxCheckService</name> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="204"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="201"/> <source>Python 2 batch check</source> <translation>Python 2 Stapelprüfung</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="220"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="217"/> <source>Python 3 batch check</source> <translation>Python 3 Stapelprüfung</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="236"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="233"/> <source>JavaScript batch check</source> <translation>JavaScript Stapelprüfung</translation> </message> @@ -53702,7 +53702,7 @@ <translation>Drücken, um alle Dateien mit Problemen anzuzeigen</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="332"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="345"/> <source>No issues found.</source> <translation>Keine Probleme gefunden.</translation> </message> @@ -54106,7 +54106,7 @@ <context> <name>TabnannyDialog</name> <message> - <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="223"/> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="285"/> <source>No indentation errors found.</source> <translation>Keine Einrückungsfehler gefunden.</translation> </message> @@ -54181,29 +54181,44 @@ <source>%v/%m Files</source> <translation>%v/%m Dateien</translation> </message> + <message> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="205"/> + <source>Preparing files...</source> + <translation>Bereite Dateien vor...</translation> + </message> </context> <context> <name>TabnannyPlugin</name> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>Check Indentations</source> <translation>Einrückungen prüfen</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>&Indentations...</source> <translation>&Einrückungen...</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="152"/> + <location filename="../Plugins/PluginTabnanny.py" line="217"/> <source>Check indentations using tabnanny.</source> <translation>Einrückungen mit Tabnanny überprüfen.</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="247"/> + <location filename="../Plugins/PluginTabnanny.py" line="312"/> <source><b>Check Indentations...</b><p>This checks Python files for bad indentations using tabnanny.</p></source> <translation><b>Einrückungen überprüfen...</b><p>Dies überprüft Python-Dateien auf fehlerhafte Einrückungen mittels Tabnanny.</p></translation> </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="104"/> + <source>Python 2 batch check</source> + <translation>Python 2 Stapelprüfung</translation> + </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="120"/> + <source>Python 3 batch check</source> + <translation>Python 3 Stapelprüfung</translation> + </message> </context> <context> <name>Tabview</name>
--- a/i18n/eric6_en.ts Thu Apr 23 20:11:44 2015 +0200 +++ b/i18n/eric6_en.ts Fri Apr 24 18:41:06 2015 +0200 @@ -1380,37 +1380,37 @@ <context> <name>BackgroundService</name> <message> - <location filename="../Utilities/BackgroundService.py" line="120"/> + <location filename="../Utilities/BackgroundService.py" line="121"/> <source>{0} not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source>Restart background client?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="195"/> + <location filename="../Utilities/BackgroundService.py" line="200"/> <source>An error in Erics background client stopped the service.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="390"/> + <location filename="../Utilities/BackgroundService.py" line="405"/> <source>Erics background client disconnected because of an unknown reason.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>Background client disconnected.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>The background client for <b>{0}</b> disconnect because of an unknown reason.<br>Should it be restarted?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source><p>The background client for <b>{0}</b> has stopped due to an exception. It's used by various plug-ins like the different checkers.</p><p>Select<ul><li><b>'Yes'</b> to restart the client, but abort the last job</li><li><b>'Retry'</b> to restart the client and the last job</li><li><b>'No'</b> to leave the client off.</li></ul></p><p>Note: The client can be restarted by opening and accepting the preferences dialog or reloading/changing the project.</p></source> <translation type="unfinished"></translation> </message> @@ -3114,7 +3114,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="585"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="586"/> <source>No issues found.</source> <translation type="unfinished"></translation> </message> @@ -53136,17 +53136,17 @@ <context> <name>SyntaxCheckService</name> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="204"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="201"/> <source>Python 2 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="220"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="217"/> <source>Python 3 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="236"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="233"/> <source>JavaScript batch check</source> <translation type="unfinished"></translation> </message> @@ -53224,7 +53224,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="332"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="345"/> <source>No issues found.</source> <translation type="unfinished"></translation> </message> @@ -53668,7 +53668,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="223"/> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="285"/> <source>No indentation errors found.</source> <translation type="unfinished"></translation> </message> @@ -53677,29 +53677,44 @@ <source>%v/%m Files</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="205"/> + <source>Preparing files...</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>TabnannyPlugin</name> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>Check Indentations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>&Indentations...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="152"/> + <location filename="../Plugins/PluginTabnanny.py" line="217"/> <source>Check indentations using tabnanny.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="247"/> + <location filename="../Plugins/PluginTabnanny.py" line="312"/> <source><b>Check Indentations...</b><p>This checks Python files for bad indentations using tabnanny.</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="104"/> + <source>Python 2 batch check</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="120"/> + <source>Python 3 batch check</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>Tabview</name>
--- a/i18n/eric6_es.ts Thu Apr 23 20:11:44 2015 +0200 +++ b/i18n/eric6_es.ts Fri Apr 24 18:41:06 2015 +0200 @@ -1397,37 +1397,37 @@ <context> <name>BackgroundService</name> <message> - <location filename="../Utilities/BackgroundService.py" line="120"/> + <location filename="../Utilities/BackgroundService.py" line="121"/> <source>{0} not configured.</source> <translation>{0} no configurado.</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source>Restart background client?</source> <translation>¿Reiniciar cliente en background?</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>Background client disconnected.</source> <translation>Cliente en background desconectado.</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>The background client for <b>{0}</b> disconnect because of an unknown reason.<br>Should it be restarted?</source> <translation>El cliente en background para <b>{0}</b> ha desconectado por razón desconocida.<br>¿Reiniciarlo?</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="390"/> + <location filename="../Utilities/BackgroundService.py" line="405"/> <source>Erics background client disconnected because of an unknown reason.</source> <translation>El cliente en background de Eric ha desconectado debido a una razón desconocida.</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="195"/> + <location filename="../Utilities/BackgroundService.py" line="200"/> <source>An error in Erics background client stopped the service.</source> <translation>Un error en el cliente en background de Eric ha detenido el servicio.</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source><p>The background client for <b>{0}</b> has stopped due to an exception. It's used by various plug-ins like the different checkers.</p><p>Select<ul><li><b>'Yes'</b> to restart the client, but abort the last job</li><li><b>'Retry'</b> to restart the client and the last job</li><li><b>'No'</b> to leave the client off.</li></ul></p><p>Note: The client can be restarted by opening and accepting the preferences dialog or reloading/changing the project.</p></source> <translation><p>El cliente en background para <b>{0}</b> se ha detenido debido a una excepción. Éste es utilizado por varios plug-ins como los distintos comprobadores.</p><p>Seleccionar<ul><li><b>'Si'</b> para reiniciar el cliente, abortando el último trabajo</li><li><b>'Reintentar'</b> para reiniciar el cliente y el último trabajo</li><li><b>'No'</b> para dejar el cliente sin iniciar.</li></ul></p><p>Nota: El cliente se puede reiniciar abriendo y aceptando el diálogo de preferencias o recargando/cambiando el proyecto.</p></translation> </message> @@ -3156,7 +3156,7 @@ <translation>Arreglar: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="585"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="586"/> <source>No issues found.</source> <translation>No se han encontrado problemas.</translation> </message> @@ -53597,17 +53597,17 @@ <context> <name>SyntaxCheckService</name> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="204"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="201"/> <source>Python 2 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="220"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="217"/> <source>Python 3 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="236"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="233"/> <source>JavaScript batch check</source> <translation type="unfinished"></translation> </message> @@ -53669,7 +53669,7 @@ <translation>Pulsar para mostrar todos los archivos con algún problema</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="332"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="345"/> <source>No issues found.</source> <translation>No se han encontrado problemas.</translation> </message> @@ -54117,7 +54117,7 @@ <translation>Muestra el progreso de la acción de tabnanny</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="223"/> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="285"/> <source>No indentation errors found.</source> <translation>No se han encontrado errores de indentación.</translation> </message> @@ -54146,29 +54146,44 @@ <source>%v/%m Files</source> <translation>%v/%m Archivos</translation> </message> + <message> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="205"/> + <source>Preparing files...</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>TabnannyPlugin</name> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>Check Indentations</source> <translation>Verificar Indentaciones</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>&Indentations...</source> <translation>&Indentaciones...</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="152"/> + <location filename="../Plugins/PluginTabnanny.py" line="217"/> <source>Check indentations using tabnanny.</source> <translation>Verificar indentaciones utilizando tabnanny.</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="247"/> + <location filename="../Plugins/PluginTabnanny.py" line="312"/> <source><b>Check Indentations...</b><p>This checks Python files for bad indentations using tabnanny.</p></source> <translation><b>Verificar Indentaciones...</b><p>Chequea archivos Python buscando indentaciones mal hechas usando tabnanny.</p></translation> </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="104"/> + <source>Python 2 batch check</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="120"/> + <source>Python 3 batch check</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>Tabview</name>
--- a/i18n/eric6_fr.ts Thu Apr 23 20:11:44 2015 +0200 +++ b/i18n/eric6_fr.ts Fri Apr 24 18:41:06 2015 +0200 @@ -1400,37 +1400,37 @@ <context> <name>BackgroundService</name> <message> - <location filename="../Utilities/BackgroundService.py" line="120"/> + <location filename="../Utilities/BackgroundService.py" line="121"/> <source>{0} not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source>Restart background client?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="195"/> + <location filename="../Utilities/BackgroundService.py" line="200"/> <source>An error in Erics background client stopped the service.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="390"/> + <location filename="../Utilities/BackgroundService.py" line="405"/> <source>Erics background client disconnected because of an unknown reason.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>Background client disconnected.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>The background client for <b>{0}</b> disconnect because of an unknown reason.<br>Should it be restarted?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source><p>The background client for <b>{0}</b> has stopped due to an exception. It's used by various plug-ins like the different checkers.</p><p>Select<ul><li><b>'Yes'</b> to restart the client, but abort the last job</li><li><b>'Retry'</b> to restart the client and the last job</li><li><b>'No'</b> to leave the client off.</li></ul></p><p>Note: The client can be restarted by opening and accepting the preferences dialog or reloading/changing the project.</p></source> <translation type="unfinished"></translation> </message> @@ -3144,7 +3144,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="585"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="586"/> <source>No issues found.</source> <translation type="unfinished"></translation> </message> @@ -53587,17 +53587,17 @@ <context> <name>SyntaxCheckService</name> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="204"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="201"/> <source>Python 2 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="220"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="217"/> <source>Python 3 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="236"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="233"/> <source>JavaScript batch check</source> <translation type="unfinished"></translation> </message> @@ -53657,7 +53657,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="332"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="345"/> <source>No issues found.</source> <translation type="unfinished"></translation> </message> @@ -54061,7 +54061,7 @@ <context> <name>TabnannyDialog</name> <message> - <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="223"/> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="285"/> <source>No indentation errors found.</source> <translation>Aucune erreur d'indentation trouvée.</translation> </message> @@ -54136,29 +54136,44 @@ <source>%v/%m Files</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="205"/> + <source>Preparing files...</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>TabnannyPlugin</name> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>Check Indentations</source> <translation>Vérification des indentations</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>&Indentations...</source> <translation>&Indentations...</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="152"/> + <location filename="../Plugins/PluginTabnanny.py" line="217"/> <source>Check indentations using tabnanny.</source> <translation>Vérifie les indentation en utilisant tabanny.</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="247"/> + <location filename="../Plugins/PluginTabnanny.py" line="312"/> <source><b>Check Indentations...</b><p>This checks Python files for bad indentations using tabnanny.</p></source> <translation><b>Vérification des indentations...</b><p>Vérifie les mauvaises indentations des fichiers Python en utilisant tabanny.</p></translation> </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="104"/> + <source>Python 2 batch check</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="120"/> + <source>Python 3 batch check</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>Tabview</name>
--- a/i18n/eric6_it.ts Thu Apr 23 20:11:44 2015 +0200 +++ b/i18n/eric6_it.ts Fri Apr 24 18:41:06 2015 +0200 @@ -1398,37 +1398,37 @@ <context> <name>BackgroundService</name> <message> - <location filename="../Utilities/BackgroundService.py" line="120"/> + <location filename="../Utilities/BackgroundService.py" line="121"/> <source>{0} not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source>Restart background client?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="195"/> + <location filename="../Utilities/BackgroundService.py" line="200"/> <source>An error in Erics background client stopped the service.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="390"/> + <location filename="../Utilities/BackgroundService.py" line="405"/> <source>Erics background client disconnected because of an unknown reason.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>Background client disconnected.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>The background client for <b>{0}</b> disconnect because of an unknown reason.<br>Should it be restarted?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source><p>The background client for <b>{0}</b> has stopped due to an exception. It's used by various plug-ins like the different checkers.</p><p>Select<ul><li><b>'Yes'</b> to restart the client, but abort the last job</li><li><b>'Retry'</b> to restart the client and the last job</li><li><b>'No'</b> to leave the client off.</li></ul></p><p>Note: The client can be restarted by opening and accepting the preferences dialog or reloading/changing the project.</p></source> <translation type="unfinished"></translation> </message> @@ -3156,7 +3156,7 @@ <translation>Corregge:{0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="585"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="586"/> <source>No issues found.</source> <translation>Nessun problema trovato.</translation> </message> @@ -53682,17 +53682,17 @@ <context> <name>SyntaxCheckService</name> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="204"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="201"/> <source>Python 2 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="220"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="217"/> <source>Python 3 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="236"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="233"/> <source>JavaScript batch check</source> <translation type="unfinished"></translation> </message> @@ -53755,7 +53755,7 @@ <translation>Premi per mostrare tutti i file che contengono errori di sintassi</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="332"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="345"/> <source>No issues found.</source> <translation>Nessun problema trovato.</translation> </message> @@ -54159,7 +54159,7 @@ <context> <name>TabnannyDialog</name> <message> - <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="223"/> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="285"/> <source>No indentation errors found.</source> <translation>Nessun errore di identazione trovato.</translation> </message> @@ -54232,29 +54232,44 @@ <source>%v/%m Files</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="205"/> + <source>Preparing files...</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>TabnannyPlugin</name> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>Check Indentations</source> <translation>Controlla indentazione</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>&Indentations...</source> <translation>&Indentazione...</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="152"/> + <location filename="../Plugins/PluginTabnanny.py" line="217"/> <source>Check indentations using tabnanny.</source> <translation>Controlla indentazione con tabnanny.</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="247"/> + <location filename="../Plugins/PluginTabnanny.py" line="312"/> <source><b>Check Indentations...</b><p>This checks Python files for bad indentations using tabnanny.</p></source> <translation><b>Controlla indentazione...</b><p>Controlla i file Python per errori di indentazione usando tabnanny.</p></translation> </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="104"/> + <source>Python 2 batch check</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="120"/> + <source>Python 3 batch check</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>Tabview</name>
--- a/i18n/eric6_pt.ts Thu Apr 23 20:11:44 2015 +0200 +++ b/i18n/eric6_pt.ts Fri Apr 24 18:41:06 2015 +0200 @@ -1398,37 +1398,37 @@ <context> <name>BackgroundService</name> <message> - <location filename="../Utilities/BackgroundService.py" line="120"/> + <location filename="../Utilities/BackgroundService.py" line="121"/> <source>{0} not configured.</source> <translation>{0} sem configurar.</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source>Restart background client?</source> <translation>Reiniciar cliente de fundo?</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source><p>The background client for <b>{0}</b> has stopped due to an exception. It's used by various plug-ins like the different checkers.</p><p>Select<ul><li><b>'Yes'</b> to restart the client, but abort the last job</li><li><b>'Retry'</b> to restart the client and the last job</li><li><b>'No'</b> to leave the client off.</li></ul></p><p>Note: The client can be restarted by opening and accepting the preferences dialog or reloading/changing the project.</p></source> <translation><p>O cliente de fundo para <b>{0}</b> parou devido a uma exceção. Usa-se por varios complementos tais como os diferentes verificadores.</p><p>Selecionar<ul><li><b>'Sim'</b> para reiniciar o cliente mas abandona o último trabalho</li><li><b>'Reintentar'</b> para reiniciar o cliente e o último trabalho</li><li><b>'Não'</b> para deixar o cliente apagado.</li></ul></p><p>Nota: O cliente pode reiniciar-se abrindo e confirmando a caixa de diálogo de preferências ou recarregando/alterando o projeto.</p></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="195"/> + <location filename="../Utilities/BackgroundService.py" line="200"/> <source>An error in Erics background client stopped the service.</source> <translation>Um erro no cliente de fundo de Eric parou o serviço.</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="390"/> + <location filename="../Utilities/BackgroundService.py" line="405"/> <source>Erics background client disconnected because of an unknown reason.</source> <translation>Cliente de fundo de Eric desconectou-se por motivo desconhecido.</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>Background client disconnected.</source> <translation>Cliente de fundo desconectado.</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>The background client for <b>{0}</b> disconnect because of an unknown reason.<br>Should it be restarted?</source> <translation>O cliente de fundo para <b>{0}</b> desconectou-se por um motivo desconhecido.<br>Deverá ser reiniciado?</translation> </message> @@ -3153,7 +3153,7 @@ <translation>Corrigir: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="585"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="586"/> <source>No issues found.</source> <translation>Não se encontraram problemas.</translation> </message> @@ -53395,17 +53395,17 @@ <context> <name>SyntaxCheckService</name> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="204"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="201"/> <source>Python 2 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="220"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="217"/> <source>Python 3 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="236"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="233"/> <source>JavaScript batch check</source> <translation type="unfinished"></translation> </message> @@ -53483,7 +53483,7 @@ <translation type="unfinished">Pressionar para mostrar todos os ficheiros que tenham algum problema</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="332"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="345"/> <source>No issues found.</source> <translation type="unfinished">Não se encontraram problemas.</translation> </message> @@ -53927,7 +53927,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="223"/> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="285"/> <source>No indentation errors found.</source> <translation type="unfinished"></translation> </message> @@ -53936,29 +53936,44 @@ <source>%v/%m Files</source> <translation>%v/%m Ficheiros</translation> </message> + <message> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="205"/> + <source>Preparing files...</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>TabnannyPlugin</name> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>Check Indentations</source> <translation>Verificar Indentações</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>&Indentations...</source> <translation>&Indentações...</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="152"/> + <location filename="../Plugins/PluginTabnanny.py" line="217"/> <source>Check indentations using tabnanny.</source> <translation>Verificar indentações com tabnanny.</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="247"/> + <location filename="../Plugins/PluginTabnanny.py" line="312"/> <source><b>Check Indentations...</b><p>This checks Python files for bad indentations using tabnanny.</p></source> <translation><b>Verificar Indentações...</b><p>Verifica os ficheiros Python procurando más indentações usando tabnanny.</p></translation> </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="104"/> + <source>Python 2 batch check</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="120"/> + <source>Python 3 batch check</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>Tabview</name>
--- a/i18n/eric6_ru.ts Thu Apr 23 20:11:44 2015 +0200 +++ b/i18n/eric6_ru.ts Fri Apr 24 18:41:06 2015 +0200 @@ -1397,37 +1397,37 @@ <context> <name>BackgroundService</name> <message> - <location filename="../Utilities/BackgroundService.py" line="120"/> + <location filename="../Utilities/BackgroundService.py" line="121"/> <source>{0} not configured.</source> <translation>{0} не сконфигурирован.</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source>Restart background client?</source> <translation>Перезапустить клиент в фоновом режиме?</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="195"/> + <location filename="../Utilities/BackgroundService.py" line="200"/> <source>An error in Erics background client stopped the service.</source> <translation>Ошибка в слиенте остановила сервис.</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="390"/> + <location filename="../Utilities/BackgroundService.py" line="405"/> <source>Erics background client disconnected because of an unknown reason.</source> <translation>Фоновый клиент прервал соединение по неизвестной причине.</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>Background client disconnected.</source> <translation>Соединение фонового клиента прервано.</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>The background client for <b>{0}</b> disconnect because of an unknown reason.<br>Should it be restarted?</source> <translation>Соединение фонового клиента<b>{0}</b> прервано по неизвестной причине.<br>Перезапустить клиента?</translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source><p>The background client for <b>{0}</b> has stopped due to an exception. It's used by various plug-ins like the different checkers.</p><p>Select<ul><li><b>'Yes'</b> to restart the client, but abort the last job</li><li><b>'Retry'</b> to restart the client and the last job</li><li><b>'No'</b> to leave the client off.</li></ul></p><p>Note: The client can be restarted by opening and accepting the preferences dialog or reloading/changing the project.</p></source> <translation><p>Фоновый клиент<b>{0}</b> прекратил выполнение из-за ошибки. Этот клиент необходим для работы различных плагинов.</p><p>Выберите<ul><li><b>'Да'</b> чтобы перезапустить его и отменить последнее задание</li><li><b>'Повторить'</b>чтобы перезапустить его и последнее задание</li><li><b>'Нет'</b> чтобы не перезапускать клиент.</li></ul></p><p>Заметте: Клиент можно перезапустить открыв и сохранив диалог настроек или закрыв и снова открыв текущий проект.</p></translation> </message> @@ -3155,7 +3155,7 @@ <translation>Исправлено: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="585"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="586"/> <source>No issues found.</source> <translation>Проблем со стилем не найдено.</translation> </message> @@ -53726,17 +53726,17 @@ <context> <name>SyntaxCheckService</name> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="204"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="201"/> <source>Python 2 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="220"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="217"/> <source>Python 3 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="236"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="233"/> <source>JavaScript batch check</source> <translation type="unfinished"></translation> </message> @@ -53799,7 +53799,7 @@ <translation>Показать все файлы, содержащие синтаксические ошибки</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="332"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="345"/> <source>No issues found.</source> <translation>Синтаксисические ошибки не найдены.</translation> </message> @@ -54206,7 +54206,7 @@ <context> <name>TabnannyDialog</name> <message> - <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="223"/> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="285"/> <source>No indentation errors found.</source> <translation>Ошибки в отступах не найдены.</translation> </message> @@ -54279,29 +54279,44 @@ <source>%v/%m Files</source> <translation>%v/%m Файлы</translation> </message> + <message> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="205"/> + <source>Preparing files...</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>TabnannyPlugin</name> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>Check Indentations</source> <translation>Проверить отступы</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>&Indentations...</source> <translation>&Отступы...</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="152"/> + <location filename="../Plugins/PluginTabnanny.py" line="217"/> <source>Check indentations using tabnanny.</source> <translation>Проверить отступы с помощью tabnanny.</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="247"/> + <location filename="../Plugins/PluginTabnanny.py" line="312"/> <source><b>Check Indentations...</b><p>This checks Python files for bad indentations using tabnanny.</p></source> <translation><b>Проверить отступы...</b><p>Проверяет файлы Python на некорректные отступы при помощи tabnanny.</p></translation> </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="104"/> + <source>Python 2 batch check</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="120"/> + <source>Python 3 batch check</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>Tabview</name>
--- a/i18n/eric6_tr.ts Thu Apr 23 20:11:44 2015 +0200 +++ b/i18n/eric6_tr.ts Fri Apr 24 18:41:06 2015 +0200 @@ -1394,37 +1394,37 @@ <context> <name>BackgroundService</name> <message> - <location filename="../Utilities/BackgroundService.py" line="120"/> + <location filename="../Utilities/BackgroundService.py" line="121"/> <source>{0} not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source>Restart background client?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="195"/> + <location filename="../Utilities/BackgroundService.py" line="200"/> <source>An error in Erics background client stopped the service.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="390"/> + <location filename="../Utilities/BackgroundService.py" line="405"/> <source>Erics background client disconnected because of an unknown reason.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>Background client disconnected.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>The background client for <b>{0}</b> disconnect because of an unknown reason.<br>Should it be restarted?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source><p>The background client for <b>{0}</b> has stopped due to an exception. It's used by various plug-ins like the different checkers.</p><p>Select<ul><li><b>'Yes'</b> to restart the client, but abort the last job</li><li><b>'Retry'</b> to restart the client and the last job</li><li><b>'No'</b> to leave the client off.</li></ul></p><p>Note: The client can be restarted by opening and accepting the preferences dialog or reloading/changing the project.</p></source> <translation type="unfinished"></translation> </message> @@ -3141,7 +3141,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="585"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="586"/> <source>No issues found.</source> <translation type="unfinished">Sorun bulunamadı.</translation> </message> @@ -53374,17 +53374,17 @@ <context> <name>SyntaxCheckService</name> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="204"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="201"/> <source>Python 2 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="220"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="217"/> <source>Python 3 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="236"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="233"/> <source>JavaScript batch check</source> <translation type="unfinished"></translation> </message> @@ -53444,7 +53444,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="332"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="345"/> <source>No issues found.</source> <translation>Sorun bulunamadı.</translation> </message> @@ -53888,7 +53888,7 @@ <translation>Sekme yardımcısı işlem sürecini göster</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="223"/> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="285"/> <source>No indentation errors found.</source> <translation>Hiç girintileme hatası bulunamadı.</translation> </message> @@ -53917,29 +53917,44 @@ <source>%v/%m Files</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="205"/> + <source>Preparing files...</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>TabnannyPlugin</name> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>Check Indentations</source> <translation>Girinti Kontrolü</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>&Indentations...</source> <translation>G&irintiler...</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="152"/> + <location filename="../Plugins/PluginTabnanny.py" line="217"/> <source>Check indentations using tabnanny.</source> <translation>Girintileri sekmeyardımcıları kullanarak kontrol et.</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="247"/> + <location filename="../Plugins/PluginTabnanny.py" line="312"/> <source><b>Check Indentations...</b><p>This checks Python files for bad indentations using tabnanny.</p></source> <translation><b>Girinti Kontrolu...</b><p>bu kontrol python dosyalarında sekmelerin yanlış kullanımına karşı yapılır.</p></translation> </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="104"/> + <source>Python 2 batch check</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="120"/> + <source>Python 3 batch check</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>Tabview</name>
--- a/i18n/eric6_zh_CN.GB2312.ts Thu Apr 23 20:11:44 2015 +0200 +++ b/i18n/eric6_zh_CN.GB2312.ts Fri Apr 24 18:41:06 2015 +0200 @@ -1395,37 +1395,37 @@ <context> <name>BackgroundService</name> <message> - <location filename="../Utilities/BackgroundService.py" line="120"/> + <location filename="../Utilities/BackgroundService.py" line="121"/> <source>{0} not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source>Restart background client?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="195"/> + <location filename="../Utilities/BackgroundService.py" line="200"/> <source>An error in Erics background client stopped the service.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="390"/> + <location filename="../Utilities/BackgroundService.py" line="405"/> <source>Erics background client disconnected because of an unknown reason.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>Background client disconnected.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="396"/> + <location filename="../Utilities/BackgroundService.py" line="411"/> <source>The background client for <b>{0}</b> disconnect because of an unknown reason.<br>Should it be restarted?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="170"/> + <location filename="../Utilities/BackgroundService.py" line="175"/> <source><p>The background client for <b>{0}</b> has stopped due to an exception. It's used by various plug-ins like the different checkers.</p><p>Select<ul><li><b>'Yes'</b> to restart the client, but abort the last job</li><li><b>'Retry'</b> to restart the client and the last job</li><li><b>'No'</b> to leave the client off.</li></ul></p><p>Note: The client can be restarted by opening and accepting the preferences dialog or reloading/changing the project.</p></source> <translation type="unfinished"></translation> </message> @@ -3138,7 +3138,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="585"/> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="586"/> <source>No issues found.</source> <translation type="unfinished"></translation> </message> @@ -53516,17 +53516,17 @@ <context> <name>SyntaxCheckService</name> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="204"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="201"/> <source>Python 2 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="220"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="217"/> <source>Python 3 batch check</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="236"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="233"/> <source>JavaScript batch check</source> <translation type="unfinished"></translation> </message> @@ -53587,7 +53587,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="332"/> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="345"/> <source>No issues found.</source> <translation type="unfinished"></translation> </message> @@ -54035,7 +54035,7 @@ <translation>显示 tabnanny 行为的进程</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="223"/> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="285"/> <source>No indentation errors found.</source> <translation>未找到缩进错误。</translation> </message> @@ -54064,29 +54064,44 @@ <source>%v/%m Files</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="205"/> + <source>Preparing files...</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>TabnannyPlugin</name> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>Check Indentations</source> <translation>检查缩进</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="243"/> + <location filename="../Plugins/PluginTabnanny.py" line="308"/> <source>&Indentations...</source> <translation>缩进(&I)……</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="152"/> + <location filename="../Plugins/PluginTabnanny.py" line="217"/> <source>Check indentations using tabnanny.</source> <translation>使用 tabnanny 检查缩进。</translation> </message> <message> - <location filename="../Plugins/PluginTabnanny.py" line="247"/> + <location filename="../Plugins/PluginTabnanny.py" line="312"/> <source><b>Check Indentations...</b><p>This checks Python files for bad indentations using tabnanny.</p></source> <translation><b>检查缩进……</b><p>使用 tabnanny 检查 Python 文件的不良缩进。</p></translation> </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="104"/> + <source>Python 2 batch check</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../Plugins/PluginTabnanny.py" line="120"/> + <source>Python 3 batch check</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>Tabview</name>