Sun, 09 Jan 2011 18:16:46 +0100
Added a checker for PEP 8 compliance.
--- a/APIs/Python3/eric5.api Sun Jan 09 14:25:16 2011 +0100 +++ b/APIs/Python3/eric5.api Sun Jan 09 18:16:46 2011 +0100 @@ -2621,6 +2621,101 @@ eric5.Plugins.AboutPlugin.AboutDialog.licenseText?7 eric5.Plugins.AboutPlugin.AboutDialog.thanksText?7 eric5.Plugins.AboutPlugin.AboutDialog.titleText?7 +eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.Pep8Checker.report_error_args?4(line_number, offset, code, check, *args) +eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.Pep8Checker?1(filename, lines, repeat=False, select="", ignore="") +eric5.Plugins.CheckerPlugins.Pep8.Pep8CodeSelectionDialog.Pep8CodeSelectionDialog.getSelectedCodes?4() +eric5.Plugins.CheckerPlugins.Pep8.Pep8CodeSelectionDialog.Pep8CodeSelectionDialog?1(codes, parent = None) +eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.Pep8Dialog.filenameRole?7 +eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.Pep8Dialog.lineRole?7 +eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.Pep8Dialog.messageRole?7 +eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.Pep8Dialog.on_buttonBox_clicked?4(button) +eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.Pep8Dialog.on_excludeMessagesSelectButton_clicked?4() +eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.Pep8Dialog.on_includeMessagesSelectButton_clicked?4() +eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.Pep8Dialog.on_loadDefaultButton_clicked?4() +eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.Pep8Dialog.on_resultList_itemActivated?4(item, column) +eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.Pep8Dialog.on_showButton_clicked?4() +eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.Pep8Dialog.on_startButton_clicked?4() +eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.Pep8Dialog.on_storeDefaultButton_clicked?4() +eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.Pep8Dialog.positionRole?7 +eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.Pep8Dialog.prepare?4(fileList, project) +eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.Pep8Dialog.settingsKey?7 +eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.Pep8Dialog.start?4(fn, codestring = "", save = False, repeat = None) +eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.Pep8Dialog?1(parent = None) +eric5.Plugins.CheckerPlugins.Pep8.pep8.BENCHMARK_KEYS?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.BINARY_OPERATORS?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.Checker.build_tokens_line?4() +eric5.Plugins.CheckerPlugins.Pep8.pep8.Checker.check_all?4(expected=None, line_offset=0) +eric5.Plugins.CheckerPlugins.Pep8.pep8.Checker.check_logical?4() +eric5.Plugins.CheckerPlugins.Pep8.pep8.Checker.check_physical?4(line) +eric5.Plugins.CheckerPlugins.Pep8.pep8.Checker.readline?4() +eric5.Plugins.CheckerPlugins.Pep8.pep8.Checker.readline_check_physical?4() +eric5.Plugins.CheckerPlugins.Pep8.pep8.Checker.report_error?4(line_number, offset, text, check) +eric5.Plugins.CheckerPlugins.Pep8.pep8.Checker.run_check?4(check, argument_names) +eric5.Plugins.CheckerPlugins.Pep8.pep8.Checker?1(filename, lines=None) +eric5.Plugins.CheckerPlugins.Pep8.pep8.DEFAULT_EXCLUDE?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.DEFAULT_IGNORE?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.DOCSTRING_REGEX?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.E225NOT_KEYWORDS?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.ERRORCODE_REGEX?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.EXTRANEOUS_WHITESPACE_REGEX?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.INDENT_REGEX?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.MAX_LINE_LENGTH?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.OPERATORS?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.RAISE_COMMA_REGEX?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.SELFTEST_REGEX?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.SKIP_TOKENS?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.UNARY_OPERATORS?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.WHITESPACE?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.WHITESPACE_AROUND_NAMED_PARAMETER_REGEX?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.WHITESPACE_AROUND_OPERATOR_REGEX?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8._main?5() +eric5.Plugins.CheckerPlugins.Pep8.pep8.args?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.blank_lines?4(logical_line, blank_lines, indent_level, line_number, previous_logical, previous_indent_level, blank_lines_before_comment) +eric5.Plugins.CheckerPlugins.Pep8.pep8.compound_statements?4(logical_line) +eric5.Plugins.CheckerPlugins.Pep8.pep8.excluded?4(filename) +eric5.Plugins.CheckerPlugins.Pep8.pep8.expand_indent?4(line) +eric5.Plugins.CheckerPlugins.Pep8.pep8.extraneous_whitespace?4(logical_line) +eric5.Plugins.CheckerPlugins.Pep8.pep8.filename_match?4(filename) +eric5.Plugins.CheckerPlugins.Pep8.pep8.find_checks?4(argument_name) +eric5.Plugins.CheckerPlugins.Pep8.pep8.getMessage?4(code, *args) +eric5.Plugins.CheckerPlugins.Pep8.pep8.get_count?4(prefix='') +eric5.Plugins.CheckerPlugins.Pep8.pep8.get_error_statistics?4() +eric5.Plugins.CheckerPlugins.Pep8.pep8.get_statistics?4(prefix='') +eric5.Plugins.CheckerPlugins.Pep8.pep8.get_warning_statistics?4() +eric5.Plugins.CheckerPlugins.Pep8.pep8.ignore_code?4(code) +eric5.Plugins.CheckerPlugins.Pep8.pep8.imports_on_separate_lines?4(logical_line) +eric5.Plugins.CheckerPlugins.Pep8.pep8.indentation?4(logical_line, previous_logical, indent_char, indent_level, previous_indent_level) +eric5.Plugins.CheckerPlugins.Pep8.pep8.input_dir?4(dirname, runner=None) +eric5.Plugins.CheckerPlugins.Pep8.pep8.input_file?4(filename) +eric5.Plugins.CheckerPlugins.Pep8.pep8.maximum_line_length?4(physical_line) +eric5.Plugins.CheckerPlugins.Pep8.pep8.message?4(text) +eric5.Plugins.CheckerPlugins.Pep8.pep8.missing_newline?4(physical_line) +eric5.Plugins.CheckerPlugins.Pep8.pep8.missing_whitespace?4(logical_line) +eric5.Plugins.CheckerPlugins.Pep8.pep8.missing_whitespace_around_operator?4(logical_line, tokens) +eric5.Plugins.CheckerPlugins.Pep8.pep8.mute_string?4(text) +eric5.Plugins.CheckerPlugins.Pep8.pep8.options?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.pep8_messages?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.pep8_messages_sample_args?7 +eric5.Plugins.CheckerPlugins.Pep8.pep8.print_benchmark?4(elapsed) +eric5.Plugins.CheckerPlugins.Pep8.pep8.print_statistics?4(prefix='') +eric5.Plugins.CheckerPlugins.Pep8.pep8.process_options?4(arglist=None) +eric5.Plugins.CheckerPlugins.Pep8.pep8.python_3000_backticks?4(logical_line) +eric5.Plugins.CheckerPlugins.Pep8.pep8.python_3000_has_key?4(logical_line) +eric5.Plugins.CheckerPlugins.Pep8.pep8.python_3000_not_equal?4(logical_line) +eric5.Plugins.CheckerPlugins.Pep8.pep8.python_3000_raise_comma?4(logical_line) +eric5.Plugins.CheckerPlugins.Pep8.pep8.readlines?4(filename) +eric5.Plugins.CheckerPlugins.Pep8.pep8.reset_counters?4() +eric5.Plugins.CheckerPlugins.Pep8.pep8.run_tests?4(filename) +eric5.Plugins.CheckerPlugins.Pep8.pep8.selftest?4() +eric5.Plugins.CheckerPlugins.Pep8.pep8.tabs_obsolete?4(physical_line) +eric5.Plugins.CheckerPlugins.Pep8.pep8.tabs_or_spaces?4(physical_line, indent_char) +eric5.Plugins.CheckerPlugins.Pep8.pep8.trailing_blank_lines?4(physical_line, lines, line_number) +eric5.Plugins.CheckerPlugins.Pep8.pep8.trailing_whitespace?4(physical_line) +eric5.Plugins.CheckerPlugins.Pep8.pep8.whitespace_around_comma?4(logical_line) +eric5.Plugins.CheckerPlugins.Pep8.pep8.whitespace_around_named_parameter_equals?4(logical_line) +eric5.Plugins.CheckerPlugins.Pep8.pep8.whitespace_around_operator?4(logical_line) +eric5.Plugins.CheckerPlugins.Pep8.pep8.whitespace_before_inline_comment?4(logical_line, tokens) +eric5.Plugins.CheckerPlugins.Pep8.pep8.whitespace_before_parameters?4(logical_line, tokens) eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.SyntaxCheckerDialog.errorRole?7 eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.SyntaxCheckerDialog.filenameRole?7 eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.SyntaxCheckerDialog.lineRole?7 @@ -2732,6 +2827,20 @@ eric5.Plugins.PluginEricdoc.pyqtApi?7 eric5.Plugins.PluginEricdoc.shortDescription?7 eric5.Plugins.PluginEricdoc.version?7 +eric5.Plugins.PluginPep8Checker.Pep8CheckerPlugin.activate?4() +eric5.Plugins.PluginPep8Checker.Pep8CheckerPlugin.deactivate?4() +eric5.Plugins.PluginPep8Checker.Pep8CheckerPlugin?1(ui) +eric5.Plugins.PluginPep8Checker.author?7 +eric5.Plugins.PluginPep8Checker.autoactivate?7 +eric5.Plugins.PluginPep8Checker.className?7 +eric5.Plugins.PluginPep8Checker.deactivateable?7 +eric5.Plugins.PluginPep8Checker.error?7 +eric5.Plugins.PluginPep8Checker.longDescription?7 +eric5.Plugins.PluginPep8Checker.name?7 +eric5.Plugins.PluginPep8Checker.packageName?7 +eric5.Plugins.PluginPep8Checker.pyqtApi?7 +eric5.Plugins.PluginPep8Checker.shortDescription?7 +eric5.Plugins.PluginPep8Checker.version?7 eric5.Plugins.PluginSyntaxChecker.SyntaxCheckerPlugin.activate?4() eric5.Plugins.PluginSyntaxChecker.SyntaxCheckerPlugin.deactivate?4() eric5.Plugins.PluginSyntaxChecker.SyntaxCheckerPlugin?1(ui) @@ -4908,7 +5017,7 @@ eric5.QScintilla.Editor.Editor.getWordBoundaries?4(line, index, useWordChars = True) eric5.QScintilla.Editor.Editor.getWordLeft?4(line, index) eric5.QScintilla.Editor.Editor.getWordRight?4(line, index) -eric5.QScintilla.Editor.Editor.gotoLine?4(line) +eric5.QScintilla.Editor.Editor.gotoLine?4(line, pos = 1) eric5.QScintilla.Editor.Editor.gotoSyntaxError?4() eric5.QScintilla.Editor.Editor.handleMonospacedEnable?4() eric5.QScintilla.Editor.Editor.handleRenamed?4(fn) @@ -6554,7 +6663,7 @@ eric5.ViewManager.ViewManager.ViewManager.newEditorView?4(fn, caller, filetype = "") eric5.ViewManager.ViewManager.ViewManager.nextSplit?4() eric5.ViewManager.ViewManager.ViewManager.openFiles?4(prog = None) -eric5.ViewManager.ViewManager.ViewManager.openSourceFile?4(fn, lineno = None, filetype = "", selStart = 0, selEnd = 0) +eric5.ViewManager.ViewManager.ViewManager.openSourceFile?4(fn, lineno = None, filetype = "", selStart = 0, selEnd = 0, pos = 0) eric5.ViewManager.ViewManager.ViewManager.preferencesChanged?4() eric5.ViewManager.ViewManager.ViewManager.prevSplit?4() eric5.ViewManager.ViewManager.ViewManager.printCurrentEditor?4()
--- a/Documentation/Help/source.qhp Sun Jan 09 14:25:16 2011 +0100 +++ b/Documentation/Help/source.qhp Sun Jan 09 18:16:46 2011 +0100 @@ -330,6 +330,12 @@ <section title="eric5.Plugins.AboutPlugin.AboutDialog" ref="eric5.Plugins.AboutPlugin.AboutDialog.html" /> </section> <section title="eric5.Plugins.CheckerPlugins" ref="index-eric5.Plugins.CheckerPlugins.html"> + <section title="eric5.Plugins.CheckerPlugins.Pep8" ref="index-eric5.Plugins.CheckerPlugins.Pep8.html"> + <section title="eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.html" /> + <section title="eric5.Plugins.CheckerPlugins.Pep8.Pep8CodeSelectionDialog" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8CodeSelectionDialog.html" /> + <section title="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html" /> + <section title="eric5.Plugins.CheckerPlugins.Pep8.pep8" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html" /> + </section> <section title="eric5.Plugins.CheckerPlugins.SyntaxChecker" ref="index-eric5.Plugins.CheckerPlugins.SyntaxChecker.html"> <section title="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html" /> </section> @@ -493,6 +499,7 @@ <section title="eric5.Plugins.PluginAbout" ref="eric5.Plugins.PluginAbout.html" /> <section title="eric5.Plugins.PluginEricapi" ref="eric5.Plugins.PluginEricapi.html" /> <section title="eric5.Plugins.PluginEricdoc" ref="eric5.Plugins.PluginEricdoc.html" /> + <section title="eric5.Plugins.PluginPep8Checker" ref="eric5.Plugins.PluginPep8Checker.html" /> <section title="eric5.Plugins.PluginSyntaxChecker" ref="eric5.Plugins.PluginSyntaxChecker.html" /> <section title="eric5.Plugins.PluginTabnanny" ref="eric5.Plugins.PluginTabnanny.html" /> <section title="eric5.Plugins.PluginVcsMercurial" ref="eric5.Plugins.PluginVcsMercurial.html" /> @@ -5096,6 +5103,20 @@ <keyword name="ColorDialogWizard.__initMenu" id="ColorDialogWizard.__initMenu" ref="eric5.Plugins.PluginWizardQColorDialog.html#ColorDialogWizard.__initMenu" /> <keyword name="ColorDialogWizard.activate" id="ColorDialogWizard.activate" ref="eric5.Plugins.PluginWizardQColorDialog.html#ColorDialogWizard.activate" /> <keyword name="ColorDialogWizard.deactivate" id="ColorDialogWizard.deactivate" ref="eric5.Plugins.PluginWizardQColorDialog.html#ColorDialogWizard.deactivate" /> + <keyword name="PluginPep8Checker (Module)" id="PluginPep8Checker (Module)" ref="eric5.Plugins.PluginPep8Checker.html" /> + <keyword name="Pep8CheckerPlugin" id="Pep8CheckerPlugin" ref="eric5.Plugins.PluginPep8Checker.html#Pep8CheckerPlugin" /> + <keyword name="Pep8CheckerPlugin (Constructor)" id="Pep8CheckerPlugin (Constructor)" ref="eric5.Plugins.PluginPep8Checker.html#Pep8CheckerPlugin.__init__" /> + <keyword name="Pep8CheckerPlugin.__editorClosed" id="Pep8CheckerPlugin.__editorClosed" ref="eric5.Plugins.PluginPep8Checker.html#Pep8CheckerPlugin.__editorClosed" /> + <keyword name="Pep8CheckerPlugin.__editorOpened" id="Pep8CheckerPlugin.__editorOpened" ref="eric5.Plugins.PluginPep8Checker.html#Pep8CheckerPlugin.__editorOpened" /> + <keyword name="Pep8CheckerPlugin.__editorPep8Check" id="Pep8CheckerPlugin.__editorPep8Check" ref="eric5.Plugins.PluginPep8Checker.html#Pep8CheckerPlugin.__editorPep8Check" /> + <keyword name="Pep8CheckerPlugin.__editorShowMenu" id="Pep8CheckerPlugin.__editorShowMenu" ref="eric5.Plugins.PluginPep8Checker.html#Pep8CheckerPlugin.__editorShowMenu" /> + <keyword name="Pep8CheckerPlugin.__initialize" id="Pep8CheckerPlugin.__initialize" ref="eric5.Plugins.PluginPep8Checker.html#Pep8CheckerPlugin.__initialize" /> + <keyword name="Pep8CheckerPlugin.__projectBrowserPep8Check" id="Pep8CheckerPlugin.__projectBrowserPep8Check" ref="eric5.Plugins.PluginPep8Checker.html#Pep8CheckerPlugin.__projectBrowserPep8Check" /> + <keyword name="Pep8CheckerPlugin.__projectBrowserShowMenu" id="Pep8CheckerPlugin.__projectBrowserShowMenu" ref="eric5.Plugins.PluginPep8Checker.html#Pep8CheckerPlugin.__projectBrowserShowMenu" /> + <keyword name="Pep8CheckerPlugin.__projectPep8Check" id="Pep8CheckerPlugin.__projectPep8Check" ref="eric5.Plugins.PluginPep8Checker.html#Pep8CheckerPlugin.__projectPep8Check" /> + <keyword name="Pep8CheckerPlugin.__projectShowMenu" id="Pep8CheckerPlugin.__projectShowMenu" ref="eric5.Plugins.PluginPep8Checker.html#Pep8CheckerPlugin.__projectShowMenu" /> + <keyword name="Pep8CheckerPlugin.activate" id="Pep8CheckerPlugin.activate" ref="eric5.Plugins.PluginPep8Checker.html#Pep8CheckerPlugin.activate" /> + <keyword name="Pep8CheckerPlugin.deactivate" id="Pep8CheckerPlugin.deactivate" ref="eric5.Plugins.PluginPep8Checker.html#Pep8CheckerPlugin.deactivate" /> <keyword name="PluginWizardQFontDialog (Module)" id="PluginWizardQFontDialog (Module)" ref="eric5.Plugins.PluginWizardQFontDialog.html" /> <keyword name="FontDialogWizard" id="FontDialogWizard" ref="eric5.Plugins.PluginWizardQFontDialog.html#FontDialogWizard" /> <keyword name="FontDialogWizard (Constructor)" id="FontDialogWizard (Constructor)" ref="eric5.Plugins.PluginWizardQFontDialog.html#FontDialogWizard.__init__" /> @@ -9238,6 +9259,89 @@ <keyword name="SyntaxCheckerDialog.on_startButton_clicked" id="SyntaxCheckerDialog.on_startButton_clicked" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html#SyntaxCheckerDialog.on_startButton_clicked" /> <keyword name="SyntaxCheckerDialog.prepare" id="SyntaxCheckerDialog.prepare" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html#SyntaxCheckerDialog.prepare" /> <keyword name="SyntaxCheckerDialog.start" id="SyntaxCheckerDialog.start" ref="eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html#SyntaxCheckerDialog.start" /> + <keyword name="Pep8 (Package)" id="Pep8 (Package)" ref="index-eric5.Plugins.CheckerPlugins.Pep8.html" /> + <keyword name="Pep8Checker (Module)" id="Pep8Checker (Module)" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.html" /> + <keyword name="Pep8Checker" id="Pep8Checker" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.html#Pep8Checker" /> + <keyword name="Pep8Checker (Constructor)" id="Pep8Checker (Constructor)" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.html#Pep8Checker.__init__" /> + <keyword name="Pep8Checker.__ignore_code" id="Pep8Checker.__ignore_code" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.html#Pep8Checker.__ignore_code" /> + <keyword name="Pep8Checker.report_error_args" id="Pep8Checker.report_error_args" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.html#Pep8Checker.report_error_args" /> + <keyword name="pep8 (Module)" id="pep8 (Module)" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html" /> + <keyword name="Checker" id="Checker" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#Checker" /> + <keyword name="_main" id="_main" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#_main" /> + <keyword name="blank_lines" id="blank_lines" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#blank_lines" /> + <keyword name="compound_statements" id="compound_statements" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#compound_statements" /> + <keyword name="excluded" id="excluded" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#excluded" /> + <keyword name="expand_indent" id="expand_indent" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#expand_indent" /> + <keyword name="extraneous_whitespace" id="extraneous_whitespace" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#extraneous_whitespace" /> + <keyword name="filename_match" id="filename_match" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#filename_match" /> + <keyword name="find_checks" id="find_checks" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#find_checks" /> + <keyword name="getMessage" id="getMessage" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#getMessage" /> + <keyword name="get_count" id="get_count" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#get_count" /> + <keyword name="get_error_statistics" id="get_error_statistics" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#get_error_statistics" /> + <keyword name="get_statistics" id="get_statistics" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#get_statistics" /> + <keyword name="get_warning_statistics" id="get_warning_statistics" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#get_warning_statistics" /> + <keyword name="ignore_code" id="ignore_code" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#ignore_code" /> + <keyword name="imports_on_separate_lines" id="imports_on_separate_lines" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#imports_on_separate_lines" /> + <keyword name="indentation" id="indentation" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#indentation" /> + <keyword name="input_dir" id="input_dir" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#input_dir" /> + <keyword name="input_file" id="input_file" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#input_file" /> + <keyword name="maximum_line_length" id="maximum_line_length" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#maximum_line_length" /> + <keyword name="message" id="message" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#message" /> + <keyword name="missing_newline" id="missing_newline" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#missing_newline" /> + <keyword name="missing_whitespace" id="missing_whitespace" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#missing_whitespace" /> + <keyword name="missing_whitespace_around_operator" id="missing_whitespace_around_operator" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#missing_whitespace_around_operator" /> + <keyword name="mute_string" id="mute_string" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#mute_string" /> + <keyword name="print_benchmark" id="print_benchmark" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#print_benchmark" /> + <keyword name="print_statistics" id="print_statistics" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#print_statistics" /> + <keyword name="process_options" id="process_options" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#process_options" /> + <keyword name="python_3000_backticks" id="python_3000_backticks" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#python_3000_backticks" /> + <keyword name="python_3000_has_key" id="python_3000_has_key" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#python_3000_has_key" /> + <keyword name="python_3000_not_equal" id="python_3000_not_equal" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#python_3000_not_equal" /> + <keyword name="python_3000_raise_comma" id="python_3000_raise_comma" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#python_3000_raise_comma" /> + <keyword name="readlines" id="readlines" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#readlines" /> + <keyword name="readlines_1" id="readlines_1" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#readlines_1" /> + <keyword name="reset_counters" id="reset_counters" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#reset_counters" /> + <keyword name="run_tests" id="run_tests" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#run_tests" /> + <keyword name="selftest" id="selftest" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#selftest" /> + <keyword name="tabs_obsolete" id="tabs_obsolete" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#tabs_obsolete" /> + <keyword name="tabs_or_spaces" id="tabs_or_spaces" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#tabs_or_spaces" /> + <keyword name="trailing_blank_lines" id="trailing_blank_lines" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#trailing_blank_lines" /> + <keyword name="trailing_whitespace" id="trailing_whitespace" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#trailing_whitespace" /> + <keyword name="whitespace_around_comma" id="whitespace_around_comma" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#whitespace_around_comma" /> + <keyword name="whitespace_around_named_parameter_equals" id="whitespace_around_named_parameter_equals" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#whitespace_around_named_parameter_equals" /> + <keyword name="whitespace_around_operator" id="whitespace_around_operator" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#whitespace_around_operator" /> + <keyword name="whitespace_before_inline_comment" id="whitespace_before_inline_comment" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#whitespace_before_inline_comment" /> + <keyword name="whitespace_before_parameters" id="whitespace_before_parameters" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#whitespace_before_parameters" /> + <keyword name="Checker (Constructor)" id="Checker (Constructor)" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#Checker.__init__" /> + <keyword name="Checker.build_tokens_line" id="Checker.build_tokens_line" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#Checker.build_tokens_line" /> + <keyword name="Checker.check_all" id="Checker.check_all" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#Checker.check_all" /> + <keyword name="Checker.check_logical" id="Checker.check_logical" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#Checker.check_logical" /> + <keyword name="Checker.check_physical" id="Checker.check_physical" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#Checker.check_physical" /> + <keyword name="Checker.readline" id="Checker.readline" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#Checker.readline" /> + <keyword name="Checker.readline_check_physical" id="Checker.readline_check_physical" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#Checker.readline_check_physical" /> + <keyword name="Checker.report_error" id="Checker.report_error" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#Checker.report_error" /> + <keyword name="Checker.run_check" id="Checker.run_check" ref="eric5.Plugins.CheckerPlugins.Pep8.pep8.html#Checker.run_check" /> + <keyword name="Pep8CodeSelectionDialog (Module)" id="Pep8CodeSelectionDialog (Module)" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8CodeSelectionDialog.html" /> + <keyword name="Pep8CodeSelectionDialog" id="Pep8CodeSelectionDialog" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8CodeSelectionDialog.html#Pep8CodeSelectionDialog" /> + <keyword name="Pep8CodeSelectionDialog (Constructor)" id="Pep8CodeSelectionDialog (Constructor)" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8CodeSelectionDialog.html#Pep8CodeSelectionDialog.__init__" /> + <keyword name="Pep8CodeSelectionDialog.getSelectedCodes" id="Pep8CodeSelectionDialog.getSelectedCodes" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8CodeSelectionDialog.html#Pep8CodeSelectionDialog.getSelectedCodes" /> + <keyword name="Pep8Dialog (Module)" id="Pep8Dialog (Module)" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html" /> + <keyword name="Pep8Dialog" id="Pep8Dialog" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html#Pep8Dialog" /> + <keyword name="Pep8Dialog (Constructor)" id="Pep8Dialog (Constructor)" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html#Pep8Dialog.__init__" /> + <keyword name="Pep8Dialog.__clearErrors" id="Pep8Dialog.__clearErrors" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html#Pep8Dialog.__clearErrors" /> + <keyword name="Pep8Dialog.__createResultItem" id="Pep8Dialog.__createResultItem" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html#Pep8Dialog.__createResultItem" /> + <keyword name="Pep8Dialog.__finish" id="Pep8Dialog.__finish" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html#Pep8Dialog.__finish" /> + <keyword name="Pep8Dialog.__resort" id="Pep8Dialog.__resort" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html#Pep8Dialog.__resort" /> + <keyword name="Pep8Dialog.on_buttonBox_clicked" id="Pep8Dialog.on_buttonBox_clicked" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html#Pep8Dialog.on_buttonBox_clicked" /> + <keyword name="Pep8Dialog.on_excludeMessagesSelectButton_clicked" id="Pep8Dialog.on_excludeMessagesSelectButton_clicked" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html#Pep8Dialog.on_excludeMessagesSelectButton_clicked" /> + <keyword name="Pep8Dialog.on_includeMessagesSelectButton_clicked" id="Pep8Dialog.on_includeMessagesSelectButton_clicked" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html#Pep8Dialog.on_includeMessagesSelectButton_clicked" /> + <keyword name="Pep8Dialog.on_loadDefaultButton_clicked" id="Pep8Dialog.on_loadDefaultButton_clicked" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html#Pep8Dialog.on_loadDefaultButton_clicked" /> + <keyword name="Pep8Dialog.on_resultList_itemActivated" id="Pep8Dialog.on_resultList_itemActivated" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html#Pep8Dialog.on_resultList_itemActivated" /> + <keyword name="Pep8Dialog.on_showButton_clicked" id="Pep8Dialog.on_showButton_clicked" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html#Pep8Dialog.on_showButton_clicked" /> + <keyword name="Pep8Dialog.on_startButton_clicked" id="Pep8Dialog.on_startButton_clicked" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html#Pep8Dialog.on_startButton_clicked" /> + <keyword name="Pep8Dialog.on_storeDefaultButton_clicked" id="Pep8Dialog.on_storeDefaultButton_clicked" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html#Pep8Dialog.on_storeDefaultButton_clicked" /> + <keyword name="Pep8Dialog.prepare" id="Pep8Dialog.prepare" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html#Pep8Dialog.prepare" /> + <keyword name="Pep8Dialog.start" id="Pep8Dialog.start" ref="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html#Pep8Dialog.start" /> <keyword name="Tabnanny (Package)" id="Tabnanny (Package)" ref="index-eric5.Plugins.CheckerPlugins.Tabnanny.html" /> <keyword name="TabnannyDialog (Module)" id="TabnannyDialog (Module)" ref="eric5.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html" /> <keyword name="TabnannyDialog" id="TabnannyDialog" ref="eric5.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html#TabnannyDialog" /> @@ -10241,6 +10345,10 @@ <file>eric5.PluginManager.PluginRepositoryDialog.html</file> <file>eric5.PluginManager.PluginUninstallDialog.html</file> <file>eric5.Plugins.AboutPlugin.AboutDialog.html</file> + <file>eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.html</file> + <file>eric5.Plugins.CheckerPlugins.Pep8.Pep8CodeSelectionDialog.html</file> + <file>eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html</file> + <file>eric5.Plugins.CheckerPlugins.Pep8.pep8.html</file> <file>eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html</file> <file>eric5.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html</file> <file>eric5.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html</file> @@ -10251,6 +10359,7 @@ <file>eric5.Plugins.PluginAbout.html</file> <file>eric5.Plugins.PluginEricapi.html</file> <file>eric5.Plugins.PluginEricdoc.html</file> + <file>eric5.Plugins.PluginPep8Checker.html</file> <file>eric5.Plugins.PluginSyntaxChecker.html</file> <file>eric5.Plugins.PluginTabnanny.html</file> <file>eric5.Plugins.PluginVcsMercurial.html</file> @@ -10631,6 +10740,7 @@ <file>index-eric5.MultiProject.html</file> <file>index-eric5.PluginManager.html</file> <file>index-eric5.Plugins.AboutPlugin.html</file> + <file>index-eric5.Plugins.CheckerPlugins.Pep8.html</file> <file>index-eric5.Plugins.CheckerPlugins.SyntaxChecker.html</file> <file>index-eric5.Plugins.CheckerPlugins.Tabnanny.html</file> <file>index-eric5.Plugins.CheckerPlugins.html</file>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.html Sun Jan 09 18:16:46 2011 +0100 @@ -0,0 +1,138 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker</title> +<style> +body { + background: #EDECE6; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #85774A; } +h2 { color: white; background: #85774A; } +h3 { color: white; background: #9D936E; } +h4 { color: white; background: #9D936E; } + +a { color: #BA6D36; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker</h1> +<p> +Module implementing the PEP 8 checker. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#Pep8Checker">Pep8Checker</a></td> +<td>Class implementing the PEP 8 checker.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="Pep8Checker" ID="Pep8Checker"></a> +<h2>Pep8Checker</h2> +<p> + Class implementing the PEP 8 checker. +</p> +<h3>Derived from</h3> +pep8.Checker +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#Pep8Checker.__init__">Pep8Checker</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#Pep8Checker.__ignore_code">__ignore_code</a></td> +<td>Private method to check, if the message for the given code should be ignored.</td> +</tr><tr> +<td><a href="#Pep8Checker.report_error_args">report_error_args</a></td> +<td>Public method to collect the error messages.</td> +</tr> +</table> +<a NAME="Pep8Checker.__init__" ID="Pep8Checker.__init__"></a> +<h4>Pep8Checker (Constructor)</h4> +<b>Pep8Checker</b>(<i>filename, lines, repeat=False, select="", ignore=""</i>) +<p> + Constructor +</p><dl> +<dt><i>filename</i></dt> +<dd> +name of the file to check (string) +</dd><dt><i>lines</i></dt> +<dd> +source of the file (list of strings) +</dd><dt><i>repeat=</i></dt> +<dd> +flag indicating to repeat message categories (boolean) +</dd><dt><i>select=</i></dt> +<dd> +list of message IDs to check for + (comma separated string) +</dd><dt><i>ignore=</i></dt> +<dd> +list of message IDs to ignore + (comma separated string) +</dd> +</dl><a NAME="Pep8Checker.__ignore_code" ID="Pep8Checker.__ignore_code"></a> +<h4>Pep8Checker.__ignore_code</h4> +<b>__ignore_code</b>(<i>code</i>) +<p> + Private method to check, if the message for the given code should + be ignored. +</p><p> + If codes are selected and the code has a selected prefix and does not + have an ignored prefix, it is not ignored. If codes are selected and + the code does not have a selected prefix, it is ignored. If no codes + are selected, the code is ignored, if it has a prefix, that is + contained in the ignored codes. +</p><dl> +<dt><i>code</i></dt> +<dd> +code to be checked (string) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +flag indicating, that the code should be ignored (boolean) +</dd> +</dl><a NAME="Pep8Checker.report_error_args" ID="Pep8Checker.report_error_args"></a> +<h4>Pep8Checker.report_error_args</h4> +<b>report_error_args</b>(<i>line_number, offset, code, check, *args</i>) +<p> + Public method to collect the error messages. +</p><dl> +<dt><i>line_number</i></dt> +<dd> +line number of the issue (integer) +</dd><dt><i>offset</i></dt> +<dd> +position within line of the issue (integer) +</dd><dt><i>code</i></dt> +<dd> +message code (string) +</dd><dt><i>check</i></dt> +<dd> +reference to the checker function (function) +</dd><dt><i>args</i></dt> +<dd> +arguments for the message (list) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.Pep8.Pep8CodeSelectionDialog.html Sun Jan 09 18:16:46 2011 +0100 @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.CheckerPlugins.Pep8.Pep8CodeSelectionDialog</title> +<style> +body { + background: #EDECE6; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #85774A; } +h2 { color: white; background: #85774A; } +h3 { color: white; background: #9D936E; } +h4 { color: white; background: #9D936E; } + +a { color: #BA6D36; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.CheckerPlugins.Pep8.Pep8CodeSelectionDialog</h1> +<p> +Module implementing a dialog to select PEP 8 message codes. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#Pep8CodeSelectionDialog">Pep8CodeSelectionDialog</a></td> +<td>Class implementing a dialog to select PEP 8 message codes.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="Pep8CodeSelectionDialog" ID="Pep8CodeSelectionDialog"></a> +<h2>Pep8CodeSelectionDialog</h2> +<p> + Class implementing a dialog to select PEP 8 message codes. +</p> +<h3>Derived from</h3> +QDialog, Ui_Pep8CodeSelectionDialog +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#Pep8CodeSelectionDialog.__init__">Pep8CodeSelectionDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#Pep8CodeSelectionDialog.getSelectedCodes">getSelectedCodes</a></td> +<td>Public method to get a comma separated list of codes selected.</td> +</tr> +</table> +<a NAME="Pep8CodeSelectionDialog.__init__" ID="Pep8CodeSelectionDialog.__init__"></a> +<h4>Pep8CodeSelectionDialog (Constructor)</h4> +<b>Pep8CodeSelectionDialog</b>(<i>codes, parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>codes</i></dt> +<dd> +comma separated list of selected codes (string) +</dd><dt><i>parent</i></dt> +<dd> +reference to the parent widget (QWidget) +</dd> +</dl><a NAME="Pep8CodeSelectionDialog.getSelectedCodes" ID="Pep8CodeSelectionDialog.getSelectedCodes"></a> +<h4>Pep8CodeSelectionDialog.getSelectedCodes</h4> +<b>getSelectedCodes</b>(<i></i>) +<p> + Public method to get a comma separated list of codes selected. +</p><dl> +<dt>Returns:</dt> +<dd> +comma separated list of selected codes (string) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html Sun Jan 09 18:16:46 2011 +0100 @@ -0,0 +1,243 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog</title> +<style> +body { + background: #EDECE6; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #85774A; } +h2 { color: white; background: #85774A; } +h3 { color: white; background: #9D936E; } +h4 { color: white; background: #9D936E; } + +a { color: #BA6D36; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog</h1> +<p> +Module implementing a dialog to show the results of the PEP 8 check. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#Pep8Dialog">Pep8Dialog</a></td> +<td>Class implementing a dialog to show the results of the PEP 8 check.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="Pep8Dialog" ID="Pep8Dialog"></a> +<h2>Pep8Dialog</h2> +<p> + Class implementing a dialog to show the results of the PEP 8 check. +</p> +<h3>Derived from</h3> +QDialog, Ui_Pep8Dialog +<h3>Class Attributes</h3> +<table> +<tr><td>filenameRole</td></tr><tr><td>lineRole</td></tr><tr><td>messageRole</td></tr><tr><td>positionRole</td></tr><tr><td>settingsKey</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#Pep8Dialog.__init__">Pep8Dialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#Pep8Dialog.__clearErrors">__clearErrors</a></td> +<td>Private method to clear all warning markers of open editors.</td> +</tr><tr> +<td><a href="#Pep8Dialog.__createResultItem">__createResultItem</a></td> +<td>Private method to create an entry in the result list.</td> +</tr><tr> +<td><a href="#Pep8Dialog.__finish">__finish</a></td> +<td>Private slot called when the PEP 8 check finished or the user pressed the cancel button.</td> +</tr><tr> +<td><a href="#Pep8Dialog.__resort">__resort</a></td> +<td>Private method to resort the tree.</td> +</tr><tr> +<td><a href="#Pep8Dialog.on_buttonBox_clicked">on_buttonBox_clicked</a></td> +<td>Private slot called by a button of the button box clicked.</td> +</tr><tr> +<td><a href="#Pep8Dialog.on_excludeMessagesSelectButton_clicked">on_excludeMessagesSelectButton_clicked</a></td> +<td>Private slot to select the message codes to be excluded via a selection dialog.</td> +</tr><tr> +<td><a href="#Pep8Dialog.on_includeMessagesSelectButton_clicked">on_includeMessagesSelectButton_clicked</a></td> +<td>Private slot to select the message codes to be included via a selection dialog.</td> +</tr><tr> +<td><a href="#Pep8Dialog.on_loadDefaultButton_clicked">on_loadDefaultButton_clicked</a></td> +<td>Private slot to load the default configuration values.</td> +</tr><tr> +<td><a href="#Pep8Dialog.on_resultList_itemActivated">on_resultList_itemActivated</a></td> +<td>Private slot to handle the activation of an item.</td> +</tr><tr> +<td><a href="#Pep8Dialog.on_showButton_clicked">on_showButton_clicked</a></td> +<td>Private slot to handle the "Show" button press.</td> +</tr><tr> +<td><a href="#Pep8Dialog.on_startButton_clicked">on_startButton_clicked</a></td> +<td>Private slot to start a PEP 8 check run.</td> +</tr><tr> +<td><a href="#Pep8Dialog.on_storeDefaultButton_clicked">on_storeDefaultButton_clicked</a></td> +<td>Private slot to store the current configuration values as default values.</td> +</tr><tr> +<td><a href="#Pep8Dialog.prepare">prepare</a></td> +<td>Public method to prepare the dialog with a list of filenames.</td> +</tr><tr> +<td><a href="#Pep8Dialog.start">start</a></td> +<td>Public slot to start the PEP 8 check.</td> +</tr> +</table> +<a NAME="Pep8Dialog.__init__" ID="Pep8Dialog.__init__"></a> +<h4>Pep8Dialog (Constructor)</h4> +<b>Pep8Dialog</b>(<i>parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>parent</i></dt> +<dd> +reference to the parent widget (QWidget) +</dd> +</dl><a NAME="Pep8Dialog.__clearErrors" ID="Pep8Dialog.__clearErrors"></a> +<h4>Pep8Dialog.__clearErrors</h4> +<b>__clearErrors</b>(<i></i>) +<p> + Private method to clear all warning markers of open editors. +</p><a NAME="Pep8Dialog.__createResultItem" ID="Pep8Dialog.__createResultItem"></a> +<h4>Pep8Dialog.__createResultItem</h4> +<b>__createResultItem</b>(<i>file, line, pos, message</i>) +<p> + Private method to create an entry in the result list. +</p><dl> +<dt><i>file</i></dt> +<dd> +file name of the file (string) +</dd><dt><i>line</i></dt> +<dd> +line number of issue (integer or string) +</dd><dt><i>pos</i></dt> +<dd> +character position of issue (integer or string) +</dd><dt><i>message</i></dt> +<dd> +message text (string) +</dd> +</dl><a NAME="Pep8Dialog.__finish" ID="Pep8Dialog.__finish"></a> +<h4>Pep8Dialog.__finish</h4> +<b>__finish</b>(<i></i>) +<p> + Private slot called when the PEP 8 check finished or the user + pressed the cancel button. +</p><a NAME="Pep8Dialog.__resort" ID="Pep8Dialog.__resort"></a> +<h4>Pep8Dialog.__resort</h4> +<b>__resort</b>(<i></i>) +<p> + Private method to resort the tree. +</p><a NAME="Pep8Dialog.on_buttonBox_clicked" ID="Pep8Dialog.on_buttonBox_clicked"></a> +<h4>Pep8Dialog.on_buttonBox_clicked</h4> +<b>on_buttonBox_clicked</b>(<i>button</i>) +<p> + Private slot called by a button of the button box clicked. +</p><dl> +<dt><i>button</i></dt> +<dd> +button that was clicked (QAbstractButton) +</dd> +</dl><a NAME="Pep8Dialog.on_excludeMessagesSelectButton_clicked" ID="Pep8Dialog.on_excludeMessagesSelectButton_clicked"></a> +<h4>Pep8Dialog.on_excludeMessagesSelectButton_clicked</h4> +<b>on_excludeMessagesSelectButton_clicked</b>(<i></i>) +<p> + Private slot to select the message codes to be excluded via a + selection dialog. +</p><a NAME="Pep8Dialog.on_includeMessagesSelectButton_clicked" ID="Pep8Dialog.on_includeMessagesSelectButton_clicked"></a> +<h4>Pep8Dialog.on_includeMessagesSelectButton_clicked</h4> +<b>on_includeMessagesSelectButton_clicked</b>(<i></i>) +<p> + Private slot to select the message codes to be included via a + selection dialog. +</p><a NAME="Pep8Dialog.on_loadDefaultButton_clicked" ID="Pep8Dialog.on_loadDefaultButton_clicked"></a> +<h4>Pep8Dialog.on_loadDefaultButton_clicked</h4> +<b>on_loadDefaultButton_clicked</b>(<i></i>) +<p> + Private slot to load the default configuration values. +</p><a NAME="Pep8Dialog.on_resultList_itemActivated" ID="Pep8Dialog.on_resultList_itemActivated"></a> +<h4>Pep8Dialog.on_resultList_itemActivated</h4> +<b>on_resultList_itemActivated</b>(<i>item, column</i>) +<p> + Private slot to handle the activation of an item. +</p><dl> +<dt><i>item</i></dt> +<dd> +reference to the activated item (QTreeWidgetItem) +</dd><dt><i>column</i></dt> +<dd> +column the item was activated in (integer) +</dd> +</dl><a NAME="Pep8Dialog.on_showButton_clicked" ID="Pep8Dialog.on_showButton_clicked"></a> +<h4>Pep8Dialog.on_showButton_clicked</h4> +<b>on_showButton_clicked</b>(<i></i>) +<p> + Private slot to handle the "Show" button press. +</p><a NAME="Pep8Dialog.on_startButton_clicked" ID="Pep8Dialog.on_startButton_clicked"></a> +<h4>Pep8Dialog.on_startButton_clicked</h4> +<b>on_startButton_clicked</b>(<i></i>) +<p> + Private slot to start a PEP 8 check run. +</p><a NAME="Pep8Dialog.on_storeDefaultButton_clicked" ID="Pep8Dialog.on_storeDefaultButton_clicked"></a> +<h4>Pep8Dialog.on_storeDefaultButton_clicked</h4> +<b>on_storeDefaultButton_clicked</b>(<i></i>) +<p> + Private slot to store the current configuration values as + default values. +</p><a NAME="Pep8Dialog.prepare" ID="Pep8Dialog.prepare"></a> +<h4>Pep8Dialog.prepare</h4> +<b>prepare</b>(<i>fileList, project</i>) +<p> + Public method to prepare the dialog with a list of filenames. +</p><dl> +<dt><i>fileList</i></dt> +<dd> +list of filenames (list of strings) +</dd><dt><i>project</i></dt> +<dd> +reference to the project object (Project) +</dd> +</dl><a NAME="Pep8Dialog.start" ID="Pep8Dialog.start"></a> +<h4>Pep8Dialog.start</h4> +<b>start</b>(<i>fn, codestring = "", save = False, repeat = None</i>) +<p> + Public slot to start the PEP 8 check. +</p><dl> +<dt><i>fn</i></dt> +<dd> +file or list of files or directory to be checked + (string or list of strings) +</dd><dt><i>codestring=</i></dt> +<dd> +string containing the code to be checked (string). + If this is given, file must be a single file name. +</dd><dt><i>save=</i></dt> +<dd> +flag indicating to save the given + file/file list/directory (boolean) +</dd><dt><i>repeat=</i></dt> +<dd> +state of the repeat check box if it is not None + (None or boolean) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.Pep8.pep8.html Sun Jan 09 18:16:46 2011 +0100 @@ -0,0 +1,753 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.CheckerPlugins.Pep8.pep8</title> +<style> +body { + background: #EDECE6; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #85774A; } +h2 { color: white; background: #85774A; } +h3 { color: white; background: #9D936E; } +h4 { color: white; background: #9D936E; } + +a { color: #BA6D36; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.CheckerPlugins.Pep8.pep8</h1> + +<h3>Global Attributes</h3> +<table> +<tr><td>BENCHMARK_KEYS</td></tr><tr><td>BINARY_OPERATORS</td></tr><tr><td>DEFAULT_EXCLUDE</td></tr><tr><td>DEFAULT_IGNORE</td></tr><tr><td>DOCSTRING_REGEX</td></tr><tr><td>E225NOT_KEYWORDS</td></tr><tr><td>ERRORCODE_REGEX</td></tr><tr><td>EXTRANEOUS_WHITESPACE_REGEX</td></tr><tr><td>INDENT_REGEX</td></tr><tr><td>MAX_LINE_LENGTH</td></tr><tr><td>OPERATORS</td></tr><tr><td>RAISE_COMMA_REGEX</td></tr><tr><td>SELFTEST_REGEX</td></tr><tr><td>SKIP_TOKENS</td></tr><tr><td>UNARY_OPERATORS</td></tr><tr><td>WHITESPACE</td></tr><tr><td>WHITESPACE_AROUND_NAMED_PARAMETER_REGEX</td></tr><tr><td>WHITESPACE_AROUND_OPERATOR_REGEX</td></tr><tr><td>__version__</td></tr><tr><td>args</td></tr><tr><td>options</td></tr><tr><td>pep8_messages</td></tr><tr><td>pep8_messages_sample_args</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#Checker">Checker</a></td> +<td>Load a Python source file, tokenize it, check coding style.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr> +<td><a href="#_main">_main</a></td> +<td>Parse options and run checks on Python source.</td> +</tr><tr> +<td><a href="#blank_lines">blank_lines</a></td> +<td></td> +</tr><tr> +<td><a href="#compound_statements">compound_statements</a></td> +<td></td> +</tr><tr> +<td><a href="#excluded">excluded</a></td> +<td>Check if options.exclude contains a pattern that matches filename.</td> +</tr><tr> +<td><a href="#expand_indent">expand_indent</a></td> +<td>Return the amount of indentation.</td> +</tr><tr> +<td><a href="#extraneous_whitespace">extraneous_whitespace</a></td> +<td>Avoid extraneous whitespace in the following situations:</td> +</tr><tr> +<td><a href="#filename_match">filename_match</a></td> +<td>Check if options.filename contains a pattern that matches filename.</td> +</tr><tr> +<td><a href="#find_checks">find_checks</a></td> +<td>Find all globally visible functions where the first argument name starts with argument_name.</td> +</tr><tr> +<td><a href="#getMessage">getMessage</a></td> +<td>Function to get a translated and formatted message for a given code.</td> +</tr><tr> +<td><a href="#get_count">get_count</a></td> +<td>Return the total count of errors and warnings.</td> +</tr><tr> +<td><a href="#get_error_statistics">get_error_statistics</a></td> +<td>Get error statistics.</td> +</tr><tr> +<td><a href="#get_statistics">get_statistics</a></td> +<td>Get statistics for message codes that start with the prefix.</td> +</tr><tr> +<td><a href="#get_warning_statistics">get_warning_statistics</a></td> +<td>Get warning statistics.</td> +</tr><tr> +<td><a href="#ignore_code">ignore_code</a></td> +<td>Check if options.ignore contains a prefix of the error code.</td> +</tr><tr> +<td><a href="#imports_on_separate_lines">imports_on_separate_lines</a></td> +<td></td> +</tr><tr> +<td><a href="#indentation">indentation</a></td> +<td></td> +</tr><tr> +<td><a href="#input_dir">input_dir</a></td> +<td>Check all Python source files in this directory and all subdirectories.</td> +</tr><tr> +<td><a href="#input_file">input_file</a></td> +<td>Run all checks on a Python source file.</td> +</tr><tr> +<td><a href="#maximum_line_length">maximum_line_length</a></td> +<td>Limit all lines to a maximum of 79 characters.</td> +</tr><tr> +<td><a href="#message">message</a></td> +<td>Print a message.</td> +</tr><tr> +<td><a href="#missing_newline">missing_newline</a></td> +<td>JCR: The last line should have a newline.</td> +</tr><tr> +<td><a href="#missing_whitespace">missing_whitespace</a></td> +<td>JCR: Each comma, semicolon or colon should be followed by whitespace.</td> +</tr><tr> +<td><a href="#missing_whitespace_around_operator">missing_whitespace_around_operator</a></td> +<td></td> +</tr><tr> +<td><a href="#mute_string">mute_string</a></td> +<td>Replace contents with 'xxx' to prevent syntax matching.</td> +</tr><tr> +<td><a href="#print_benchmark">print_benchmark</a></td> +<td>Print benchmark numbers.</td> +</tr><tr> +<td><a href="#print_statistics">print_statistics</a></td> +<td>Print overall statistics (number of errors and warnings).</td> +</tr><tr> +<td><a href="#process_options">process_options</a></td> +<td>Process options passed either via arglist or via command line args.</td> +</tr><tr> +<td><a href="#python_3000_backticks">python_3000_backticks</a></td> +<td>Backticks are removed in Python 3000.</td> +</tr><tr> +<td><a href="#python_3000_has_key">python_3000_has_key</a></td> +<td>The {}.has_key() method will be removed in the future version of Python.</td> +</tr><tr> +<td><a href="#python_3000_not_equal">python_3000_not_equal</a></td> +<td>!= can also be written <>, but this is an obsolete usage kept for backwards compatibility only.</td> +</tr><tr> +<td><a href="#python_3000_raise_comma">python_3000_raise_comma</a></td> +<td>When raising an exception, use "raise ValueError('message')" instead of the older form "raise ValueError, 'message'".</td> +</tr><tr> +<td><a href="#readlines">readlines</a></td> +<td></td> +</tr><tr> +<td><a href="#readlines_1">readlines</a></td> +<td></td> +</tr><tr> +<td><a href="#reset_counters">reset_counters</a></td> +<td></td> +</tr><tr> +<td><a href="#run_tests">run_tests</a></td> +<td>Run all the tests from a file.</td> +</tr><tr> +<td><a href="#selftest">selftest</a></td> +<td>Test all check functions with test cases in docstrings.</td> +</tr><tr> +<td><a href="#tabs_obsolete">tabs_obsolete</a></td> +<td></td> +</tr><tr> +<td><a href="#tabs_or_spaces">tabs_or_spaces</a></td> +<td></td> +</tr><tr> +<td><a href="#trailing_blank_lines">trailing_blank_lines</a></td> +<td></td> +</tr><tr> +<td><a href="#trailing_whitespace">trailing_whitespace</a></td> +<td></td> +</tr><tr> +<td><a href="#whitespace_around_comma">whitespace_around_comma</a></td> +<td>Avoid extraneous whitespace in the following situations:</td> +</tr><tr> +<td><a href="#whitespace_around_named_parameter_equals">whitespace_around_named_parameter_equals</a></td> +<td>Don't use spaces around the '=' sign when used to indicate a keyword argument or a default parameter value.</td> +</tr><tr> +<td><a href="#whitespace_around_operator">whitespace_around_operator</a></td> +<td>Avoid extraneous whitespace in the following situations:</td> +</tr><tr> +<td><a href="#whitespace_before_inline_comment">whitespace_before_inline_comment</a></td> +<td>Separate inline comments by at least two spaces.</td> +</tr><tr> +<td><a href="#whitespace_before_parameters">whitespace_before_parameters</a></td> +<td>Avoid extraneous whitespace in the following situations:</td> +</tr> +</table> +<hr /><hr /> +<a NAME="Checker" ID="Checker"></a> +<h2>Checker</h2> +<p> + Load a Python source file, tokenize it, check coding style. +</p> +<h3>Derived from</h3> +object +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#Checker.__init__">Checker</a></td> +<td></td> +</tr><tr> +<td><a href="#Checker.build_tokens_line">build_tokens_line</a></td> +<td>Build a logical line from tokens.</td> +</tr><tr> +<td><a href="#Checker.check_all">check_all</a></td> +<td>Run all checks on the input file.</td> +</tr><tr> +<td><a href="#Checker.check_logical">check_logical</a></td> +<td>Build a line from tokens and run all logical checks on it.</td> +</tr><tr> +<td><a href="#Checker.check_physical">check_physical</a></td> +<td>Run all physical checks on a raw input line.</td> +</tr><tr> +<td><a href="#Checker.readline">readline</a></td> +<td>Get the next line from the input buffer.</td> +</tr><tr> +<td><a href="#Checker.readline_check_physical">readline_check_physical</a></td> +<td>Check and return the next physical line.</td> +</tr><tr> +<td><a href="#Checker.report_error">report_error</a></td> +<td>Report an error, according to options.</td> +</tr><tr> +<td><a href="#Checker.run_check">run_check</a></td> +<td>Run a check plugin.</td> +</tr> +</table> +<a NAME="Checker.__init__" ID="Checker.__init__"></a> +<h4>Checker (Constructor)</h4> +<b>Checker</b>(<i>filename, lines=None</i>) +<a NAME="Checker.build_tokens_line" ID="Checker.build_tokens_line"></a> +<h4>Checker.build_tokens_line</h4> +<b>build_tokens_line</b>(<i></i>) +<p> + Build a logical line from tokens. +</p><a NAME="Checker.check_all" ID="Checker.check_all"></a> +<h4>Checker.check_all</h4> +<b>check_all</b>(<i>expected=None, line_offset=0</i>) +<p> + Run all checks on the input file. +</p><a NAME="Checker.check_logical" ID="Checker.check_logical"></a> +<h4>Checker.check_logical</h4> +<b>check_logical</b>(<i></i>) +<p> + Build a line from tokens and run all logical checks on it. +</p><a NAME="Checker.check_physical" ID="Checker.check_physical"></a> +<h4>Checker.check_physical</h4> +<b>check_physical</b>(<i>line</i>) +<p> + Run all physical checks on a raw input line. +</p><a NAME="Checker.readline" ID="Checker.readline"></a> +<h4>Checker.readline</h4> +<b>readline</b>(<i></i>) +<p> + Get the next line from the input buffer. +</p><a NAME="Checker.readline_check_physical" ID="Checker.readline_check_physical"></a> +<h4>Checker.readline_check_physical</h4> +<b>readline_check_physical</b>(<i></i>) +<p> + Check and return the next physical line. This method can be + used to feed tokenize.generate_tokens. +</p><a NAME="Checker.report_error" ID="Checker.report_error"></a> +<h4>Checker.report_error</h4> +<b>report_error</b>(<i>line_number, offset, text, check</i>) +<p> + Report an error, according to options. +</p><a NAME="Checker.run_check" ID="Checker.run_check"></a> +<h4>Checker.run_check</h4> +<b>run_check</b>(<i>check, argument_names</i>) +<p> + Run a check plugin. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="_main" ID="_main"></a> +<h2>_main</h2> +<b>_main</b>(<i></i>) +<p> + Parse options and run checks on Python source. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="blank_lines" ID="blank_lines"></a> +<h2>blank_lines</h2> +<b>blank_lines</b>(<i>logical_line, blank_lines, indent_level, line_number, previous_logical, previous_indent_level, blank_lines_before_comment</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="compound_statements" ID="compound_statements"></a> +<h2>compound_statements</h2> +<b>compound_statements</b>(<i>logical_line</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="excluded" ID="excluded"></a> +<h2>excluded</h2> +<b>excluded</b>(<i>filename</i>) +<p> + Check if options.exclude contains a pattern that matches filename. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="expand_indent" ID="expand_indent"></a> +<h2>expand_indent</h2> +<b>expand_indent</b>(<i>line</i>) +<p> + Return the amount of indentation. + Tabs are expanded to the next multiple of 8. +</p><p> + >>> expand_indent(' ') + 4 + >>> expand_indent('\\t') + 8 + >>> expand_indent(' \\t') + 8 + >>> expand_indent(' \\t') + 8 + >>> expand_indent(' \\t') + 16 +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="extraneous_whitespace" ID="extraneous_whitespace"></a> +<h2>extraneous_whitespace</h2> +<b>extraneous_whitespace</b>(<i>logical_line</i>) +<p> + Avoid extraneous whitespace in the following situations: +</p><p> + - Immediately inside parentheses, brackets or braces. +</p><p> + - Immediately before a comma, semicolon, or colon. +</p><p> + Okay: spam(ham[1], {eggs: 2}) + E201: spam( ham[1], {eggs: 2}) + E201: spam(ham[ 1], {eggs: 2}) + E201: spam(ham[1], { eggs: 2}) + E202: spam(ham[1], {eggs: 2} ) + E202: spam(ham[1 ], {eggs: 2}) + E202: spam(ham[1], {eggs: 2 }) +</p><p> + E203: if x == 4: print x, y; x, y = y , x + E203: if x == 4: print x, y ; x, y = y, x + E203: if x == 4 : print x, y; x, y = y, x +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="filename_match" ID="filename_match"></a> +<h2>filename_match</h2> +<b>filename_match</b>(<i>filename</i>) +<p> + Check if options.filename contains a pattern that matches filename. + If options.filename is unspecified, this always returns True. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="find_checks" ID="find_checks"></a> +<h2>find_checks</h2> +<b>find_checks</b>(<i>argument_name</i>) +<p> + Find all globally visible functions where the first argument name + starts with argument_name. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="getMessage" ID="getMessage"></a> +<h2>getMessage</h2> +<b>getMessage</b>(<i>code, *args</i>) +<p> + Function to get a translated and formatted message for a given code. +</p><dl> +<dt><i>code</i></dt> +<dd> +message code (string) +</dd><dt><i>args</i></dt> +<dd> +arguments for a formatted message (list) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +translated and formatted message (string) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="get_count" ID="get_count"></a> +<h2>get_count</h2> +<b>get_count</b>(<i>prefix=''</i>) +<p> +Return the total count of errors and warnings. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="get_error_statistics" ID="get_error_statistics"></a> +<h2>get_error_statistics</h2> +<b>get_error_statistics</b>(<i></i>) +<p> +Get error statistics. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="get_statistics" ID="get_statistics"></a> +<h2>get_statistics</h2> +<b>get_statistics</b>(<i>prefix=''</i>) +<p> + Get statistics for message codes that start with the prefix. +</p><p> + prefix='' matches all errors and warnings + prefix='E' matches all errors + prefix='W' matches all warnings + prefix='E4' matches all errors that have to do with imports +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="get_warning_statistics" ID="get_warning_statistics"></a> +<h2>get_warning_statistics</h2> +<b>get_warning_statistics</b>(<i></i>) +<p> +Get warning statistics. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="ignore_code" ID="ignore_code"></a> +<h2>ignore_code</h2> +<b>ignore_code</b>(<i>code</i>) +<p> + Check if options.ignore contains a prefix of the error code. + If options.select contains a prefix of the error code, do not ignore it. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="imports_on_separate_lines" ID="imports_on_separate_lines"></a> +<h2>imports_on_separate_lines</h2> +<b>imports_on_separate_lines</b>(<i>logical_line</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="indentation" ID="indentation"></a> +<h2>indentation</h2> +<b>indentation</b>(<i>logical_line, previous_logical, indent_char, indent_level, previous_indent_level</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="input_dir" ID="input_dir"></a> +<h2>input_dir</h2> +<b>input_dir</b>(<i>dirname, runner=None</i>) +<p> + Check all Python source files in this directory and all subdirectories. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="input_file" ID="input_file"></a> +<h2>input_file</h2> +<b>input_file</b>(<i>filename</i>) +<p> + Run all checks on a Python source file. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="maximum_line_length" ID="maximum_line_length"></a> +<h2>maximum_line_length</h2> +<b>maximum_line_length</b>(<i>physical_line</i>) +<p> + Limit all lines to a maximum of 79 characters. +</p><p> + There are still many devices around that are limited to 80 character + lines; plus, limiting windows to 80 characters makes it possible to have + several windows side-by-side. The default wrapping on such devices looks + ugly. Therefore, please limit all lines to a maximum of 79 characters. + For flowing long blocks of text (docstrings or comments), limiting the + length to 72 characters is recommended. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="message" ID="message"></a> +<h2>message</h2> +<b>message</b>(<i>text</i>) +<p> +Print a message. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="missing_newline" ID="missing_newline"></a> +<h2>missing_newline</h2> +<b>missing_newline</b>(<i>physical_line</i>) +<p> + JCR: The last line should have a newline. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="missing_whitespace" ID="missing_whitespace"></a> +<h2>missing_whitespace</h2> +<b>missing_whitespace</b>(<i>logical_line</i>) +<p> + JCR: Each comma, semicolon or colon should be followed by whitespace. +</p><p> + Okay: [a, b] + Okay: (3,) + Okay: a[1:4] + Okay: a[:4] + Okay: a[1:] + Okay: a[1:4:2] + E231: ['a','b'] + E231: foo(bar,baz) +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="missing_whitespace_around_operator" ID="missing_whitespace_around_operator"></a> +<h2>missing_whitespace_around_operator</h2> +<b>missing_whitespace_around_operator</b>(<i>logical_line, tokens</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="mute_string" ID="mute_string"></a> +<h2>mute_string</h2> +<b>mute_string</b>(<i>text</i>) +<p> + Replace contents with 'xxx' to prevent syntax matching. +</p><p> + >>> mute_string('"abc"') + '"xxx"' + >>> mute_string("'''abc'''") + "'''xxx'''" + >>> mute_string("r'abc'") + "r'xxx'" +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="print_benchmark" ID="print_benchmark"></a> +<h2>print_benchmark</h2> +<b>print_benchmark</b>(<i>elapsed</i>) +<p> + Print benchmark numbers. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="print_statistics" ID="print_statistics"></a> +<h2>print_statistics</h2> +<b>print_statistics</b>(<i>prefix=''</i>) +<p> +Print overall statistics (number of errors and warnings). +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="process_options" ID="process_options"></a> +<h2>process_options</h2> +<b>process_options</b>(<i>arglist=None</i>) +<p> + Process options passed either via arglist or via command line args. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="python_3000_backticks" ID="python_3000_backticks"></a> +<h2>python_3000_backticks</h2> +<b>python_3000_backticks</b>(<i>logical_line</i>) +<p> + Backticks are removed in Python 3000. + Use repr() instead. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="python_3000_has_key" ID="python_3000_has_key"></a> +<h2>python_3000_has_key</h2> +<b>python_3000_has_key</b>(<i>logical_line</i>) +<p> + The {}.has_key() method will be removed in the future version of + Python. Use the 'in' operation instead, like: + d = {"a": 1, "b": 2} + if "b" in d: + print d["b"] +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="python_3000_not_equal" ID="python_3000_not_equal"></a> +<h2>python_3000_not_equal</h2> +<b>python_3000_not_equal</b>(<i>logical_line</i>) +<p> + != can also be written <>, but this is an obsolete usage kept for + backwards compatibility only. New code should always use !=. + The older syntax is removed in Python 3000. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="python_3000_raise_comma" ID="python_3000_raise_comma"></a> +<h2>python_3000_raise_comma</h2> +<b>python_3000_raise_comma</b>(<i>logical_line</i>) +<p> + When raising an exception, use "raise ValueError('message')" + instead of the older form "raise ValueError, 'message'". +</p><p> + The paren-using form is preferred because when the exception arguments + are long or include string formatting, you don't need to use line + continuation characters thanks to the containing parentheses. The older + form will be removed in Python 3000. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="readlines" ID="readlines"></a> +<h2>readlines</h2> +<b>readlines</b>(<i>filename</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="readlines_1" ID="readlines_1"></a> +<h2>readlines</h2> +<b>readlines</b>(<i>filename</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="reset_counters" ID="reset_counters"></a> +<h2>reset_counters</h2> +<b>reset_counters</b>(<i></i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="run_tests" ID="run_tests"></a> +<h2>run_tests</h2> +<b>run_tests</b>(<i>filename</i>) +<p> + Run all the tests from a file. +</p><p> + A test file can provide many tests. Each test starts with a declaration. + This declaration is a single line starting with '#:'. + It declares codes of expected failures, separated by spaces or 'Okay' + if no failure is expected. + If the file does not contain such declaration, it should pass all tests. + If the declaration is empty, following lines are not checked, until next + declaration. +</p><p> + Examples: +</p><p> + * Only E224 and W701 are expected: #: E224 W701 + * Following example is conform: #: Okay + * Don't check these lines: #: +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="selftest" ID="selftest"></a> +<h2>selftest</h2> +<b>selftest</b>(<i></i>) +<p> + Test all check functions with test cases in docstrings. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="tabs_obsolete" ID="tabs_obsolete"></a> +<h2>tabs_obsolete</h2> +<b>tabs_obsolete</b>(<i>physical_line</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="tabs_or_spaces" ID="tabs_or_spaces"></a> +<h2>tabs_or_spaces</h2> +<b>tabs_or_spaces</b>(<i>physical_line, indent_char</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="trailing_blank_lines" ID="trailing_blank_lines"></a> +<h2>trailing_blank_lines</h2> +<b>trailing_blank_lines</b>(<i>physical_line, lines, line_number</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="trailing_whitespace" ID="trailing_whitespace"></a> +<h2>trailing_whitespace</h2> +<b>trailing_whitespace</b>(<i>physical_line</i>) + +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="whitespace_around_comma" ID="whitespace_around_comma"></a> +<h2>whitespace_around_comma</h2> +<b>whitespace_around_comma</b>(<i>logical_line</i>) +<p> + Avoid extraneous whitespace in the following situations: +</p><p> + - More than one space around an assignment (or other) operator to + align it with another. +</p><p> + JCR: This should also be applied around comma etc. + Note: these checks are disabled by default +</p><p> + Okay: a = (1, 2) + E241: a = (1, 2) + E242: a = (1,\t2) +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="whitespace_around_named_parameter_equals" ID="whitespace_around_named_parameter_equals"></a> +<h2>whitespace_around_named_parameter_equals</h2> +<b>whitespace_around_named_parameter_equals</b>(<i>logical_line</i>) +<p> + Don't use spaces around the '=' sign when used to indicate a + keyword argument or a default parameter value. +</p><p> + Okay: def complex(real, imag=0.0): + Okay: return magic(r=real, i=imag) + Okay: boolean(a == b) + Okay: boolean(a != b) + Okay: boolean(a <= b) + Okay: boolean(a >= b) +</p><p> + E251: def complex(real, imag = 0.0): + E251: return magic(r = real, i = imag) +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="whitespace_around_operator" ID="whitespace_around_operator"></a> +<h2>whitespace_around_operator</h2> +<b>whitespace_around_operator</b>(<i>logical_line</i>) +<p> + Avoid extraneous whitespace in the following situations: +</p><p> + - More than one space around an assignment (or other) operator to + align it with another. +</p><p> + Okay: a = 12 + 3 + E221: a = 4 + 5 + E222: a = 4 + 5 + E223: a = 4\t+ 5 + E224: a = 4 +\t5 +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="whitespace_before_inline_comment" ID="whitespace_before_inline_comment"></a> +<h2>whitespace_before_inline_comment</h2> +<b>whitespace_before_inline_comment</b>(<i>logical_line, tokens</i>) +<p> + Separate inline comments by at least two spaces. +</p><p> + An inline comment is a comment on the same line as a statement. Inline + comments should be separated by at least two spaces from the statement. + They should start with a # and a single space. +</p><p> + Okay: x = x + 1 # Increment x + Okay: x = x + 1 # Increment x + E261: x = x + 1 # Increment x + E262: x = x + 1 #Increment x + E262: x = x + 1 # Increment x +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="whitespace_before_parameters" ID="whitespace_before_parameters"></a> +<h2>whitespace_before_parameters</h2> +<b>whitespace_before_parameters</b>(<i>logical_line, tokens</i>) +<p> + Avoid extraneous whitespace in the following situations: +</p><p> + - Immediately before the open parenthesis that starts the argument + list of a function call. +</p><p> + - Immediately before the open parenthesis that starts an indexing or + slicing. +</p><p> + Okay: spam(1) + E211: spam (1) +</p><p> + Okay: dict['key'] = list[index] + E211: dict ['key'] = list[index] + E211: dict['key'] = list [index] +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- a/Documentation/Source/eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html Sun Jan 09 14:25:16 2011 +0100 +++ b/Documentation/Source/eric5.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html Sun Jan 09 18:16:46 2011 +0100 @@ -79,7 +79,7 @@ <td>Private slot to handle the "Show" button press.</td> </tr><tr> <td><a href="#SyntaxCheckerDialog.on_startButton_clicked">on_startButton_clicked</a></td> -<td>Private slot to start a code metrics run.</td> +<td>Private slot to start a syntax check run.</td> </tr><tr> <td><a href="#SyntaxCheckerDialog.prepare">prepare</a></td> <td>Public method to prepare the dialog with a list of filenames.</td> @@ -129,7 +129,8 @@ <h4>SyntaxCheckerDialog.__finish</h4> <b>__finish</b>(<i></i>) <p> - Private slot called when the syntax check finished or the user pressed the button. + Private slot called when the syntax check finished or the user + pressed the button. </p><a NAME="SyntaxCheckerDialog.__resort" ID="SyntaxCheckerDialog.__resort"></a> <h4>SyntaxCheckerDialog.__resort</h4> <b>__resort</b>(<i></i>) @@ -167,7 +168,7 @@ <h4>SyntaxCheckerDialog.on_startButton_clicked</h4> <b>on_startButton_clicked</b>(<i></i>) <p> - Private slot to start a code metrics run. + Private slot to start a syntax check run. </p><a NAME="SyntaxCheckerDialog.prepare" ID="SyntaxCheckerDialog.prepare"></a> <h4>SyntaxCheckerDialog.prepare</h4> <b>prepare</b>(<i>fileList, project</i>)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.PluginPep8Checker.html Sun Jan 09 18:16:46 2011 +0100 @@ -0,0 +1,209 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.PluginPep8Checker</title> +<style> +body { + background: #EDECE6; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #85774A; } +h2 { color: white; background: #85774A; } +h3 { color: white; background: #9D936E; } +h4 { color: white; background: #9D936E; } + +a { color: #BA6D36; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.PluginPep8Checker</h1> +<p> +Module implementing the PEP 8 Checker plugin. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#Pep8CheckerPlugin">Pep8CheckerPlugin</a></td> +<td>Class implementing the PEP 8 Checker plugin.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="Pep8CheckerPlugin" ID="Pep8CheckerPlugin"></a> +<h2>Pep8CheckerPlugin</h2> +<p> + Class implementing the PEP 8 Checker plugin. +</p> +<h3>Derived from</h3> +QObject +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#Pep8CheckerPlugin.__init__">Pep8CheckerPlugin</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#Pep8CheckerPlugin.__editorClosed">__editorClosed</a></td> +<td>Private slot called, when an editor was closed.</td> +</tr><tr> +<td><a href="#Pep8CheckerPlugin.__editorOpened">__editorOpened</a></td> +<td>Private slot called, when a new editor was opened.</td> +</tr><tr> +<td><a href="#Pep8CheckerPlugin.__editorPep8Check">__editorPep8Check</a></td> +<td>Private slot to handle the PEP 8 check context menu action of the editors.</td> +</tr><tr> +<td><a href="#Pep8CheckerPlugin.__editorShowMenu">__editorShowMenu</a></td> +<td>Private slot called, when the the editor context menu or a submenu is about to be shown.</td> +</tr><tr> +<td><a href="#Pep8CheckerPlugin.__initialize">__initialize</a></td> +<td>Private slot to (re)initialize the plugin.</td> +</tr><tr> +<td><a href="#Pep8CheckerPlugin.__projectBrowserPep8Check">__projectBrowserPep8Check</a></td> +<td>Private method to handle the PEP 8 check context menu action of the project sources browser.</td> +</tr><tr> +<td><a href="#Pep8CheckerPlugin.__projectBrowserShowMenu">__projectBrowserShowMenu</a></td> +<td>Private slot called, when the the project browser menu or a submenu is about to be shown.</td> +</tr><tr> +<td><a href="#Pep8CheckerPlugin.__projectPep8Check">__projectPep8Check</a></td> +<td>Public slot used to check the project files for PEP 8 compliance.</td> +</tr><tr> +<td><a href="#Pep8CheckerPlugin.__projectShowMenu">__projectShowMenu</a></td> +<td>Private slot called, when the the project menu or a submenu is about to be shown.</td> +</tr><tr> +<td><a href="#Pep8CheckerPlugin.activate">activate</a></td> +<td>Public method to activate this plugin.</td> +</tr><tr> +<td><a href="#Pep8CheckerPlugin.deactivate">deactivate</a></td> +<td>Public method to deactivate this plugin.</td> +</tr> +</table> +<a NAME="Pep8CheckerPlugin.__init__" ID="Pep8CheckerPlugin.__init__"></a> +<h4>Pep8CheckerPlugin (Constructor)</h4> +<b>Pep8CheckerPlugin</b>(<i>ui</i>) +<p> + Constructor +</p><dl> +<dt><i>ui</i></dt> +<dd> +reference to the user interface object (UI.UserInterface) +</dd> +</dl><a NAME="Pep8CheckerPlugin.__editorClosed" ID="Pep8CheckerPlugin.__editorClosed"></a> +<h4>Pep8CheckerPlugin.__editorClosed</h4> +<b>__editorClosed</b>(<i>editor</i>) +<p> + Private slot called, when an editor was closed. +</p><dl> +<dt><i>editor</i></dt> +<dd> +reference to the editor (QScintilla.Editor) +</dd> +</dl><a NAME="Pep8CheckerPlugin.__editorOpened" ID="Pep8CheckerPlugin.__editorOpened"></a> +<h4>Pep8CheckerPlugin.__editorOpened</h4> +<b>__editorOpened</b>(<i>editor</i>) +<p> + Private slot called, when a new editor was opened. +</p><dl> +<dt><i>editor</i></dt> +<dd> +reference to the new editor (QScintilla.Editor) +</dd> +</dl><a NAME="Pep8CheckerPlugin.__editorPep8Check" ID="Pep8CheckerPlugin.__editorPep8Check"></a> +<h4>Pep8CheckerPlugin.__editorPep8Check</h4> +<b>__editorPep8Check</b>(<i></i>) +<p> + Private slot to handle the PEP 8 check context menu action + of the editors. +</p><a NAME="Pep8CheckerPlugin.__editorShowMenu" ID="Pep8CheckerPlugin.__editorShowMenu"></a> +<h4>Pep8CheckerPlugin.__editorShowMenu</h4> +<b>__editorShowMenu</b>(<i>menuName, menu, editor</i>) +<p> + Private slot called, when the the editor context menu or a submenu is + about to be shown. +</p><dl> +<dt><i>menuName</i></dt> +<dd> +name of the menu to be shown (string) +</dd><dt><i>menu</i></dt> +<dd> +reference to the menu (QMenu) +</dd><dt><i>editor</i></dt> +<dd> +reference to the editor +</dd> +</dl><a NAME="Pep8CheckerPlugin.__initialize" ID="Pep8CheckerPlugin.__initialize"></a> +<h4>Pep8CheckerPlugin.__initialize</h4> +<b>__initialize</b>(<i></i>) +<p> + Private slot to (re)initialize the plugin. +</p><a NAME="Pep8CheckerPlugin.__projectBrowserPep8Check" ID="Pep8CheckerPlugin.__projectBrowserPep8Check"></a> +<h4>Pep8CheckerPlugin.__projectBrowserPep8Check</h4> +<b>__projectBrowserPep8Check</b>(<i></i>) +<p> + Private method to handle the PEP 8 check context menu action of + the project sources browser. +</p><a NAME="Pep8CheckerPlugin.__projectBrowserShowMenu" ID="Pep8CheckerPlugin.__projectBrowserShowMenu"></a> +<h4>Pep8CheckerPlugin.__projectBrowserShowMenu</h4> +<b>__projectBrowserShowMenu</b>(<i>menuName, menu</i>) +<p> + Private slot called, when the the project browser menu or a submenu is + about to be shown. +</p><dl> +<dt><i>menuName</i></dt> +<dd> +name of the menu to be shown (string) +</dd><dt><i>menu</i></dt> +<dd> +reference to the menu (QMenu) +</dd> +</dl><a NAME="Pep8CheckerPlugin.__projectPep8Check" ID="Pep8CheckerPlugin.__projectPep8Check"></a> +<h4>Pep8CheckerPlugin.__projectPep8Check</h4> +<b>__projectPep8Check</b>(<i></i>) +<p> + Public slot used to check the project files for PEP 8 compliance. +</p><a NAME="Pep8CheckerPlugin.__projectShowMenu" ID="Pep8CheckerPlugin.__projectShowMenu"></a> +<h4>Pep8CheckerPlugin.__projectShowMenu</h4> +<b>__projectShowMenu</b>(<i>menuName, menu</i>) +<p> + Private slot called, when the the project menu or a submenu is + about to be shown. +</p><dl> +<dt><i>menuName</i></dt> +<dd> +name of the menu to be shown (string) +</dd><dt><i>menu</i></dt> +<dd> +reference to the menu (QMenu) +</dd> +</dl><a NAME="Pep8CheckerPlugin.activate" ID="Pep8CheckerPlugin.activate"></a> +<h4>Pep8CheckerPlugin.activate</h4> +<b>activate</b>(<i></i>) +<p> + Public method to activate this plugin. +</p><dl> +<dt>Returns:</dt> +<dd> +tuple of None and activation status (boolean) +</dd> +</dl><a NAME="Pep8CheckerPlugin.deactivate" ID="Pep8CheckerPlugin.deactivate"></a> +<h4>Pep8CheckerPlugin.deactivate</h4> +<b>deactivate</b>(<i></i>) +<p> + Public method to deactivate this plugin. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- a/Documentation/Source/eric5.Plugins.PluginSyntaxChecker.html Sun Jan 09 14:25:16 2011 +0100 +++ b/Documentation/Source/eric5.Plugins.PluginSyntaxChecker.html Sun Jan 09 18:16:46 2011 +0100 @@ -22,7 +22,7 @@ <body><a NAME="top" ID="top"></a> <h1>eric5.Plugins.PluginSyntaxChecker</h1> <p> -Module implementing the Tabnanny plugin. +Module implementing the Syntax Checker plugin. </p> <h3>Global Attributes</h3> <table> @@ -82,7 +82,7 @@ <td>Private slot called, when the the project menu or a submenu is about to be shown.</td> </tr><tr> <td><a href="#SyntaxCheckerPlugin.__projectSyntaxCheck">__projectSyntaxCheck</a></td> -<td>Public slot used to check the project files for bad indentations.</td> +<td>Public slot used to check the project files for syntax errors.</td> </tr><tr> <td><a href="#SyntaxCheckerPlugin.activate">activate</a></td> <td>Public method to activate this plugin.</td> @@ -186,7 +186,7 @@ <h4>SyntaxCheckerPlugin.__projectSyntaxCheck</h4> <b>__projectSyntaxCheck</b>(<i></i>) <p> - Public slot used to check the project files for bad indentations. + Public slot used to check the project files for syntax errors. </p><a NAME="SyntaxCheckerPlugin.activate" ID="SyntaxCheckerPlugin.activate"></a> <h4>SyntaxCheckerPlugin.activate</h4> <b>activate</b>(<i></i>)
--- a/Documentation/Source/eric5.QScintilla.Editor.html Sun Jan 09 14:25:16 2011 +0100 +++ b/Documentation/Source/eric5.QScintilla.Editor.html Sun Jan 09 18:16:46 2011 +0100 @@ -2602,13 +2602,16 @@ </dd> </dl><a NAME="Editor.gotoLine" ID="Editor.gotoLine"></a> <h4>Editor.gotoLine</h4> -<b>gotoLine</b>(<i>line</i>) +<b>gotoLine</b>(<i>line, pos = 1</i>) <p> Public slot to jump to the beginning of a line. </p><dl> <dt><i>line</i></dt> <dd> line number to go to (integer) +</dd><dt><i>pos=</i></dt> +<dd> +position in line to go to (integer) </dd> </dl><a NAME="Editor.gotoSyntaxError" ID="Editor.gotoSyntaxError"></a> <h4>Editor.gotoSyntaxError</h4> @@ -3211,11 +3214,13 @@ <b>toggleFlakesWarning</b>(<i>line, warning, msg = ""</i>) <p> Public method to toggle a flakes warning indicator. +</p><p> + Note: This method is used to set PEP 8 warnings as well. </p><dl> <dt><i>line</i></dt> <dd> line number of the flakes warning -</dd><dt><i>erwarningror</i></dt> +</dd><dt><i>warning</i></dt> <dd> flag indicating if the warning marker should be set or deleted (boolean)
--- a/Documentation/Source/eric5.ViewManager.ViewManager.html Sun Jan 09 14:25:16 2011 +0100 +++ b/Documentation/Source/eric5.ViewManager.ViewManager.html Sun Jan 09 18:16:46 2011 +0100 @@ -2242,7 +2242,7 @@ </dd> </dl><a NAME="ViewManager.openSourceFile" ID="ViewManager.openSourceFile"></a> <h4>ViewManager.openSourceFile</h4> -<b>openSourceFile</b>(<i>fn, lineno = None, filetype = "", selStart = 0, selEnd = 0</i>) +<b>openSourceFile</b>(<i>fn, lineno = None, filetype = "", selStart = 0, selEnd = 0, pos = 0</i>) <p> Public slot to display a file in an editor. </p><dl>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/index-eric5.Plugins.CheckerPlugins.Pep8.html Sun Jan 09 18:16:46 2011 +0100 @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.CheckerPlugins.Pep8</title> +<style> +body { + background: #EDECE6; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #85774A; } +h2 { color: white; background: #85774A; } +h3 { color: white; background: #9D936E; } +h4 { color: white; background: #9D936E; } + +a { color: #BA6D36; } + +</style> +</head> +<body> +<h1>eric5.Plugins.CheckerPlugins.Pep8</h1> +<p> +Package containing the PEP 8 plugin. +</p> + + +<h3>Modules</h3> +<table> +<tr> +<td><a href="eric5.Plugins.CheckerPlugins.Pep8.Pep8Checker.html">Pep8Checker</a></td> +<td>Module implementing the PEP 8 checker.</td> +</tr><tr> +<td><a href="eric5.Plugins.CheckerPlugins.Pep8.Pep8CodeSelectionDialog.html">Pep8CodeSelectionDialog</a></td> +<td>Module implementing a dialog to select PEP 8 message codes.</td> +</tr><tr> +<td><a href="eric5.Plugins.CheckerPlugins.Pep8.Pep8Dialog.html">Pep8Dialog</a></td> +<td>Module implementing a dialog to show the results of the PEP 8 check.</td> +</tr><tr> +<td><a href="eric5.Plugins.CheckerPlugins.Pep8.pep8.html">pep8</a></td> +<td></td> +</tr> +</table> +</body></html> \ No newline at end of file
--- a/Documentation/Source/index-eric5.Plugins.CheckerPlugins.html Sun Jan 09 14:25:16 2011 +0100 +++ b/Documentation/Source/index-eric5.Plugins.CheckerPlugins.html Sun Jan 09 18:16:46 2011 +0100 @@ -28,6 +28,9 @@ <h3>Packages</h3> <table> <tr> +<td><a href="index-eric5.Plugins.CheckerPlugins.Pep8.html">Pep8</a></td> +<td>Package containing the PEP 8 plugin.</td> +</tr><tr> <td><a href="index-eric5.Plugins.CheckerPlugins.SyntaxChecker.html">SyntaxChecker</a></td> <td>Package containing the Syntax Checker plugin.</td> </tr><tr>
--- a/Documentation/Source/index-eric5.Plugins.html Sun Jan 09 14:25:16 2011 +0100 +++ b/Documentation/Source/index-eric5.Plugins.html Sun Jan 09 18:16:46 2011 +0100 @@ -60,8 +60,11 @@ <td><a href="eric5.Plugins.PluginEricdoc.html">PluginEricdoc</a></td> <td>Module implementing the Ericdoc plugin.</td> </tr><tr> +<td><a href="eric5.Plugins.PluginPep8Checker.html">PluginPep8Checker</a></td> +<td>Module implementing the PEP 8 Checker plugin.</td> +</tr><tr> <td><a href="eric5.Plugins.PluginSyntaxChecker.html">PluginSyntaxChecker</a></td> -<td>Module implementing the Tabnanny plugin.</td> +<td>Module implementing the Syntax Checker plugin.</td> </tr><tr> <td><a href="eric5.Plugins.PluginTabnanny.html">PluginTabnanny</a></td> <td>Module implementing the Tabnanny plugin.</td>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/CheckerPlugins/Pep8/Pep8Checker.py Sun Jan 09 18:16:46 2011 +0100 @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2011 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the PEP 8 checker. +""" + +import optparse + +from . import pep8 + + +class Pep8Checker(pep8.Checker): + """ + Class implementing the PEP 8 checker. + """ + def __init__(self, filename, lines, repeat=False, + select="", ignore=""): + """ + Constructor + + @param filename name of the file to check (string) + @param lines source of the file (list of strings) + @keyparam repeat flag indicating to repeat message categories (boolean) + @keyparam select list of message IDs to check for + (comma separated string) + @keyparam ignore list of message IDs to ignore + (comma separated string) + """ + pep8.options = optparse.Values() + + pep8.options.verbose = 0 + + pep8.options.repeat = repeat + if select: + pep8.options.select = [s.strip() for s in select.split(',') + if s.strip()] + else: + pep8.options.select = [] + if ignore: + pep8.options.ignore = [i.strip() for i in ignore.split(',') + if i.strip()] + else: + pep8.options.ignore = [] + pep8.options.physical_checks = pep8.find_checks('physical_line') + pep8.options.logical_checks = pep8.find_checks('logical_line') + pep8.options.counters = dict.fromkeys(pep8.BENCHMARK_KEYS, 0) + pep8.options.messages = {} + + pep8.Checker.__init__(self, filename, lines) + + self.messages = [] + + def __ignore_code(self, code): + """ + Private method to check, if the message for the given code should + be ignored. + + If codes are selected and the code has a selected prefix and does not + have an ignored prefix, it is not ignored. If codes are selected and + the code does not have a selected prefix, it is ignored. If no codes + are selected, the code is ignored, if it has a prefix, that is + contained in the ignored codes. + + @param code code to be checked (string) + @return flag indicating, that the code should be ignored (boolean) + """ + if pep8.options.select: + if code.startswith(tuple(pep8.options.select)): + if code.startswith(tuple(pep8.options.ignore)): + return True + else: + return False + else: + return True + else: + if code.startswith(tuple(pep8.options.ignore)): + return True + else: + return False + + def report_error_args(self, line_number, offset, code, check, *args): + """ + Public method to collect the error messages. + + @param line_number line number of the issue (integer) + @param offset position within line of the issue (integer) + @param code message code (string) + @param check reference to the checker function (function) + @param args arguments for the message (list) + """ + if self.__ignore_code(code): + return + + text = pep8.getMessage(code, *args) + if code in pep8.options.counters: + pep8.options.counters[code] += 1 + else: + pep8.options.counters[code] = 1 + pep8.options.messages[code] = text[5:] + self.file_errors += 1 + if pep8.options.counters[code] == 1 or pep8.options.repeat: + self.messages.append( + (self.filename, self.line_offset + line_number, + offset + 1, text) + )
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.py Sun Jan 09 18:16:46 2011 +0100 @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2011 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog to select PEP 8 message codes. +""" + +from PyQt4.QtCore import QCoreApplication +from PyQt4.QtGui import QDialog, QTreeWidgetItem + +from . import pep8 + +from .Ui_Pep8CodeSelectionDialog import Ui_Pep8CodeSelectionDialog + +class Pep8CodeSelectionDialog(QDialog, Ui_Pep8CodeSelectionDialog): + """ + Class implementing a dialog to select PEP 8 message codes. + """ + def __init__(self, codes, parent = None): + """ + Constructor + + @param codes comma separated list of selected codes (string) + @param parent reference to the parent widget (QWidget) + """ + QDialog.__init__(self, parent) + self.setupUi(self) + + codeList = [code.strip() for code in codes.split(",") if code.strip()] + + for code in sorted(pep8.pep8_messages.keys(), key=lambda a: a[1:]): + if code in pep8.pep8_messages_sample_args: + message = QCoreApplication.translate("pep8", + pep8.pep8_messages[code]).format( + *pep8.pep8_messages_sample_args[code]) + else: + message = QCoreApplication.translate("pep8", + pep8.pep8_messages[code]) + itm = QTreeWidgetItem(self.codeTable, [code, message]) + if code in codeList: + itm.setSelected(True) + codeList.remove(code) + + self.__extraCodes = codeList[:] + + def getSelectedCodes(self): + """ + Public method to get a comma separated list of codes selected. + + @return comma separated list of selected codes (string) + """ + selectedCodes = [] + + for itm in self.codeTable.selectedItems(): + selectedCodes.append(itm.text(0)) + + return ", ".join(self.__extraCodes + selectedCodes)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui Sun Jan 09 18:16:46 2011 +0100 @@ -0,0 +1,116 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Pep8CodeSelectionDialog</class> + <widget class="QDialog" name="Pep8CodeSelectionDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>450</width> + <height>350</height> + </rect> + </property> + <property name="windowTitle"> + <string>PEP 8 Message Codes</string> + </property> + <property name="sizeGripEnabled"> + <bool>true</bool> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QLabel" name="label"> + <property name="text"> + <string>Select the message codes from the list:</string> + </property> + </widget> + </item> + <item> + <widget class="QTreeWidget" name="codeTable"> + <property name="toolTip"> + <string>Select the message codes from this table</string> + </property> + <property name="editTriggers"> + <set>QAbstractItemView::NoEditTriggers</set> + </property> + <property name="alternatingRowColors"> + <bool>true</bool> + </property> + <property name="selectionMode"> + <enum>QAbstractItemView::ExtendedSelection</enum> + </property> + <property name="selectionBehavior"> + <enum>QAbstractItemView::SelectRows</enum> + </property> + <property name="rootIsDecorated"> + <bool>false</bool> + </property> + <property name="allColumnsShowFocus"> + <bool>true</bool> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + <column> + <property name="text"> + <string>Code</string> + </property> + </column> + <column> + <property name="text"> + <string>Message</string> + </property> + </column> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <tabstops> + <tabstop>codeTable</tabstop> + <tabstop>buttonBox</tabstop> + </tabstops> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>Pep8CodeSelectionDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>227</x> + <y>279</y> + </hint> + <hint type="destinationlabel"> + <x>157</x> + <y>274</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>Pep8CodeSelectionDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>295</x> + <y>285</y> + </hint> + <hint type="destinationlabel"> + <x>286</x> + <y>274</y> + </hint> + </hints> + </connection> + </connections> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/CheckerPlugins/Pep8/Pep8Dialog.py Sun Jan 09 18:16:46 2011 +0100 @@ -0,0 +1,449 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2011 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog to show the results of the PEP 8 check. +""" + +import os +import fnmatch + +from PyQt4.QtCore import pyqtSlot, Qt +from PyQt4.QtGui import QDialog, QTreeWidgetItem, QAbstractButton, \ + QDialogButtonBox, QApplication, QHeaderView + +from . import pep8 + +from E5Gui.E5Application import e5App + +from .Pep8Checker import Pep8Checker +from .Pep8CodeSelectionDialog import Pep8CodeSelectionDialog + +from .Ui_Pep8Dialog import Ui_Pep8Dialog + +import UI.PixmapCache +import Preferences +import Utilities + +class Pep8Dialog(QDialog, Ui_Pep8Dialog): + """ + Class implementing a dialog to show the results of the PEP 8 check. + """ + filenameRole = Qt.UserRole + 1 + lineRole = Qt.UserRole + 2 + positionRole = Qt.UserRole + 3 + messageRole = Qt.UserRole + 4 + + settingsKey = "PEP8/" + + def __init__(self, parent = None): + """ + Constructor + + @param parent reference to the parent widget (QWidget) + """ + QDialog.__init__(self, parent) + self.setupUi(self) + + self.showButton = self.buttonBox.addButton( + self.trUtf8("Show"), QDialogButtonBox.ActionRole) + self.showButton.setToolTip( + self.trUtf8("Press to show all files containing an issue")) + self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) + + self.resultList.headerItem().setText(self.resultList.columnCount(), "") + self.resultList.header().setSortIndicator(0, Qt.AscendingOrder) + + self.noResults = True + self.cancelled = False + self.__lastFileItem = None + + self.__fileOrFileList = "" + self.__project = None + self.__forProject = False + self.__data = {} + + self.clearButton.setIcon( + UI.PixmapCache.getIcon("clearLeft.png")) + self.clearButtonExcludeMessages.setIcon( + UI.PixmapCache.getIcon("clearLeft.png")) + self.clearButtonIncludeMessages.setIcon( + UI.PixmapCache.getIcon("clearLeft.png")) + self.on_loadDefaultButton_clicked() + + def __resort(self): + """ + Private method to resort the tree. + """ + self.resultList.sortItems(self.resultList.sortColumn(), + self.resultList.header().sortIndicatorOrder() + ) + + def __createResultItem(self, file, line, pos, message): + """ + Private method to create an entry in the result list. + + @param file file name of the file (string) + @param line line number of issue (integer or string) + @param pos character position of issue (integer or string) + @param message message text (string) + """ + if self.__lastFileItem is None: + # It's a new file + self.__lastFileItem = QTreeWidgetItem(self.resultList, [file]) + self.__lastFileItem.setFirstColumnSpanned(True) + self.__lastFileItem.setExpanded(True) + self.__lastFileItem.setData(0, self.filenameRole, file) + + code, message = message.split(None, 1) + itm = QTreeWidgetItem(self.__lastFileItem, + ["{0:6}".format(line), code, message]) + if code.startswith("W"): + itm.setIcon(0, UI.PixmapCache.getIcon("warning.png")) + else: + itm.setIcon(0, UI.PixmapCache.getIcon("syntaxError.png")) + itm.setData(0, self.filenameRole, file) + itm.setData(0, self.lineRole, int(line)) + itm.setData(0, self.positionRole, int(pos)) + itm.setData(0, self.messageRole, message) + + def prepare(self, fileList, project): + """ + Public method to prepare the dialog with a list of filenames. + + @param fileList list of filenames (list of strings) + @param project reference to the project object (Project) + """ + self.__fileOrFileList = fileList[:] + self.__project = project + self.__forProject = True + + self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) + self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) + + self.__data = self.__project.getData("CHECKERSPARMS", "Pep8Checker") + if self.__data is None or "ExcludeFiles" not in self.__data: + # initialize the data structure + self.__data = { + "ExcludeFiles" : "", + "ExcludeMessages" : pep8.DEFAULT_IGNORE, + "IncludeMessages" : "", + "RepeatMessages" : False, + } + self.excludeFilesEdit.setText(self.__data["ExcludeFiles"]) + self.excludeMessagesEdit.setText(self.__data["ExcludeMessages"]) + self.includeMessagesEdit.setText(self.__data["IncludeMessages"]) + self.repeatCheckBox.setChecked(self.__data["RepeatMessages"]) + + def start(self, fn, codestring = "", save = False, repeat = None): + """ + Public slot to start the PEP 8 check. + + @param fn file or list of files or directory to be checked + (string or list of strings) + @keyparam codestring string containing the code to be checked (string). + If this is given, file must be a single file name. + @keyparam save flag indicating to save the given + file/file list/directory (boolean) + @keyparam repeat state of the repeat check box if it is not None + (None or boolean) + """ + if self.__project is None: + self.__project = e5App().getObject("Project") + + self.cancelled = False + self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True) + self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) + if repeat is not None: + self.repeatCheckBox.setChecked(repeat) + QApplication.processEvents() + + if save: + self.__fileOrFileList = fn + + if isinstance(fn, list): + files = fn[:] + elif os.path.isdir(fn): + files = [] + for ext in Preferences.getPython("Python3Extensions"): + files.extend( + Utilities.direntries(fn, 1, '*{0}'.format(ext), 0)) +## for ext in Preferences.getPython("PythonExtensions"): +## files.extend( +## Utilities.direntries(fn, 1, '*{0}'.format(ext), 0)) + else: + files = [fn] + + # filter the list depending on the filter string + if files: + filterString = self.excludeFilesEdit.text() + filterList = [f.strip() for f in filterString.split(",") + if f.strip()] + for filter in filterList: + files = \ + [f for f in files + if not fnmatch.fnmatch(f, filter.strip())] + + py3files = [f for f in files \ + if f.endswith( + tuple(Preferences.getPython("Python3Extensions")))] + py2files = [] +## py2files = [f for f in files \ +## if f.endswith( +## tuple(Preferences.getPython("PythonExtensions")))] + + if (codestring and len(py3files) == 1) or \ + (codestring and len(py2files) == 1) or \ + (not codestring and len(py3files) + len(py2files) > 0): + self.checkProgress.setMaximum(len(py3files) + len(py2files)) + QApplication.processEvents() + + # extract the configuration values + excludeMessages = self.excludeMessagesEdit.text() + includeMessages = self.includeMessagesEdit.text() + repeatMessages = self.repeatCheckBox.isChecked() + + # now go through all the files + progress = 0 + for file in py3files + py2files: + self.checkProgress.setValue(progress) + QApplication.processEvents() + self.__resort() + + if self.cancelled: + return + + self.__lastFileItem = None + + if codestring: + source = codestring.splitlines(True) + else: + try: + source = Utilities.readEncodedFile(file)[0] + # convert eols + source = Utilities.convertLineEnds(source, "\n") + source = source.splitlines(True) + except (UnicodeError, IOError) as msg: + self.noResults = False + self.__createResultItem(file, "1", "1", + self.trUtf8("Error: {0}").format(str(msg))\ + .rstrip()[1:-1]) + progress += 1 + continue + + flags = Utilities.extractFlags(source) + ext = os.path.splitext(file)[1] + if ("FileType" in flags and + flags["FileType"] in ["Python", "Python2"]) or \ + file in py2files or \ + (ext in [".py", ".pyw"] and \ + Preferences.getProject("DeterminePyFromProject") and \ + self.__project.isOpen() and \ + self.__project.isProjectFile(file) and \ + self.__project.getProjectLanguage() in ["Python", + "Python2"]): + # TODO: include PEP 8 check for python 2 + pass + else: + checker = Pep8Checker(file, source, + repeat = repeatMessages, + select = includeMessages, + ignore = excludeMessages) + checker.check_all() + checker.messages.sort(key = lambda a: a[1]) + for message in checker.messages: + fname, lineno, position, text = message + if not source[lineno - 1].strip()\ + .endswith("__IGNORE_WARNING__"): + self.noResults = False + self.__createResultItem( + fname, lineno, position, text) + progress += 1 + self.checkProgress.setValue(progress) + QApplication.processEvents() + self.__resort() + else: + self.checkProgress.setMaximum(1) + self.checkProgress.setValue(1) + self.__finish() + + def __finish(self): + """ + Private slot called when the PEP 8 check finished or the user + pressed the cancel 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: + QTreeWidgetItem(self.resultList, [self.trUtf8('No issues found.')]) + QApplication.processEvents() + self.showButton.setEnabled(False) + self.__clearErrors() + else: + self.showButton.setEnabled(True) + self.resultList.header().resizeSections(QHeaderView.ResizeToContents) + self.resultList.header().setStretchLastSection(True) + + @pyqtSlot() + def on_startButton_clicked(self): + """ + Private slot to start a PEP 8 check run. + """ + if self.__forProject: + data = { + "ExcludeFiles" : self.excludeFilesEdit.text(), + "ExcludeMessages" : self.excludeMessagesEdit.text(), + "IncludeMessages" : self.includeMessagesEdit.text(), + "RepeatMessages" : self.repeatCheckBox.isChecked(), + } + if data != self.__data: + self.__data = data + self.__project.setData("CHECKERSPARMS", "Pep8Checker", + self.__data) + + self.resultList.clear() + self.noResults = True + self.cancelled = False + self.start(self.__fileOrFileList) + + @pyqtSlot() + def on_excludeMessagesSelectButton_clicked(self): + """ + Private slot to select the message codes to be excluded via a + selection dialog. + """ + dlg = Pep8CodeSelectionDialog(self.excludeMessagesEdit.text(), self) + if dlg.exec_() == QDialog.Accepted: + self.excludeMessagesEdit.setText(dlg.getSelectedCodes()) + + @pyqtSlot() + def on_includeMessagesSelectButton_clicked(self): + """ + Private slot to select the message codes to be included via a + selection dialog. + """ + dlg = Pep8CodeSelectionDialog(self.includeMessagesEdit.text(), self) + if dlg.exec_() == QDialog.Accepted: + self.includeMessagesEdit.setText(dlg.getSelectedCodes()) + + @pyqtSlot(QTreeWidgetItem, int) + def on_resultList_itemActivated(self, item, column): + """ + Private slot to handle the activation of an item. + + @param item reference to the activated item (QTreeWidgetItem) + @param column column the item was activated in (integer) + """ + if self.noResults: + return + + if item.parent(): + fn = Utilities.normabspath(item.data(0, self.filenameRole)) + lineno = item.data(0, self.lineRole) + position = item.data(0, self.positionRole) + message = item.data(0, self.messageRole) + + vm = e5App().getObject("ViewManager") + vm.openSourceFile(fn, lineno = lineno, pos = position) + editor = vm.getOpenEditor(fn) + + editor.toggleFlakesWarning(lineno, True, message) + + @pyqtSlot() + def on_showButton_clicked(self): + """ + Private slot to handle the "Show" button press. + """ + vm = e5App().getObject("ViewManager") + + selectedIndexes = [] + for index in range(self.resultList.topLevelItemCount()): + if self.resultList.topLevelItem(index).isSelected(): + selectedIndexes.append(index) + if len(selectedIndexes) == 0: + selectedIndexes = list(range(self.resultList.topLevelItemCount())) + for index in selectedIndexes: + itm = self.resultList.topLevelItem(index) + fn = Utilities.normabspath(itm.data(0, self.filenameRole)) + vm.openSourceFile(fn, 1) + editor = vm.getOpenEditor(fn) + editor.clearFlakesWarnings() + for cindex in range(itm.childCount()): + citm = itm.child(cindex) + lineno = citm.data(0, self.lineRole) + message = citm.data(0, self.messageRole) + editor.toggleFlakesWarning(lineno, True, message) + + # go through the list again to clear warning markers for files, + # that are ok + openFiles = vm.getOpenFilenames() + errorFiles = [] + for index in range(self.resultList.topLevelItemCount()): + itm = self.resultList.topLevelItem(index) + errorFiles.append( + Utilities.normabspath(itm.data(0, self.filenameRole))) + for file in openFiles: + if not file in errorFiles: + editor = vm.getOpenEditor(file) + editor.clearFlakesWarnings() + + @pyqtSlot() + def on_loadDefaultButton_clicked(self): + """ + Private slot to load the default configuration values. + """ + self.excludeFilesEdit.setText(Preferences.Prefs.settings.value( + "PEP8/ExcludeFilePatterns")) + self.excludeMessagesEdit.setText(Preferences.Prefs.settings.value( + "PEP8/ExcludeMessages", pep8.DEFAULT_IGNORE)) + self.includeMessagesEdit.setText(Preferences.Prefs.settings.value( + "PEP8/IncludeMessages")) +## self.repeatCheckBox.setChecked(Preferences.toBool( +## Preferences.Prefs.settings.value("PEP8/RepeatMessages"))) + + @pyqtSlot() + def on_storeDefaultButton_clicked(self): + """ + Private slot to store the current configuration values as + default values. + """ + Preferences.Prefs.settings.setValue("PEP8/ExcludeFilePatterns", + self.excludeFilesEdit.text()) + Preferences.Prefs.settings.setValue("PEP8/ExcludeMessages", + self.excludeMessagesEdit.text()) + Preferences.Prefs.settings.setValue("PEP8/IncludeMessages", + self.includeMessagesEdit.text()) +## Preferences.Prefs.settings.setValue("PEP8/RepeatMessages", +## self.repeatCheckBox.isChecked()) + + @pyqtSlot(QAbstractButton) + def on_buttonBox_clicked(self, button): + """ + Private slot called by a button of the button box clicked. + + @param button button that was clicked (QAbstractButton) + """ + if button == self.buttonBox.button(QDialogButtonBox.Close): + self.close() + elif button == self.buttonBox.button(QDialogButtonBox.Cancel): + self.__finish() + elif button == self.showButton: + self.on_showButton_clicked() + + def __clearErrors(self): + """ + Private method to clear all warning markers of open editors. + """ + vm = e5App().getObject("ViewManager") + openFiles = vm.getOpenFilenames() + for file in openFiles: + editor = vm.getOpenEditor(file) + editor.clearFlakesWarnings()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui Sun Jan 09 18:16:46 2011 +0100 @@ -0,0 +1,334 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Pep8Dialog</class> + <widget class="QDialog" name="Pep8Dialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>650</width> + <height>600</height> + </rect> + </property> + <property name="windowTitle"> + <string>PEP 8 Check Result</string> + </property> + <property name="whatsThis"> + <string><b>PEP 8 Check Results</b> +<p>This dialog shows the results of the PEP 8 check. Double clicking an +entry will open an editor window and position the cursor at the respective line and position.</p></string> + </property> + <property name="sizeGripEnabled"> + <bool>true</bool> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QFrame" name="filterFrame"> + <property name="frameShape"> + <enum>QFrame::NoFrame</enum> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>Exclude Files:</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QLineEdit" name="excludeFilesEdit"> + <property name="toolTip"> + <string>Enter filename patterns of files to be excluded separated by a comma</string> + </property> + </widget> + </item> + <item row="0" column="2"> + <widget class="QToolButton" name="clearButton"> + <property name="toolTip"> + <string>Press to clear the filter edit</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item row="0" column="4" rowspan="4"> + <widget class="Line" name="line"> + <property name="lineWidth"> + <number>2</number> + </property> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + </widget> + </item> + <item row="0" column="5" colspan="2"> + <widget class="QPushButton" name="startButton"> + <property name="toolTip"> + <string>Press to start the PEP 8 check run</string> + </property> + <property name="text"> + <string>Start</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label"> + <property name="text"> + <string>Exclude Messages:</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QLineEdit" name="excludeMessagesEdit"> + <property name="toolTip"> + <string>Enter message codes or categories to be excluded separated by a comma</string> + </property> + </widget> + </item> + <item row="1" column="2"> + <widget class="QToolButton" name="clearButtonExcludeMessages"> + <property name="toolTip"> + <string>Press to clear the exclude messages edit</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item row="1" column="3"> + <widget class="QToolButton" name="excludeMessagesSelectButton"> + <property name="toolTip"> + <string>Press to select the messages from a list</string> + </property> + <property name="text"> + <string>...</string> + </property> + </widget> + </item> + <item row="1" column="6" rowspan="3"> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>80</height> + </size> + </property> + </spacer> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>Included Messages:</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QLineEdit" name="includeMessagesEdit"> + <property name="toolTip"> + <string>Enter message codes or categories to be included separated by a comma</string> + </property> + </widget> + </item> + <item row="2" column="2"> + <widget class="QToolButton" name="clearButtonIncludeMessages"> + <property name="toolTip"> + <string>Press to clear the include messages edit</string> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item row="2" column="3"> + <widget class="QToolButton" name="includeMessagesSelectButton"> + <property name="toolTip"> + <string>Press to select the messages from a list</string> + </property> + <property name="text"> + <string>...</string> + </property> + </widget> + </item> + <item row="3" column="0" colspan="4"> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QCheckBox" name="repeatCheckBox"> + <property name="toolTip"> + <string>Select to repeat each message type</string> + </property> + <property name="text"> + <string>Repeat messages</string> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="loadDefaultButton"> + <property name="toolTip"> + <string>Press to load the default values</string> + </property> + <property name="text"> + <string>Load Defaults</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="storeDefaultButton"> + <property name="toolTip"> + <string>Press to store the current values as defaults</string> + </property> + <property name="text"> + <string>Store Defaults</string> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QTreeWidget" name="resultList"> + <property name="whatsThis"> + <string><b>Result List</b> +<p>This list shows the results of the PEP 8 check. Double clicking +an entry will open this entry in an editor window and position the cursor at +the respective line and position.</p></string> + </property> + <property name="alternatingRowColors"> + <bool>true</bool> + </property> + <property name="selectionMode"> + <enum>QAbstractItemView::ExtendedSelection</enum> + </property> + <property name="sortingEnabled"> + <bool>true</bool> + </property> + <column> + <property name="text"> + <string>File/Line</string> + </property> + </column> + <column> + <property name="text"> + <string>Code</string> + </property> + </column> + <column> + <property name="text"> + <string>Message</string> + </property> + </column> + </widget> + </item> + <item> + <widget class="QProgressBar" name="checkProgress"> + <property name="toolTip"> + <string>Shows the progress of the PEP 8 check action</string> + </property> + <property name="value"> + <number>0</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Close</set> + </property> + </widget> + </item> + </layout> + </widget> + <layoutdefault spacing="6" margin="6"/> + <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <tabstops> + <tabstop>startButton</tabstop> + <tabstop>excludeFilesEdit</tabstop> + <tabstop>clearButton</tabstop> + <tabstop>excludeMessagesEdit</tabstop> + <tabstop>clearButtonExcludeMessages</tabstop> + <tabstop>excludeMessagesSelectButton</tabstop> + <tabstop>includeMessagesEdit</tabstop> + <tabstop>clearButtonIncludeMessages</tabstop> + <tabstop>includeMessagesSelectButton</tabstop> + <tabstop>repeatCheckBox</tabstop> + <tabstop>loadDefaultButton</tabstop> + <tabstop>storeDefaultButton</tabstop> + <tabstop>resultList</tabstop> + <tabstop>buttonBox</tabstop> + </tabstops> + <resources/> + <connections> + <connection> + <sender>clearButton</sender> + <signal>clicked()</signal> + <receiver>excludeFilesEdit</receiver> + <slot>clear()</slot> + <hints> + <hint type="sourcelabel"> + <x>505</x> + <y>40</y> + </hint> + <hint type="destinationlabel"> + <x>472</x> + <y>39</y> + </hint> + </hints> + </connection> + <connection> + <sender>clearButtonExcludeMessages</sender> + <signal>clicked()</signal> + <receiver>excludeMessagesEdit</receiver> + <slot>clear()</slot> + <hints> + <hint type="sourcelabel"> + <x>491</x> + <y>66</y> + </hint> + <hint type="destinationlabel"> + <x>444</x> + <y>63</y> + </hint> + </hints> + </connection> + <connection> + <sender>clearButtonIncludeMessages</sender> + <signal>clicked()</signal> + <receiver>includeMessagesEdit</receiver> + <slot>clear()</slot> + <hints> + <hint type="sourcelabel"> + <x>494</x> + <y>100</y> + </hint> + <hint type="destinationlabel"> + <x>458</x> + <y>95</y> + </hint> + </hints> + </connection> + </connections> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/CheckerPlugins/Pep8/__init__.py Sun Jan 09 18:16:46 2011 +0100 @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2011 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Package containing the PEP 8 plugin. +"""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/CheckerPlugins/Pep8/pep8.py Sun Jan 09 18:16:46 2011 +0100 @@ -0,0 +1,1480 @@ +# -*- coding: utf-8 -*- + +# +# pep8.py - Check Python source code formatting, according to PEP 8 +# Copyright (C) 2006 Johann C. Rocholl <johann@rocholl.net> +# +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation files +# (the "Software"), to deal in the Software without restriction, +# including without limitation the rights to use, copy, modify, merge, +# publish, distribute, sublicense, and/or sell copies of the Software, +# and to permit persons to whom the Software is furnished to do so, +# subject to the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +""" +Check Python source code formatting, according to PEP 8: +http://www.python.org/dev/peps/pep-0008/ + +For usage and a list of options, try this: +$ python pep8.py -h + +This program and its regression test suite live here: +http://github.com/jcrocholl/pep8 + +Groups of errors and warnings: +E errors +W warnings +100 indentation +200 whitespace +300 blank lines +400 imports +500 line length +600 deprecation +700 statements + +You can add checks to this program by writing plugins. Each plugin is +a simple function that is called for each line of source code, either +physical or logical. + +Physical line: +- Raw line of text from the input file. + +Logical line: +- Multi-line statements converted to a single line. +- Stripped left and right. +- Contents of strings replaced with 'xxx' of same length. +- Comments removed. + +The check function requests physical or logical lines by the name of +the first argument: + +def maximum_line_length(physical_line) +def extraneous_whitespace(logical_line) +def blank_lines(logical_line, blank_lines, indent_level, line_number) + +The last example above demonstrates how check plugins can request +additional information with extra arguments. All attributes of the +Checker object are available. Some examples: + +lines: a list of the raw lines from the input file +tokens: the tokens that contribute to this logical line +line_number: line number in the input file +blank_lines: blank lines before this one +indent_char: first indentation character in this file (' ' or '\t') +indent_level: indentation (with tabs expanded to multiples of 8) +previous_indent_level: indentation on previous line +previous_logical: previous logical line + +The docstring of each check function shall be the relevant part of +text from PEP 8. It is printed if the user enables --show-pep8. +Several docstrings contain examples directly from the PEP 8 document. + +Okay: spam(ham[1], {eggs: 2}) +E201: spam( ham[1], {eggs: 2}) + +These examples are verified automatically when pep8.py is run with the +--doctest option. You can add examples for your own check functions. +The format is simple: "Okay" or error/warning code followed by colon +and space, the rest of the line is example source code. If you put 'r' +before the docstring, you can use \n for newline, \t for tab and \s +for space. + +""" + +# +# This is a modified version to make the original tabnanny better suitable +# for being called from within the eric5 IDE. The modifications are as +# follows: +# +# - made messages translatable via Qt +# +# Copyright (c) 2011 Detlev Offenbach <detlev@die-offenbachs.de> +# + +__version__ = '0.6.1' + +import os +import sys +import re +import time +import inspect +import keyword +import tokenize +from optparse import OptionParser +from fnmatch import fnmatch +try: + frozenset +except NameError: + from sets import ImmutableSet as frozenset + +from PyQt4.QtCore import QCoreApplication, QT_TRANSLATE_NOOP + +DEFAULT_EXCLUDE = '.svn,CVS,.bzr,.hg,.git' +DEFAULT_IGNORE = 'E24' +MAX_LINE_LENGTH = 79 + +INDENT_REGEX = re.compile(r'([ \t]*)') +RAISE_COMMA_REGEX = re.compile(r'raise\s+\w+\s*(,)') +SELFTEST_REGEX = re.compile(r'(Okay|[EW]\d{3}):\s(.*)') +ERRORCODE_REGEX = re.compile(r'[EW]\d{3}') +DOCSTRING_REGEX = re.compile(r'u?r?["\']') +WHITESPACE_AROUND_OPERATOR_REGEX = \ + re.compile('([^\w\s]*)\s*(\t| )\s*([^\w\s]*)') +EXTRANEOUS_WHITESPACE_REGEX = re.compile(r'[[({] | []}),;:]') +WHITESPACE_AROUND_NAMED_PARAMETER_REGEX = \ + re.compile(r'[()]|\s=[^=]|[^=!<>]=\s') + + +WHITESPACE = ' \t' + +BINARY_OPERATORS = frozenset(['**=', '*=', '+=', '-=', '!=', '<>', + '%=', '^=', '&=', '|=', '==', '/=', '//=', '<=', '>=', '<<=', '>>=', + '%', '^', '&', '|', '=', '/', '//', '<', '>', '<<']) +UNARY_OPERATORS = frozenset(['>>', '**', '*', '+', '-']) +OPERATORS = BINARY_OPERATORS | UNARY_OPERATORS +SKIP_TOKENS = frozenset([tokenize.COMMENT, tokenize.NL, tokenize.INDENT, + tokenize.DEDENT, tokenize.NEWLINE]) +E225NOT_KEYWORDS = (frozenset(keyword.kwlist + ['print']) - + frozenset(['False', 'None', 'True'])) +BENCHMARK_KEYS = ('directories', 'files', 'logical lines', 'physical lines') + +options = None +args = None + + +############################################################################## +# Helper functions for translated and formatted messages +############################################################################## + + +pep8_messages = { + "E101" : QT_TRANSLATE_NOOP("pep8", + "indentation contains mixed spaces and tabs"), + "E111" : QT_TRANSLATE_NOOP("pep8", + "indentation is not a multiple of four"), + "E112" : QT_TRANSLATE_NOOP("pep8", + "expected an indented block"), + "E113" : QT_TRANSLATE_NOOP("pep8", + "unexpected indentation"), + "W191" : QT_TRANSLATE_NOOP("pep8", + "indentation contains tabs"), + "E201" : QT_TRANSLATE_NOOP("pep8", + "whitespace after '{0}'"), + "E202" : QT_TRANSLATE_NOOP("pep8", + "whitespace before '{0}'"), + "E203" : QT_TRANSLATE_NOOP("pep8", + "whitespace before '{0}'"), + "E211" : QT_TRANSLATE_NOOP("pep8", + "whitespace before '{0}'"), + "E221" : QT_TRANSLATE_NOOP("pep8", + "multiple spaces before operator"), + "E222" : QT_TRANSLATE_NOOP("pep8", + "multiple spaces after operator"), + "E223" : QT_TRANSLATE_NOOP("pep8", + "tab before operator"), + "E224" : QT_TRANSLATE_NOOP("pep8", + "tab after operator"), + "E225" : QT_TRANSLATE_NOOP("pep8", + "missing whitespace around operator"), + "E231" : QT_TRANSLATE_NOOP("pep8", + "missing whitespace after '{0}'"), + "E241" : QT_TRANSLATE_NOOP("pep8", + "multiple spaces after '{0}'"), + "E242" : QT_TRANSLATE_NOOP("pep8", + "tab after '{0}'"), + "E251" : QT_TRANSLATE_NOOP("pep8", + "no spaces around keyword / parameter equals"), + "E261" : QT_TRANSLATE_NOOP("pep8", + "at least two spaces before inline comment"), + "E262" : QT_TRANSLATE_NOOP("pep8", + "inline comment should start with '# '"), + "W291" : QT_TRANSLATE_NOOP("pep8", + "trailing whitespace"), + "W292" : QT_TRANSLATE_NOOP("pep8", + "no newline at end of file"), + "W293" : QT_TRANSLATE_NOOP("pep8", + "blank line contains whitespace"), + "E301" : QT_TRANSLATE_NOOP("pep8", + "expected 1 blank line, found 0"), + "E302" : QT_TRANSLATE_NOOP("pep8", + "expected 2 blank lines, found {0}"), + "E303" : QT_TRANSLATE_NOOP("pep8", + "too many blank lines ({0})"), + "E304" : QT_TRANSLATE_NOOP("pep8", + "blank lines found after function decorator"), + "W391" : QT_TRANSLATE_NOOP("pep8", + "blank line at end of file"), + "E401" : QT_TRANSLATE_NOOP("pep8", + "multiple imports on one line"), + "E501" : QT_TRANSLATE_NOOP("pep8", + "line too long ({0} characters)"), + "W601" : QT_TRANSLATE_NOOP("pep8", + ".has_key() is deprecated, use 'in'"), + "W602" : QT_TRANSLATE_NOOP("pep8", + "deprecated form of raising exception"), + "W603" : QT_TRANSLATE_NOOP("pep8", + "'<>' is deprecated, use '!='"), + "W604" : QT_TRANSLATE_NOOP("pep8", + "backticks are deprecated, use 'repr()'"), + "E701" : QT_TRANSLATE_NOOP("pep8", + "multiple statements on one line (colon)"), + "E702" : QT_TRANSLATE_NOOP("pep8", + "multiple statements on one line (semicolon)"), +} + +pep8_messages_sample_args = { + "E201" : ["("], + "E202" : [")"], + "E203" : [":"], + "E211" : ["["], + "E231" : [","], + "E241" : [","], + "E242" : [","], + "E302" : [1], + "E303" : [3], + "E501" : [85], +} + + +def getMessage(code, *args): + """ + Function to get a translated and formatted message for a given code. + + @param code message code (string) + @param args arguments for a formatted message (list) + @return translated and formatted message (string) + """ + if code in pep8_messages: + return code + " " + QCoreApplication.translate("pep8", + pep8_messages[code]).format(*args) + else: + return code + " " + QCoreApplication.translate("pep8", + "no message for this code defined") + +############################################################################## +# Plugins (check functions) for physical lines +############################################################################## + + +def tabs_or_spaces(physical_line, indent_char): + r""" + Never mix tabs and spaces. + + The most popular way of indenting Python is with spaces only. The + second-most popular way is with tabs only. Code indented with a mixture + of tabs and spaces should be converted to using spaces exclusively. When + invoking the Python command line interpreter with the -t option, it issues + warnings about code that illegally mixes tabs and spaces. When using -tt + these warnings become errors. These options are highly recommended! + + Okay: if a == 0:\n a = 1\n b = 1 + E101: if a == 0:\n a = 1\n\tb = 1 + """ + indent = INDENT_REGEX.match(physical_line).group(1) + for offset, char in enumerate(indent): + if char != indent_char: + return offset, "E101" + + +def tabs_obsolete(physical_line): + r""" + For new projects, spaces-only are strongly recommended over tabs. Most + editors have features that make this easy to do. + + Okay: if True:\n return + W191: if True:\n\treturn + """ + indent = INDENT_REGEX.match(physical_line).group(1) + if indent.count('\t'): + return indent.index('\t'), "W191" + + +def trailing_whitespace(physical_line): + r""" + JCR: Trailing whitespace is superfluous. + FBM: Except when it occurs as part of a blank line (i.e. the line is + nothing but whitespace). According to Python docs[1] a line with only + whitespace is considered a blank line, and is to be ignored. However, + matching a blank line to its indentation level avoids mistakenly + terminating a multi-line statement (e.g. class declaration) when + pasting code into the standard Python interpreter. + + [1] http://docs.python.org/reference/lexical_analysis.html#blank-lines + + The warning returned varies on whether the line itself is blank, for easier + filtering for those who want to indent their blank lines. + + Okay: spam(1) + W291: spam(1)\s + W293: class Foo(object):\n \n bang = 12 + """ + physical_line = physical_line.rstrip('\n') # chr(10), newline + physical_line = physical_line.rstrip('\r') # chr(13), carriage return + physical_line = physical_line.rstrip('\x0c') # chr(12), form feed, ^L + stripped = physical_line.rstrip() + if physical_line != stripped: + if stripped: + return len(stripped), "W291" + else: + return 0, "W293" + + +def trailing_blank_lines(physical_line, lines, line_number): + r""" + JCR: Trailing blank lines are superfluous. + + Okay: spam(1) + W391: spam(1)\n + """ + if physical_line.strip() == '' and line_number == len(lines): + return 0, "W391" + + +def missing_newline(physical_line): + """ + JCR: The last line should have a newline. + """ + if physical_line.rstrip() == physical_line: + return len(physical_line), "W292" + + +def maximum_line_length(physical_line): + """ + Limit all lines to a maximum of 79 characters. + + There are still many devices around that are limited to 80 character + lines; plus, limiting windows to 80 characters makes it possible to have + several windows side-by-side. The default wrapping on such devices looks + ugly. Therefore, please limit all lines to a maximum of 79 characters. + For flowing long blocks of text (docstrings or comments), limiting the + length to 72 characters is recommended. + """ + line = physical_line.rstrip() + length = len(line) + if length > MAX_LINE_LENGTH: + try: + # The line could contain multi-byte characters + if not hasattr(line, 'decode'): # Python 3 + line = line.encode('latin-1') + length = len(line.decode('utf-8')) + except UnicodeDecodeError: + pass + if length > MAX_LINE_LENGTH: + return MAX_LINE_LENGTH, "E501", length + + +############################################################################## +# Plugins (check functions) for logical lines +############################################################################## + + +def blank_lines(logical_line, blank_lines, indent_level, line_number, + previous_logical, previous_indent_level, + blank_lines_before_comment): + r""" + Separate top-level function and class definitions with two blank lines. + + Method definitions inside a class are separated by a single blank line. + + Extra blank lines may be used (sparingly) to separate groups of related + functions. Blank lines may be omitted between a bunch of related + one-liners (e.g. a set of dummy implementations). + + Use blank lines in functions, sparingly, to indicate logical sections. + + Okay: def a():\n pass\n\n\ndef b():\n pass + Okay: def a():\n pass\n\n\n# Foo\n# Bar\n\ndef b():\n pass + + E301: class Foo:\n b = 0\n def bar():\n pass + E302: def a():\n pass\n\ndef b(n):\n pass + E303: def a():\n pass\n\n\n\ndef b(n):\n pass + E303: def a():\n\n\n\n pass + E304: @decorator\n\ndef a():\n pass + """ + if line_number == 1: + return # Don't expect blank lines before the first line + max_blank_lines = max(blank_lines, blank_lines_before_comment) + if previous_logical.startswith('@'): + if max_blank_lines: + return 0, "E304" + elif max_blank_lines > 2 or (indent_level and max_blank_lines == 2): + return 0, "E303", max_blank_lines + elif (logical_line.startswith('def ') or + logical_line.startswith('class ') or + logical_line.startswith('@')): + if indent_level: + if not (max_blank_lines or previous_indent_level < indent_level or + DOCSTRING_REGEX.match(previous_logical)): + return 0, "E301" + elif max_blank_lines != 2: + return 0, "E302", max_blank_lines + + +def extraneous_whitespace(logical_line): + """ + Avoid extraneous whitespace in the following situations: + + - Immediately inside parentheses, brackets or braces. + + - Immediately before a comma, semicolon, or colon. + + Okay: spam(ham[1], {eggs: 2}) + E201: spam( ham[1], {eggs: 2}) + E201: spam(ham[ 1], {eggs: 2}) + E201: spam(ham[1], { eggs: 2}) + E202: spam(ham[1], {eggs: 2} ) + E202: spam(ham[1 ], {eggs: 2}) + E202: spam(ham[1], {eggs: 2 }) + + E203: if x == 4: print x, y; x, y = y , x + E203: if x == 4: print x, y ; x, y = y, x + E203: if x == 4 : print x, y; x, y = y, x + """ + line = logical_line + for match in EXTRANEOUS_WHITESPACE_REGEX.finditer(line): + text = match.group() + char = text.strip() + found = match.start() + if text == char + ' ' and char in '([{': + return found + 1, "E201", char + if text == ' ' + char and line[found - 1] != ',': + if char in '}])': + return found, "E202", char + if char in ',;:': + return found, "E203", char + + +def missing_whitespace(logical_line): + """ + JCR: Each comma, semicolon or colon should be followed by whitespace. + + Okay: [a, b] + Okay: (3,) + Okay: a[1:4] + Okay: a[:4] + Okay: a[1:] + Okay: a[1:4:2] + E231: ['a','b'] + E231: foo(bar,baz) + """ + line = logical_line + for index in range(len(line) - 1): + char = line[index] + if char in ',;:' and line[index + 1] not in WHITESPACE: + before = line[:index] + if char == ':' and before.count('[') > before.count(']'): + continue # Slice syntax, no space required + if char == ',' and line[index + 1] == ')': + continue # Allow tuple with only one element: (3,) + return index, "E231", char + + +def indentation(logical_line, previous_logical, indent_char, + indent_level, previous_indent_level): + r""" + Use 4 spaces per indentation level. + + For really old code that you don't want to mess up, you can continue to + use 8-space tabs. + + Okay: a = 1 + Okay: if a == 0:\n a = 1 + E111: a = 1 + + Okay: for item in items:\n pass + E112: for item in items:\npass + + Okay: a = 1\nb = 2 + E113: a = 1\n b = 2 + """ + if indent_char == ' ' and indent_level % 4: + return 0, "E111" + indent_expect = previous_logical.endswith(':') + if indent_expect and indent_level <= previous_indent_level: + return 0, "E112" + if indent_level > previous_indent_level and not indent_expect: + return 0, "E113" + + +def whitespace_before_parameters(logical_line, tokens): + """ + Avoid extraneous whitespace in the following situations: + + - Immediately before the open parenthesis that starts the argument + list of a function call. + + - Immediately before the open parenthesis that starts an indexing or + slicing. + + Okay: spam(1) + E211: spam (1) + + Okay: dict['key'] = list[index] + E211: dict ['key'] = list[index] + E211: dict['key'] = list [index] + """ + prev_type = tokens[0][0] + prev_text = tokens[0][1] + prev_end = tokens[0][3] + for index in range(1, len(tokens)): + token_type, text, start, end, line = tokens[index] + if (token_type == tokenize.OP and + text in '([' and + start != prev_end and + (prev_type == tokenize.NAME or prev_text in '}])') and + # Syntax "class A (B):" is allowed, but avoid it + (index < 2 or tokens[index - 2][1] != 'class') and + # Allow "return (a.foo for a in range(5))" + (not keyword.iskeyword(prev_text))): + return prev_end, "E211", text + prev_type = token_type + prev_text = text + prev_end = end + + +def whitespace_around_operator(logical_line): + """ + Avoid extraneous whitespace in the following situations: + + - More than one space around an assignment (or other) operator to + align it with another. + + Okay: a = 12 + 3 + E221: a = 4 + 5 + E222: a = 4 + 5 + E223: a = 4\t+ 5 + E224: a = 4 +\t5 + """ + for match in WHITESPACE_AROUND_OPERATOR_REGEX.finditer(logical_line): + before, whitespace, after = match.groups() + tab = whitespace == '\t' + offset = match.start(2) + if before in OPERATORS: + return offset, (tab and "E224" or "E222") + elif after in OPERATORS: + return offset, (tab and "E223" or "E221") + + +def missing_whitespace_around_operator(logical_line, tokens): + r""" + - Always surround these binary operators with a single space on + either side: assignment (=), augmented assignment (+=, -= etc.), + comparisons (==, <, >, !=, <>, <=, >=, in, not in, is, is not), + Booleans (and, or, not). + + - Use spaces around arithmetic operators. + + Okay: i = i + 1 + Okay: submitted += 1 + Okay: x = x * 2 - 1 + Okay: hypot2 = x * x + y * y + Okay: c = (a + b) * (a - b) + Okay: foo(bar, key='word', *args, **kwargs) + Okay: baz(**kwargs) + Okay: negative = -1 + Okay: spam(-1) + Okay: alpha[:-i] + Okay: if not -5 < x < +5:\n pass + Okay: lambda *args, **kw: (args, kw) + + E225: i=i+1 + E225: submitted +=1 + E225: x = x*2 - 1 + E225: hypot2 = x*x + y*y + E225: c = (a+b) * (a-b) + E225: c = alpha -4 + E225: z = x **y + """ + parens = 0 + need_space = False + prev_type = tokenize.OP + prev_text = prev_end = None + for token_type, text, start, end, line in tokens: + if token_type in (tokenize.NL, tokenize.NEWLINE, tokenize.ERRORTOKEN): + # ERRORTOKEN is triggered by backticks in Python 3000 + continue + if text in ('(', 'lambda'): + parens += 1 + elif text == ')': + parens -= 1 + if need_space: + if start != prev_end: + need_space = False + elif text == '>' and prev_text == '<': + # Tolerate the "<>" operator, even if running Python 3 + pass + else: + return prev_end, "E225" + elif token_type == tokenize.OP and prev_end is not None: + if text == '=' and parens: + # Allow keyword args or defaults: foo(bar=None). + pass + elif text in BINARY_OPERATORS: + need_space = True + elif text in UNARY_OPERATORS: + # Allow unary operators: -123, -x, +1. + # Allow argument unpacking: foo(*args, **kwargs). + if prev_type == tokenize.OP: + if prev_text in '}])': + need_space = True + elif prev_type == tokenize.NAME: + if prev_text not in E225NOT_KEYWORDS: + need_space = True + else: + need_space = True + if need_space and start == prev_end: + return prev_end, "E225" + prev_type = token_type + prev_text = text + prev_end = end + + +def whitespace_around_comma(logical_line): + """ + Avoid extraneous whitespace in the following situations: + + - More than one space around an assignment (or other) operator to + align it with another. + + JCR: This should also be applied around comma etc. + Note: these checks are disabled by default + + Okay: a = (1, 2) + E241: a = (1, 2) + E242: a = (1,\t2) + """ + line = logical_line + for separator in ',;:': + found = line.find(separator + ' ') + if found > -1: + return found + 1, "E241", separator + found = line.find(separator + '\t') + if found > -1: + return found + 1, "E242", separator + + +def whitespace_around_named_parameter_equals(logical_line): + """ + Don't use spaces around the '=' sign when used to indicate a + keyword argument or a default parameter value. + + Okay: def complex(real, imag=0.0): + Okay: return magic(r=real, i=imag) + Okay: boolean(a == b) + Okay: boolean(a != b) + Okay: boolean(a <= b) + Okay: boolean(a >= b) + + E251: def complex(real, imag = 0.0): + E251: return magic(r = real, i = imag) + """ + parens = 0 + for match in WHITESPACE_AROUND_NAMED_PARAMETER_REGEX.finditer( + logical_line): + text = match.group() + if parens and len(text) == 3: + issue = "E251" + return match.start(), issue + if text == '(': + parens += 1 + elif text == ')': + parens -= 1 + + +def whitespace_before_inline_comment(logical_line, tokens): + """ + Separate inline comments by at least two spaces. + + An inline comment is a comment on the same line as a statement. Inline + comments should be separated by at least two spaces from the statement. + They should start with a # and a single space. + + Okay: x = x + 1 # Increment x + Okay: x = x + 1 # Increment x + E261: x = x + 1 # Increment x + E262: x = x + 1 #Increment x + E262: x = x + 1 # Increment x + """ + prev_end = (0, 0) + for token_type, text, start, end, line in tokens: + if token_type == tokenize.NL: + continue + if token_type == tokenize.COMMENT: + if not line[:start[1]].strip(): + continue + if prev_end[0] == start[0] and start[1] < prev_end[1] + 2: + return (prev_end, "E261") + if (len(text) > 1 and text.startswith('# ') + or not text.startswith('# ')): + return start, "E262" + else: + prev_end = end + + +def imports_on_separate_lines(logical_line): + r""" + Imports should usually be on separate lines. + + Okay: import os\nimport sys + E401: import sys, os + + Okay: from subprocess import Popen, PIPE + Okay: from myclas import MyClass + Okay: from foo.bar.yourclass import YourClass + Okay: import myclass + Okay: import foo.bar.yourclass + """ + line = logical_line + if line.startswith('import '): + found = line.find(',') + if found > -1: + return found, "E401" + + +def compound_statements(logical_line): + r""" + Compound statements (multiple statements on the same line) are + generally discouraged. + + While sometimes it's okay to put an if/for/while with a small body + on the same line, never do this for multi-clause statements. Also + avoid folding such long lines! + + Okay: if foo == 'blah':\n do_blah_thing() + Okay: do_one() + Okay: do_two() + Okay: do_three() + + E701: if foo == 'blah': do_blah_thing() + E701: for x in lst: total += x + E701: while t < 10: t = delay() + E701: if foo == 'blah': do_blah_thing() + E701: else: do_non_blah_thing() + E701: try: something() + E701: finally: cleanup() + E701: if foo == 'blah': one(); two(); three() + + E702: do_one(); do_two(); do_three() + """ + line = logical_line + found = line.find(':') + if -1 < found < len(line) - 1: + before = line[:found] + if (before.count('{') <= before.count('}') and # {'a': 1} (dict) + before.count('[') <= before.count(']') and # [1:2] (slice) + not re.search(r'\blambda\b', before)): # lambda x: x + return found, "E701" + found = line.find(';') + if -1 < found: + return found, "E702" + + +def python_3000_has_key(logical_line): + """ + The {}.has_key() method will be removed in the future version of + Python. Use the 'in' operation instead, like: + d = {"a": 1, "b": 2} + if "b" in d: + print d["b"] + """ + pos = logical_line.find('.has_key(') + if pos > -1: + return pos, "W601" + + +def python_3000_raise_comma(logical_line): + """ + When raising an exception, use "raise ValueError('message')" + instead of the older form "raise ValueError, 'message'". + + The paren-using form is preferred because when the exception arguments + are long or include string formatting, you don't need to use line + continuation characters thanks to the containing parentheses. The older + form will be removed in Python 3000. + """ + match = RAISE_COMMA_REGEX.match(logical_line) + if match: + return match.start(1), "W602" + + +def python_3000_not_equal(logical_line): + """ + != can also be written <>, but this is an obsolete usage kept for + backwards compatibility only. New code should always use !=. + The older syntax is removed in Python 3000. + """ + pos = logical_line.find('<>') + if pos > -1: + return pos, "W603" + + +def python_3000_backticks(logical_line): + """ + Backticks are removed in Python 3000. + Use repr() instead. + """ + pos = logical_line.find('`') + if pos > -1: + return pos, "W604" + + +############################################################################## +# Helper functions +############################################################################## + + +if '' == ''.encode(): + # Python 2: implicit encoding. + def readlines(filename): + return open(filename).readlines() +else: + # Python 3: decode to latin-1. + # This function is lazy, it does not read the encoding declaration. + # XXX: use tokenize.detect_encoding() + def readlines(filename): # __IGNORE_WARNING__ + return open(filename, encoding='latin-1').readlines() + + +def expand_indent(line): + """ + Return the amount of indentation. + Tabs are expanded to the next multiple of 8. + + >>> expand_indent(' ') + 4 + >>> expand_indent('\\t') + 8 + >>> expand_indent(' \\t') + 8 + >>> expand_indent(' \\t') + 8 + >>> expand_indent(' \\t') + 16 + """ + result = 0 + for char in line: + if char == '\t': + result = result // 8 * 8 + 8 + elif char == ' ': + result += 1 + else: + break + return result + + +def mute_string(text): + """ + Replace contents with 'xxx' to prevent syntax matching. + + >>> mute_string('"abc"') + '"xxx"' + >>> mute_string("'''abc'''") + "'''xxx'''" + >>> mute_string("r'abc'") + "r'xxx'" + """ + start = 1 + end = len(text) - 1 + # String modifiers (e.g. u or r) + if text.endswith('"'): + start += text.index('"') + elif text.endswith("'"): + start += text.index("'") + # Triple quotes + if text.endswith('"""') or text.endswith("'''"): + start += 2 + end -= 2 + return text[:start] + 'x' * (end - start) + text[end:] + + +def message(text): + """Print a message.""" + # print >> sys.stderr, options.prog + ': ' + text + # print >> sys.stderr, text + print(text) + + +############################################################################## +# Framework to run all checks +############################################################################## + + +def find_checks(argument_name): + """ + Find all globally visible functions where the first argument name + starts with argument_name. + """ + checks = [] + for name, function in globals().items(): + if not inspect.isfunction(function): + continue + args = inspect.getargspec(function)[0] + if args and args[0].startswith(argument_name): + codes = ERRORCODE_REGEX.findall(inspect.getdoc(function) or '') + for code in codes or ['']: + if not code or not ignore_code(code): + checks.append((name, function, args)) + break + checks.sort() + return checks + + +class Checker(object): + """ + Load a Python source file, tokenize it, check coding style. + """ + + def __init__(self, filename, lines=None): + self.filename = filename + if filename is None: + self.filename = 'stdin' + self.lines = lines or [] + elif lines is None: + self.lines = readlines(filename) + else: + self.lines = lines + options.counters['physical lines'] += len(self.lines) + + def readline(self): + """ + Get the next line from the input buffer. + """ + self.line_number += 1 + if self.line_number > len(self.lines): + return '' + return self.lines[self.line_number - 1] + + def readline_check_physical(self): + """ + Check and return the next physical line. This method can be + used to feed tokenize.generate_tokens. + """ + line = self.readline() + if line: + self.check_physical(line) + return line + + def run_check(self, check, argument_names): + """ + Run a check plugin. + """ + arguments = [] + for name in argument_names: + arguments.append(getattr(self, name)) + return check(*arguments) + + def check_physical(self, line): + """ + Run all physical checks on a raw input line. + """ + self.physical_line = line + if self.indent_char is None and len(line) and line[0] in ' \t': + self.indent_char = line[0] + for name, check, argument_names in options.physical_checks: + result = self.run_check(check, argument_names) + if result is not None: + offset, code, *args = result + self.report_error_args(self.line_number, offset, code, check, + *args) + + def build_tokens_line(self): + """ + Build a logical line from tokens. + """ + self.mapping = [] + logical = [] + length = 0 + previous = None + for token in self.tokens: + token_type, text = token[0:2] + if token_type in SKIP_TOKENS: + continue + if token_type == tokenize.STRING: + text = mute_string(text) + if previous: + end_line, end = previous[3] + start_line, start = token[2] + if end_line != start_line: # different row + prev_text = self.lines[end_line - 1][end - 1] + if prev_text == ',' or (prev_text not in '{[(' + and text not in '}])'): + logical.append(' ') + length += 1 + elif end != start: # different column + fill = self.lines[end_line - 1][end:start] + logical.append(fill) + length += len(fill) + self.mapping.append((length, token)) + logical.append(text) + length += len(text) + previous = token + self.logical_line = ''.join(logical) + assert self.logical_line.lstrip() == self.logical_line + assert self.logical_line.rstrip() == self.logical_line + + def check_logical(self): + """ + Build a line from tokens and run all logical checks on it. + """ + options.counters['logical lines'] += 1 + self.build_tokens_line() + first_line = self.lines[self.mapping[0][1][2][0] - 1] + indent = first_line[:self.mapping[0][1][2][1]] + self.previous_indent_level = self.indent_level + self.indent_level = expand_indent(indent) + if options.verbose >= 2: + print(self.logical_line[:80].rstrip()) + for name, check, argument_names in options.logical_checks: + if options.verbose >= 4: + print(' ' + name) + result = self.run_check(check, argument_names) + if result is not None: + offset, code, *args = result + if isinstance(offset, tuple): + original_number, original_offset = offset + else: + for token_offset, token in self.mapping: + if offset >= token_offset: + original_number = token[2][0] + original_offset = (token[2][1] + + offset - token_offset) + self.report_error_args(original_number, original_offset, + code, check, *args) + self.previous_logical = self.logical_line + + def check_all(self, expected=None, line_offset=0): + """ + Run all checks on the input file. + """ + self.expected = expected or () + self.line_offset = line_offset + self.line_number = 0 + self.file_errors = 0 + self.indent_char = None + self.indent_level = 0 + self.previous_logical = '' + self.blank_lines = 0 + self.blank_lines_before_comment = 0 + self.tokens = [] + parens = 0 + for token in tokenize.generate_tokens(self.readline_check_physical): + if options.verbose >= 3: + if token[2][0] == token[3][0]: + pos = '[%s:%s]' % (token[2][1] or '', token[3][1]) + else: + pos = 'l.%s' % token[3][0] + print('l.%s\t%s\t%s\t%r' % + (token[2][0], pos, tokenize.tok_name[token[0]], token[1])) + self.tokens.append(token) + token_type, text = token[0:2] + if token_type == tokenize.OP and text in '([{': + parens += 1 + if token_type == tokenize.OP and text in '}])': + parens -= 1 + if token_type == tokenize.NEWLINE and not parens: + self.check_logical() + self.blank_lines = 0 + self.blank_lines_before_comment = 0 + self.tokens = [] + if token_type == tokenize.NL and not parens: + if len(self.tokens) <= 1: + # The physical line contains only this token. + self.blank_lines += 1 + self.tokens = [] + if token_type == tokenize.COMMENT: + source_line = token[4] + token_start = token[2][1] + if source_line[:token_start].strip() == '': + self.blank_lines_before_comment = max(self.blank_lines, + self.blank_lines_before_comment) + self.blank_lines = 0 + if text.endswith('\n') and not parens: + # The comment also ends a physical line. This works around + # Python < 2.6 behaviour, which does not generate NL after + # a comment which is on a line by itself. + self.tokens = [] + return self.file_errors + + def report_error(self, line_number, offset, text, check): + """ + Report an error, according to options. + """ + code = text[:4] + if ignore_code(code): + return + if options.quiet == 1 and not self.file_errors: + message(self.filename) + if code in options.counters: + options.counters[code] += 1 + else: + options.counters[code] = 1 + options.messages[code] = text[5:] + if options.quiet or code in self.expected: + # Don't care about expected errors or warnings + return + self.file_errors += 1 + if options.counters[code] == 1 or options.repeat: + message("%s:%s:%d: %s" % + (self.filename, self.line_offset + line_number, + offset + 1, text)) + if options.show_source: + line = self.lines[line_number - 1] + message(line.rstrip()) + message(' ' * offset + '^') + if options.show_pep8: + message(check.__doc__.lstrip('\n').rstrip()) + + +def input_file(filename): + """ + Run all checks on a Python source file. + """ + if options.verbose: + message('checking ' + filename) + Checker(filename).check_all() + + +def input_dir(dirname, runner=None): + """ + Check all Python source files in this directory and all subdirectories. + """ + dirname = dirname.rstrip('/') + if excluded(dirname): + return + if runner is None: + runner = input_file + for root, dirs, files in os.walk(dirname): + if options.verbose: + message('directory ' + root) + options.counters['directories'] += 1 + dirs.sort() + for subdir in dirs: + if excluded(subdir): + dirs.remove(subdir) + files.sort() + for filename in files: + if filename_match(filename) and not excluded(filename): + options.counters['files'] += 1 + runner(os.path.join(root, filename)) + + +def excluded(filename): + """ + Check if options.exclude contains a pattern that matches filename. + """ + basename = os.path.basename(filename) + for pattern in options.exclude: + if fnmatch(basename, pattern): + # print basename, 'excluded because it matches', pattern + return True + + +def filename_match(filename): + """ + Check if options.filename contains a pattern that matches filename. + If options.filename is unspecified, this always returns True. + """ + if not options.filename: + return True + for pattern in options.filename: + if fnmatch(filename, pattern): + return True + + +def ignore_code(code): + """ + Check if options.ignore contains a prefix of the error code. + If options.select contains a prefix of the error code, do not ignore it. + """ + for select in options.select: + if code.startswith(select): + return False + for ignore in options.ignore: + if code.startswith(ignore): + return True + + +def reset_counters(): + for key in list(options.counters.keys()): + if key not in BENCHMARK_KEYS: + del options.counters[key] + options.messages = {} + + +def get_error_statistics(): + """Get error statistics.""" + return get_statistics("E") + + +def get_warning_statistics(): + """Get warning statistics.""" + return get_statistics("W") + + +def get_statistics(prefix=''): + """ + Get statistics for message codes that start with the prefix. + + prefix='' matches all errors and warnings + prefix='E' matches all errors + prefix='W' matches all warnings + prefix='E4' matches all errors that have to do with imports + """ + stats = [] + keys = list(options.messages.keys()) + keys.sort() + for key in keys: + if key.startswith(prefix): + stats.append('%-7s %s %s' % + (options.counters[key], key, options.messages[key])) + return stats + + +def get_count(prefix=''): + """Return the total count of errors and warnings.""" + keys = list(options.messages.keys()) + count = 0 + for key in keys: + if key.startswith(prefix): + count += options.counters[key] + return count + + +def print_statistics(prefix=''): + """Print overall statistics (number of errors and warnings).""" + for line in get_statistics(prefix): + print(line) + + +def print_benchmark(elapsed): + """ + Print benchmark numbers. + """ + print('%-7.2f %s' % (elapsed, 'seconds elapsed')) + for key in BENCHMARK_KEYS: + print('%-7d %s per second (%d total)' % ( + options.counters[key] / elapsed, key, + options.counters[key])) + + +def run_tests(filename): + """ + Run all the tests from a file. + + A test file can provide many tests. Each test starts with a declaration. + This declaration is a single line starting with '#:'. + It declares codes of expected failures, separated by spaces or 'Okay' + if no failure is expected. + If the file does not contain such declaration, it should pass all tests. + If the declaration is empty, following lines are not checked, until next + declaration. + + Examples: + + * Only E224 and W701 are expected: #: E224 W701 + * Following example is conform: #: Okay + * Don't check these lines: #: + """ + lines = readlines(filename) + ['#:\n'] + line_offset = 0 + codes = ['Okay'] + testcase = [] + for index, line in enumerate(lines): + if not line.startswith('#:'): + if codes: + # Collect the lines of the test case + testcase.append(line) + continue + if codes and index > 0: + label = '%s:%s:1' % (filename, line_offset + 1) + codes = [c for c in codes if c != 'Okay'] + # Run the checker + errors = Checker(filename, testcase).check_all(codes, line_offset) + # Check if the expected errors were found + for code in codes: + if not options.counters.get(code): + errors += 1 + message('%s: error %s not found' % (label, code)) + if options.verbose and not errors: + message('%s: passed (%s)' % (label, ' '.join(codes))) + # Keep showing errors for multiple tests + reset_counters() + # output the real line numbers + line_offset = index + # configure the expected errors + codes = line.split()[1:] + # empty the test case buffer + del testcase[:] + + +def selftest(): + """ + Test all check functions with test cases in docstrings. + """ + count_passed = 0 + count_failed = 0 + checks = options.physical_checks + options.logical_checks + for name, check, argument_names in checks: + for line in check.__doc__.splitlines(): + line = line.lstrip() + match = SELFTEST_REGEX.match(line) + if match is None: + continue + code, source = match.groups() + checker = Checker(None) + for part in source.split(r'\n'): + part = part.replace(r'\t', '\t') + part = part.replace(r'\s', ' ') + checker.lines.append(part + '\n') + options.quiet = 2 + checker.check_all() + error = None + if code == 'Okay': + if len(options.counters) > len(BENCHMARK_KEYS): + codes = [key for key in options.counters.keys() + if key not in BENCHMARK_KEYS] + error = "incorrectly found %s" % ', '.join(codes) + elif not options.counters.get(code): + error = "failed to find %s" % code + # Reset the counters + reset_counters() + if not error: + count_passed += 1 + else: + count_failed += 1 + if len(checker.lines) == 1: + print("pep8.py: %s: %s" % + (error, checker.lines[0].rstrip())) + else: + print("pep8.py: %s:" % error) + for line in checker.lines: + print(line.rstrip()) + if options.verbose: + print("%d passed and %d failed." % (count_passed, count_failed)) + if count_failed: + print("Test failed.") + else: + print("Test passed.") + + +def process_options(arglist=None): + """ + Process options passed either via arglist or via command line args. + """ + global options, args + parser = OptionParser(version=__version__, + usage="%prog [options] input ...") + parser.add_option('-v', '--verbose', default=0, action='count', + help="print status messages, or debug with -vv") + parser.add_option('-q', '--quiet', default=0, action='count', + help="report only file names, or nothing with -qq") + parser.add_option('-r', '--repeat', action='store_true', + help="show all occurrences of the same error") + parser.add_option('--exclude', metavar='patterns', default=DEFAULT_EXCLUDE, + help="exclude files or directories which match these " + "comma separated patterns (default: %s)" % + DEFAULT_EXCLUDE) + parser.add_option('--filename', metavar='patterns', default='*.py', + help="when parsing directories, only check filenames " + "matching these comma separated patterns (default: " + "*.py)") + parser.add_option('--select', metavar='errors', default='', + help="select errors and warnings (e.g. E,W6)") + parser.add_option('--ignore', metavar='errors', default='', + help="skip errors and warnings (e.g. E4,W)") + parser.add_option('--show-source', action='store_true', + help="show source code for each error") + parser.add_option('--show-pep8', action='store_true', + help="show text of PEP 8 for each error") + parser.add_option('--statistics', action='store_true', + help="count errors and warnings") + parser.add_option('--count', action='store_true', + help="print total number of errors and warnings " + "to standard error and set exit code to 1 if " + "total is not null") + parser.add_option('--benchmark', action='store_true', + help="measure processing speed") + parser.add_option('--testsuite', metavar='dir', + help="run regression tests from dir") + parser.add_option('--doctest', action='store_true', + help="run doctest on myself") + options, args = parser.parse_args(arglist) + if options.testsuite: + args.append(options.testsuite) + if not args and not options.doctest: + parser.error('input not specified') + options.prog = os.path.basename(sys.argv[0]) + options.exclude = options.exclude.split(',') + for index in range(len(options.exclude)): + options.exclude[index] = options.exclude[index].rstrip('/') + if options.filename: + options.filename = options.filename.split(',') + if options.select: + options.select = options.select.split(',') + else: + options.select = [] + if options.ignore: + options.ignore = options.ignore.split(',') + elif options.select: + # Ignore all checks which are not explicitly selected + options.ignore = [''] + elif options.testsuite or options.doctest: + # For doctest and testsuite, all checks are required + options.ignore = [] + else: + # The default choice: ignore controversial checks + options.ignore = DEFAULT_IGNORE.split(',') + options.physical_checks = find_checks('physical_line') + options.logical_checks = find_checks('logical_line') + options.counters = dict.fromkeys(BENCHMARK_KEYS, 0) + options.messages = {} + return options, args + + +def _main(): + """ + Parse options and run checks on Python source. + """ + options, args = process_options() + if options.doctest: + import doctest + doctest.testmod(verbose=options.verbose) + selftest() + if options.testsuite: + runner = run_tests + else: + runner = input_file + start_time = time.time() + for path in args: + if os.path.isdir(path): + input_dir(path, runner=runner) + elif not excluded(path): + options.counters['files'] += 1 + runner(path) + elapsed = time.time() - start_time + if options.statistics: + print_statistics() + if options.benchmark: + print_benchmark(elapsed) + count = get_count() + if count: + if options.count: + sys.stderr.write(str(count) + '\n') + sys.exit(1) + + +if __name__ == '__main__': + _main()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/PluginPep8Checker.py Sun Jan 09 18:16:46 2011 +0100 @@ -0,0 +1,278 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2011 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the PEP 8 Checker plugin. +""" + +import os + +from PyQt4.QtCore import QObject + +from E5Gui.E5Application import e5App + +from E5Gui.E5Action import E5Action + +from CheckerPlugins.Pep8.Pep8Dialog import Pep8Dialog + +import Preferences + +# Start-Of-Header +name = "PEP 8 Checker Plugin" +author = "Detlev Offenbach <detlev@die-offenbachs.de>" +autoactivate = True +deactivateable = True +version = "5.1.0" +className = "Pep8CheckerPlugin" +packageName = "__core__" +shortDescription = "Show the PEP 8 Checker dialog." +longDescription = """This plugin implements the PEP 8 Checker dialog.""" \ + """ PEP 8 Checker is used to check Python source files for compliance""" \ + """ to the conventions given in PEP 8.""" +pyqtApi = 2 +# End-Of-Header + +error = "" + +class Pep8CheckerPlugin(QObject): + """ + Class implementing the PEP 8 Checker plugin. + """ + def __init__(self, ui): + """ + Constructor + + @param ui reference to the user interface object (UI.UserInterface) + """ + QObject.__init__(self, ui) + self.__ui = ui + self.__initialize() + + def __initialize(self): + """ + Private slot to (re)initialize the plugin. + """ + self.__projectAct = None + self.__projectPep8CheckerDialog = None + + self.__projectBrowserAct = None + self.__projectBrowserMenu = None + self.__projectBrowserPep8CheckerDialog = None + + self.__editors = [] + self.__editorAct = None + self.__editorPep8CheckerDialog = None + + def activate(self): + """ + Public method to activate this plugin. + + @return tuple of None and activation status (boolean) + """ + menu = e5App().getObject("Project").getMenu("Checks") + if menu: + self.__projectAct = E5Action(self.trUtf8('Check PEP 8 Compliance'), + self.trUtf8('PEP &8 Compliance...'), 0, 0, + self, 'project_check_pep8') + self.__projectAct.setStatusTip( + self.trUtf8('Check PEP 8 compliance.')) + self.__projectAct.setWhatsThis(self.trUtf8( + """<b>Check PEP 8 Compliance...</b>""" + """<p>This checks Python files for compliance to the""" + """ conventions given in PEP 8.</p>""" + )) + self.__projectAct.triggered[()].connect(self.__projectPep8Check) + e5App().getObject("Project").addE5Actions([self.__projectAct]) + menu.addAction(self.__projectAct) + + self.__editorAct = E5Action(self.trUtf8('Check PEP 8 Compliance'), + self.trUtf8('PEP &8 Compliance...'), 0, 0, + self, "") + self.__editorAct.setWhatsThis(self.trUtf8( + """<b>Check PEP 8 Compliance...</b>""" + """<p>This checks Python files for compliance to the""" + """ conventions given in PEP 8.</p>""" + )) + self.__editorAct.triggered[()].connect(self.__editorPep8Check) + + e5App().getObject("Project").showMenu.connect(self.__projectShowMenu) + e5App().getObject("ProjectBrowser").getProjectBrowser("sources")\ + .showMenu.connect(self.__projectBrowserShowMenu) + e5App().getObject("ViewManager").editorOpenedEd.connect( + self.__editorOpened) + e5App().getObject("ViewManager").editorClosedEd.connect( + self.__editorClosed) + + for editor in e5App().getObject("ViewManager").getOpenEditors(): + self.__editorOpened(editor) + + return None, True + + def deactivate(self): + """ + Public method to deactivate this plugin. + """ + e5App().getObject("Project").showMenu.disconnect( + self.__projectShowMenu) + e5App().getObject("ProjectBrowser").getProjectBrowser("sources")\ + .showMenu.disconnect(self.__projectBrowserShowMenu) + e5App().getObject("ViewManager").editorOpenedEd.disconnect( + self.__editorOpened) + e5App().getObject("ViewManager").editorClosedEd.disconnect( + self.__editorClosed) + + menu = e5App().getObject("Project").getMenu("Checks") + if menu: + menu.removeAction(self.__projectAct) + + if self.__projectBrowserMenu: + if self.__projectBrowserAct: + self.__projectBrowserMenu.removeAction( + self.__projectBrowserAct) + + for editor in self.__editors: + editor.showMenu.disconnect(self.__editorShowMenu) + menu = editor.getMenu("Checks") + if menu is not None: + menu.removeAction(self.__editorAct) + + self.__initialize() + + def __projectShowMenu(self, menuName, menu): + """ + Private slot called, when the the project menu or a submenu is + about to be shown. + + @param menuName name of the menu to be shown (string) + @param menu reference to the menu (QMenu) + """ + if menuName == "Checks" and self.__projectAct is not None: + self.__projectAct.setEnabled( + e5App().getObject("Project").getProjectLanguage() in \ + ["Python3"]) +## ["Python3", "Python2", "Python"]) + + def __projectBrowserShowMenu(self, menuName, menu): + """ + Private slot called, when the the project browser menu or a submenu is + about to be shown. + + @param menuName name of the menu to be shown (string) + @param menu reference to the menu (QMenu) + """ + if menuName == "Checks" and \ + e5App().getObject("Project").getProjectLanguage() in \ + ["Python3"]: +## ["Python3", "Python2", "Python"]: + self.__projectBrowserMenu = menu + if self.__projectBrowserAct is None: + self.__projectBrowserAct = E5Action( + self.trUtf8('Check PEP 8 Compliance'), + self.trUtf8('PEP &8 Compliance...'), 0, 0, + self, "") + self.__projectBrowserAct.setWhatsThis(self.trUtf8( + """<b>Check PEP 8 Compliance...</b>""" + """<p>This checks Python files for compliance to the""" + """ conventions given in PEP 8.</p>""" + )) + self.__projectBrowserAct.triggered[()].connect( + self.__projectBrowserPep8Check) + if not self.__projectBrowserAct in menu.actions(): + menu.addAction(self.__projectBrowserAct) + + def __projectPep8Check(self): + """ + Public slot used to check the project files for PEP 8 compliance. + """ + project = e5App().getObject("Project") + project.saveAllScripts() + ppath = project.getProjectPath() + files = [os.path.join(ppath, file) \ + for file in project.pdata["SOURCES"] \ + if file.endswith( + tuple(Preferences.getPython("Python3Extensions")))] +## tuple(Preferences.getPython("Python3Extensions")) + +## tuple(Preferences.getPython("PythonExtensions")))] + + self.__projectPep8CheckerDialog = Pep8Dialog() + self.__projectPep8CheckerDialog.show() + self.__projectPep8CheckerDialog.prepare(files, project) + + def __projectBrowserPep8Check(self): + """ + Private method to handle the PEP 8 check context menu action of + the project sources browser. + """ + browser = e5App().getObject("ProjectBrowser")\ + .getProjectBrowser("sources") + itm = browser.model().item(browser.currentIndex()) + try: + fn = itm.fileName() + isDir = False + except AttributeError: + fn = itm.dirName() + isDir = True + + self.__projectBrowserPep8CheckerDialog = Pep8Dialog() + self.__projectBrowserPep8CheckerDialog.show() + if isDir: + self.__projectBrowserPep8CheckerDialog.start( + fn, save = True) + else: + self.__projectBrowserPep8CheckerDialog.start( + fn, save = True, repeat = True) + + def __editorOpened(self, editor): + """ + Private slot called, when a new editor was opened. + + @param editor reference to the new editor (QScintilla.Editor) + """ + menu = editor.getMenu("Checks") + if menu is not None: + menu.addAction(self.__editorAct) + editor.showMenu.connect(self.__editorShowMenu) + self.__editors.append(editor) + + def __editorClosed(self, editor): + """ + Private slot called, when an editor was closed. + + @param editor reference to the editor (QScintilla.Editor) + """ + try: + self.__editors.remove(editor) + except ValueError: + pass + + def __editorShowMenu(self, menuName, menu, editor): + """ + Private slot called, when the the editor context menu or a submenu is + about to be shown. + + @param menuName name of the menu to be shown (string) + @param menu reference to the menu (QMenu) + @param editor reference to the editor + """ + if menuName == "Checks": + if not self.__editorAct in menu.actions(): + menu.addAction(self.__editorAct) + self.__editorAct.setEnabled(editor.isPy3File()) +## self.__editorAct.setEnabled(editor.isPy3File() or editor.isPy2File()) + + def __editorPep8Check(self): + """ + Private slot to handle the PEP 8 check context menu action + of the editors. + """ + editor = e5App().getObject("ViewManager").activeWindow() + if editor is not None: + self.__editorPep8CheckerDialog = Pep8Dialog() + self.__editorPep8CheckerDialog.show() + self.__editorPep8CheckerDialog.start( + editor.getFileName(), + codestring = editor.text(), + save = True, + repeat = True)
--- a/QScintilla/Editor.py Sun Jan 09 14:25:16 2011 +0100 +++ b/QScintilla/Editor.py Sun Jan 09 18:16:46 2011 +0100 @@ -315,7 +315,7 @@ self.addClone(editor) editor.addClone(self) - self.gotoLine(0) + self.gotoLine(1) # set the text display again self.__setTextDisplay() @@ -3194,13 +3194,14 @@ else: self.__indentLine(True) - def gotoLine(self, line): + def gotoLine(self, line, pos = 1): """ Public slot to jump to the beginning of a line. @param line line number to go to (integer) - """ - self.setCursorPosition(line - 1, 0) + @keyparam pos position in line to go to (integer) + """ + self.setCursorPosition(line - 1, pos - 1) self.ensureVisible(line) ############################################################################ @@ -4574,8 +4575,10 @@ """ Public method to toggle a flakes warning indicator. + Note: This method is used to set PEP 8 warnings as well. + @param line line number of the flakes warning - @param erwarningror flag indicating if the warning marker should be + @param warning flag indicating if the warning marker should be set or deleted (boolean) @param msg warning message (string) """
--- a/Utilities/__init__.py Sun Jan 09 14:25:16 2011 +0100 +++ b/Utilities/__init__.py Sun Jan 09 18:16:46 2011 +0100 @@ -453,7 +453,10 @@ @return dictionary of string, boolean, complex, float and int """ flags = {} - lines = text.splitlines() + if isinstance(text, str): + lines = text.splitlines() + else: + lines = text for line in reversed(lines): index = line.find("eflag:") if index == -1:
--- a/ViewManager/ViewManager.py Sun Jan 09 14:25:16 2011 +0100 +++ b/ViewManager/ViewManager.py Sun Jan 09 18:16:46 2011 +0100 @@ -3099,7 +3099,8 @@ self.__setSbFile() - def openSourceFile(self, fn, lineno = None, filetype = "", selStart = 0, selEnd = 0): + def openSourceFile(self, fn, lineno = None, filetype = "", + selStart = 0, selEnd = 0, pos = 0): """ Public slot to display a file in an editor. @@ -3120,7 +3121,7 @@ if lineno is not None and lineno >= 0: editor.ensureVisibleTop(lineno) - editor.gotoLine(lineno) + editor.gotoLine(lineno, pos) if selStart != selEnd: editor.setSelection(lineno - 1, selStart, lineno - 1, selEnd)
--- a/changelog Sun Jan 09 14:25:16 2011 +0100 +++ b/changelog Sun Jan 09 18:16:46 2011 +0100 @@ -4,6 +4,7 @@ - bug fixes - made the toolbars of the initial layout more minimalistic - merged "Save to Project" into "Save" and "Save As...". +- added a checker for PEP 8 compliance Version 5.1-snapshot-20110106: - bug fixes @@ -40,7 +41,8 @@ - bug fixes - converted all signal/slot code to use the new API - added action to copy the editor path to the clipboard to the tab context menu -- added code to adjust the cursor flash time of the editor to the global settings +- added code to adjust the cursor flash time of the editor to the global + settings - added code to show hidden files in the various browsers - added an editor action to join the current line with the next one - added code to cope with Linux distributor's usage of KDE wrapper dialogs @@ -49,11 +51,12 @@ - changed all calls to QMessageBox to some eric5 replacements and convenience functions - added a wizard for the eric5 message box (E5MessageBox) -- added filename filters to the code metrics, syntax checker and tabnanny dialogs +- added filename filters to the code metrics, syntax checker and tabnanny + dialogs - changed XML handling code to use QXmlStreamReader and QXmlStreamWriter - added use of compositing modes to the icon editor -- modified install script such, that it allows an installation from source as well. - The situation will be determined automatically. +- modified install script such, that it allows an installation from source as + well. The situation will be determined automatically. Version 5.1-snapshot-20100718: - bug fixes @@ -81,13 +84,14 @@ - added code to save the editor zoom factor in the session file - added code to configure the zoom factor a file is opened with - added code to update the file browser window (mostly) automatically -- added code to update the Others tab of the project browser (mostly) automatically +- added code to update the Others tab of the project browser (mostly) + automatically - added a menu to the highlighting styles config page to change individual aspects of a font only - changed code to improve development on multiple platforms - added code to show the keyboard shortcut to the tooltip of an action -- changed the Find in Files dialog to remember the history of the search string, - replace string and the search directory +- changed the Find in Files dialog to remember the history of the search + string, replace string and the search directory - added code to enhance the proxy configuration and removed the usage of QHttp Version 5.0-snapshot-20100508:
--- a/eric5.e4p Sun Jan 09 14:25:16 2011 +0100 +++ b/eric5.e4p Sun Jan 09 18:16:46 2011 +0100 @@ -843,6 +843,12 @@ <Source>UtilitiesPython2/Tabnanny.py</Source> <Source>UtilitiesPython2/TabnannyChecker.py</Source> <Source>ThirdParty/Pygments/pygments/lexers/hdl.py</Source> + <Source>Plugins/CheckerPlugins/Pep8/__init__.py</Source> + <Source>Plugins/CheckerPlugins/Pep8/pep8.py</Source> + <Source>Plugins/CheckerPlugins/Pep8/Pep8Dialog.py</Source> + <Source>Plugins/CheckerPlugins/Pep8/Pep8Checker.py</Source> + <Source>Plugins/PluginPep8Checker.py</Source> + <Source>Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.py</Source> </Sources> <Forms> <Form>PyUnit/UnittestDialog.ui</Form> @@ -1077,6 +1083,8 @@ <Form>Helpviewer/Download/DownloadManager.ui</Form> <Form>Preferences/ConfigurationPages/TrayStarterPage.ui</Form> <Form>Helpviewer/SslCertificatesDialog.ui</Form> + <Form>Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui</Form> + <Form>Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui</Form> </Forms> <Translations> <Translation>i18n/eric5_cs.qm</Translation>
--- a/i18n/eric5_cs.ts Sun Jan 09 14:25:16 2011 +0100 +++ b/i18n/eric5_cs.ts Sun Jan 09 18:16:46 2011 +0100 @@ -6824,7 +6824,7 @@ <translation>Editovat breakpoint...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4023"/> + <location filename="QScintilla/Editor.py" line="4024"/> <source>Enable breakpoint</source> <translation>Aktivovat breakpoint</translation> </message> @@ -6914,202 +6914,202 @@ <translation>Soubor je modifikován</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion</source> <translation>Autodoplňování</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion is not available because there is no autocompletion source set.</source> <translation>Autodoplňování není dostupné protože zdrojová část autodoplňování nebyla nalezena.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4026"/> + <location filename="QScintilla/Editor.py" line="4027"/> <source>Disable breakpoint</source> <translation>Deaktivovat breakpoint</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Code Coverage</source> <translation>Pokrytí kódu</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Please select a coverage file</source> <translation>Prosím, vyberte soubor s pokrytím kódu</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>Show Code Coverage Annotations</source> <translation>Zobrazit poznámky pokrytí kódu</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4351"/> + <location filename="QScintilla/Editor.py" line="4352"/> <source>All lines have been covered.</source> <translation>Všechny řádky byly pokryty.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>There is no coverage file available.</source> <translation>Soubor s pokrytím není dostupný.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Profile Data</source> <translation>Profilovat data</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Please select a profile file</source> <translation>Prosím, vyberte soubor s profilem</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>Syntax Error</source> <translation>Chyba syntaxe</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>No syntax error message available.</source> <translation>Hlášení syntaktické chyby není dostupné.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Macro Name</source> <translation>Název makra</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Select a macro name:</source> <translation>Vyberte název makra:</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4815"/> + <location filename="QScintilla/Editor.py" line="4818"/> <source>Load macro file</source> <translation>Načíst soubor makra</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Macro files (*.macro)</source> <translation>Macro soubory (*.macro)</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source>Error loading macro</source> <translation>Chyba při načítání makra</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Save macro file</source> <translation>Uložit soubor s makrem</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source>Save macro</source> <translation>Uložit makro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source>Error saving macro</source> <translation>Chyba při ukládání makra</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Start Macro Recording</source> <translation>Spustit záznam makra</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Macro recording is already active. Start new?</source> <translation>Nahrávání makra již probíhá. Spustit nové?</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Macro Recording</source> <translation>Záznam makra</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Enter name of the macro:</source> <translation>Vložte název makra:</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5041"/> + <location filename="QScintilla/Editor.py" line="5044"/> <source><br><b>Warning:</b> You will loose your changes upon reopening it.</source> <translation><br><b>Pozor:</b> Ztratíte všechny změny pokud jej znovu otevřete.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5045"/> + <location filename="QScintilla/Editor.py" line="5048"/> <source>File changed</source> <translation>Soubor změněn</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source>Drop Error</source> <translation>Zahodit chybu</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5259"/> + <location filename="QScintilla/Editor.py" line="5262"/> <source>Resources</source> <translation>Zdroje</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5261"/> + <location filename="QScintilla/Editor.py" line="5264"/> <source>Add file...</source> <translation>Přidat soubor...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5263"/> + <location filename="QScintilla/Editor.py" line="5266"/> <source>Add files...</source> <translation>Přidat soubory...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5265"/> + <location filename="QScintilla/Editor.py" line="5268"/> <source>Add aliased file...</source> <translation>Přidat zástupce souboru...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5267"/> - <source>Add localized resource...</source> - <translation>Přidat lokalizované resource...</translation> - </message> - <message> <location filename="QScintilla/Editor.py" line="5270"/> + <source>Add localized resource...</source> + <translation>Přidat lokalizované resource...</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5273"/> <source>Add resource frame</source> <translation>Přidat resource frame</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5288"/> + <location filename="QScintilla/Editor.py" line="5291"/> <source>Add file resource</source> <translation>Přidat soubor resource</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5304"/> + <location filename="QScintilla/Editor.py" line="5307"/> <source>Add file resources</source> <translation>Přidat soubory resource</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5331"/> + <location filename="QScintilla/Editor.py" line="5334"/> <source>Add aliased file resource</source> <translation>Přidat zástupce souboru resource</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5392"/> + <location filename="QScintilla/Editor.py" line="5395"/> <source>Package Diagram</source> <translation>Diagram balíčku</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5392"/> + <location filename="QScintilla/Editor.py" line="5395"/> <source>Include class attributes?</source> <translation>Včetně atributů třídy?</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5421"/> + <location filename="QScintilla/Editor.py" line="5424"/> <source>Application Diagram</source> <translation>Diagram aplikace</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5421"/> + <location filename="QScintilla/Editor.py" line="5424"/> <source>Include module names?</source> <translation>Včetně jmen modulů?</translation> </message> @@ -7129,12 +7129,12 @@ <translation>Nebyl zadán forám exportu. Zrušeno....</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Imports Diagram</source> <translation>Importovat diagram</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Include imports from external modules?</source> <translation>Zahrnout importy z externích modulů?</translation> </message> @@ -7209,7 +7209,7 @@ <translation>Použít Pygments lexer.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5653"/> + <location filename="QScintilla/Editor.py" line="5656"/> <source>Check spelling...</source> <translation>Zatrhnout kontrolu...</translation> </message> @@ -7219,12 +7219,12 @@ <translation>Zatrhnout výběr kontroly...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5655"/> + <location filename="QScintilla/Editor.py" line="5658"/> <source>Add to dictionary</source> <translation>Přidat do slovníku</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5657"/> + <location filename="QScintilla/Editor.py" line="5660"/> <source>Ignore All</source> <translation>Ignorovat vše</translation> </message> @@ -7269,12 +7269,12 @@ <translation type="obsolete"><p>Soubor <b>{0}</b> již existuje.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4829"/> + <location filename="QScintilla/Editor.py" line="4832"/> <source><p>The macro file <b>{0}</b> could not be read.</p></source> <translation><p>Soubor s makrem <b>{0}</b> nelze načíst.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source><p>The macro file <b>{0}</b> is corrupt.</p></source> <translation><p>Soubor s makrem <b>{0}</b> je poškozen.</p></translation> </message> @@ -7284,27 +7284,27 @@ <translation type="obsolete"><p>Soubor s makrem <b>{0}</b> již existuje.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source><p>The macro file <b>{0}</b> could not be written.</p></source> <translation><p>So souboru s makrem <b>{0}</b> nelze zapisovat.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5036"/> + <location filename="QScintilla/Editor.py" line="5039"/> <source><p>The file <b>{0}</b> has been changed while it was opened in eric5. Reread it?</p></source> <translation><p>Soubor <b>{0}</b> byl změněn po té co již byl načten do eric5. Znovu načíst?</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5124"/> + <location filename="QScintilla/Editor.py" line="5127"/> <source>{0} (ro)</source> <translation>{0} (ro)</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source><p><b>{0}</b> is not a file.</p></source> <translation><p><b>{0}</b> není soubor.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5331"/> + <location filename="QScintilla/Editor.py" line="5334"/> <source>Alias for file <b>{0}</b>:</source> <translation>Zástupce pro soubor <b>{0}</b>:</translation> </message> @@ -7329,12 +7329,12 @@ <translation>Vyčistit varování</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>py3flakes Warning</source> <translation>py3flakes varování</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>No py3flakes warning message available.</source> <translation>Varování py3flakes není dostupné.</translation> </message> @@ -7344,17 +7344,17 @@ <translation type="unfinished"><p>Soubor <b>{0}</b> již existuje.</p><p>Má se přepsat?</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source><p>The macro file <b>{0}</b> already exists. Overwrite it?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4732"/> + <location filename="QScintilla/Editor.py" line="4735"/> <source>Warning: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4738"/> + <location filename="QScintilla/Editor.py" line="4741"/> <source>Error: {0}</source> <translation type="unfinished">Chyby: {0}</translation> </message> @@ -23256,6 +23256,215 @@ </message> </context> <context> + <name>Pep8CheckerPlugin</name> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>Check PEP 8 Compliance</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>PEP &8 Compliance...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="79"/> + <source>Check PEP 8 compliance.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="175"/> + <source><b>Check PEP 8 Compliance...</b><p>This checks Python files for compliance to the conventions given in PEP 8.</p></source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Pep8CodeSelectionDialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="14"/> + <source>PEP 8 Message Codes</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="23"/> + <source>Select the message codes from the list:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="30"/> + <source>Select the message codes from this table</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="55"/> + <source>Code</source> + <translation type="unfinished">Kód</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="60"/> + <source>Message</source> + <translation type="unfinished">Zpráva</translation> + </message> +</context> +<context> + <name>Pep8Dialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="14"/> + <source>PEP 8 Check Result</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="17"/> + <source><b>PEP 8 Check Results</b> +<p>This dialog shows the results of the PEP 8 check. Double clicking an +entry will open an editor window and position the cursor at the respective line and position.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="34"/> + <source>Exclude Files:</source> + <translation type="unfinished">Nevkládat soubory:</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="41"/> + <source>Enter filename patterns of files to be excluded separated by a comma</source> + <translation type="unfinished">Zadejte patterny jmen souborů oddělené čárkami, které se nemají vkládat</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="48"/> + <source>Press to clear the filter edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="68"/> + <source>Press to start the PEP 8 check run</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="71"/> + <source>Start</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="78"/> + <source>Exclude Messages:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="92"/> + <source>Press to clear the exclude messages edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="149"/> + <source>Press to select the messages from a list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="152"/> + <source>...</source> + <translation type="unfinished">...</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="139"/> + <source>Press to clear the include messages edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="161"/> + <source>Select to repeat each message type</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="164"/> + <source>Repeat messages</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="209"/> + <source><b>Result List</b> +<p>This list shows the results of the PEP 8 check. Double clicking +an entry will open this entry in an editor window and position the cursor at +the respective line and position.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="225"/> + <source>File/Line</source> + <translation type="unfinished">Soubor/Řádek</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="230"/> + <source>Code</source> + <translation type="unfinished">Kód</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="235"/> + <source>Message</source> + <translation type="unfinished">Zpráva</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="243"/> + <source>Shows the progress of the PEP 8 check action</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="50"/> + <source>Show</source> + <translation type="unfinished">Zobrazit</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="52"/> + <source>Press to show all files containing an issue</source> + <translation type="unfinished">Stisknout pro zobrazení všech souborů, které obsahují problém</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="233"/> + <source>Error: {0}</source> + <translation type="unfinished">Chyby: {0}</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="286"/> + <source>No issues found.</source> + <translation type="unfinished">Žádné problémy nenalezeny.</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="85"/> + <source>Enter message codes or categories to be excluded separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="132"/> + <source>Enter message codes or categories to be included separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="184"/> + <source>Press to load the default values</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="187"/> + <source>Load Defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="194"/> + <source>Press to store the current values as defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="197"/> + <source>Store Defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="125"/> + <source>Included Messages:</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>PixmapDiagram</name> <message> <location filename="Graphics/PixmapDiagram.py" line="159"/> @@ -23973,17 +24182,17 @@ <context> <name>Preferences</name> <message> - <location filename="Preferences/__init__.py" line="896"/> + <location filename="Preferences/__init__.py" line="895"/> <source>Export Preferences</source> <translation>Předvolby exportu</translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Import Preferences</source> <translation>Předvolby importu</translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Properties File (*.ini);;All Files (*)</source> <translation type="unfinished"></translation> </message> @@ -29215,7 +29424,7 @@ <translation>Č.</translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source>Drop Error</source> <translation>Zahodit chybu</translation> </message> @@ -29292,7 +29501,7 @@ <translation>Shell jazyk "{0}" není podporován.</translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source><p><b>{0}</b> is not a file.</p></source> <translation><p><b>{0}</b> není soubor.</p></translation> </message> @@ -35533,7 +35742,7 @@ <translation>Stisknout pro zobrazení všech souborů, které obsahují problém</translation> </message> <message> - <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="253"/> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269"/> <source>No issues found.</source> <translation>Žádné problémy nenalezeny.</translation> </message> @@ -35562,6 +35771,11 @@ <source>Start</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="188"/> + <source>Error: {0}</source> + <translation type="unfinished">Chyby: {0}</translation> + </message> </context> <context> <name>SyntaxCheckerPlugin</name> @@ -35999,12 +36213,12 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="255"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="256"/> <source>Python2 interpreter not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="280"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="281"/> <source>Python2 interpreter did not finish within 15s.</source> <translation type="unfinished"></translation> </message> @@ -40706,17 +40920,17 @@ <context> <name>Utilities</name> <message> - <location filename="Utilities/__init__.py" line="956"/> + <location filename="Utilities/__init__.py" line="959"/> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>Můžete použít %-kódy a rezervovaná místa ve stringu. Podporované kódy jsou:<table><tr> <td>%C</td> <td>sloupec kurzoru v aktuálním editoru</td></tr><tr> <td>%D</td> <td>adresář v aktuálním editoru</td></tr><tr> <td>%F</td> <td>jméno souboru v aktuálním editoru</td></tr><tr> <td>%H</td> <td>home adresář aktuálního uživatele</td></tr><tr> <td>%L</td> <td>řádek s kurzorem v aktuálním editoru</td></tr><tr> <td>%P</td> <td>cesta aktuálního projektu</td></tr><tr> <td>%S</td> <td>vybraný text v aktuálním editoru</td></tr><tr> <td>%U</td> <td>uživatelské jméno aktuálního uživatele</td></tr><tr> <td>%%</td> <td>znak procenta</td></tr></table></p></translation> </message> <message> - <location filename="Utilities/__init__.py" line="1128"/> + <location filename="Utilities/__init__.py" line="1131"/> <source>Python2 interpreter not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Utilities/__init__.py" line="1173"/> + <location filename="Utilities/__init__.py" line="1176"/> <source>Python2 interpreter did not finish within 30s.</source> <translation type="unfinished"></translation> </message> @@ -43704,17 +43918,17 @@ <translation>Soubor změněn</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3605"/> + <location filename="ViewManager/ViewManager.py" line="3606"/> <source>&Clear</source> <translation>&Vyčistit</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3601"/> + <location filename="ViewManager/ViewManager.py" line="3602"/> <source>&Add</source> <translation>Přid&at</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3603"/> + <location filename="ViewManager/ViewManager.py" line="3604"/> <source>&Edit...</source> <translation>&Edit...</translation> </message> @@ -43938,17 +44152,17 @@ <translation><p>Soubor <b>{0}</b> obsahuje neuložené změny.</p></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3260"/> + <location filename="ViewManager/ViewManager.py" line="3261"/> <source>File: {0}</source> <translation>Soubor: {0}</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3264"/> + <location filename="ViewManager/ViewManager.py" line="3265"/> <source>Line: {0:5}</source> <translation>Řádek: {0:5}</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3269"/> + <location filename="ViewManager/ViewManager.py" line="3270"/> <source>Pos: {0:5}</source> <translation>Poz: {0:5}</translation> </message> @@ -44686,6 +44900,184 @@ </message> </context> <context> + <name>pep8</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="164"/> + <source>indentation contains mixed spaces and tabs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="166"/> + <source>indentation is not a multiple of four</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="168"/> + <source>expected an indented block</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="170"/> + <source>unexpected indentation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="172"/> + <source>indentation contains tabs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="174"/> + <source>whitespace after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="180"/> + <source>whitespace before '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="182"/> + <source>multiple spaces before operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="184"/> + <source>multiple spaces after operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="186"/> + <source>tab before operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="188"/> + <source>tab after operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="190"/> + <source>missing whitespace around operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="192"/> + <source>missing whitespace after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="194"/> + <source>multiple spaces after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="196"/> + <source>tab after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="198"/> + <source>no spaces around keyword / parameter equals</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="200"/> + <source>at least two spaces before inline comment</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="202"/> + <source>inline comment should start with '# '</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="204"/> + <source>trailing whitespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="206"/> + <source>no newline at end of file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="208"/> + <source>blank line contains whitespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="210"/> + <source>expected 1 blank line, found 0</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="212"/> + <source>expected 2 blank lines, found {0}</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="214"/> + <source>too many blank lines ({0})</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="216"/> + <source>blank lines found after function decorator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="218"/> + <source>blank line at end of file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="220"/> + <source>multiple imports on one line</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="222"/> + <source>line too long ({0} characters)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="224"/> + <source>.has_key() is deprecated, use 'in'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="226"/> + <source>deprecated form of raising exception</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="228"/> + <source>'<>' is deprecated, use '!='</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="230"/> + <source>backticks are deprecated, use 'repr()'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="232"/> + <source>multiple statements on one line (colon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="234"/> + <source>multiple statements on one line (semicolon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="264"/> + <source>no message for this code defined</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>py3Flakes</name> <message> <location filename="Utilities/py3flakes/messages.py" line="51"/>
--- a/i18n/eric5_de.ts Sun Jan 09 14:25:16 2011 +0100 +++ b/i18n/eric5_de.ts Sun Jan 09 18:16:46 2011 +0100 @@ -6567,12 +6567,12 @@ <translation>Drucken abgebrochen</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5045"/> + <location filename="QScintilla/Editor.py" line="5048"/> <source>File changed</source> <translation>Datei geändert</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5041"/> + <location filename="QScintilla/Editor.py" line="5044"/> <source><br><b>Warning:</b> You will loose your changes upon reopening it.</source> <translation><br><b>Warnung:</b> Vorgenommenen Änderungen gehen beim neu einlesen verloren.</translation> </message> @@ -6637,57 +6637,57 @@ <translation>Zurück zum letzten gesichert Zustand</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Macro Name</source> <translation>Makro Name</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Select a macro name:</source> <translation>Wähle einen Makro Namen:</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Macro files (*.macro)</source> <translation>Makro Dateien (*.macro)</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4815"/> + <location filename="QScintilla/Editor.py" line="4818"/> <source>Load macro file</source> <translation>Lade Makro Datei</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source>Error loading macro</source> <translation>Fehler beim Makro Laden</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Save macro file</source> <translation>Makro Datei schreiben</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source>Save macro</source> <translation>Makro speichern</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source>Error saving macro</source> <translation>Fehler beim Makro speichern</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Start Macro Recording</source> <translation>Makroaufzeichnung starten</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Macro Recording</source> <translation>Makroaufzeichnung</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Enter name of the macro:</source> <translation>Gib einen Namen für das Makro ein:</translation> </message> @@ -6747,32 +6747,32 @@ <translation>Haltepunkt bearbeiten...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4023"/> + <location filename="QScintilla/Editor.py" line="4024"/> <source>Enable breakpoint</source> <translation>Haltepunkt aktivieren</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4026"/> + <location filename="QScintilla/Editor.py" line="4027"/> <source>Disable breakpoint</source> <translation>Haltepunkt deaktivieren</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Code Coverage</source> <translation>Quelltext Abdeckung</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Please select a coverage file</source> <translation>Bitte wählen sie eine Datei mit Abdeckungsdaten</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Profile Data</source> <translation>Profildaten</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Please select a profile file</source> <translation>Bitte wählen sie eine Datei mit Profildaten</translation> </message> @@ -6782,12 +6782,12 @@ <translation>Autom. Vervollständigung aktiv</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion</source> <translation>Autom. Vervollständigung</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion is not available because there is no autocompletion source set.</source> <translation>Die automatische Vervollständigung ist nicht verfügbar, da keine Quelle gesetzt ist.</translation> </message> @@ -6822,7 +6822,7 @@ <translation>Autom. Speicherung aktiv</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source>Drop Error</source> <translation>Drop Fehler</translation> </message> @@ -6832,12 +6832,12 @@ <translation>Zeige Syntaxfehlermeldung</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>Syntax Error</source> <translation>Syntaxfehler</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>No syntax error message available.</source> <translation>Keine Syntaxfehlermeldung verfügbar.</translation> </message> @@ -6867,17 +6867,17 @@ <translation>Vorige nichtabgedeckte Zeile</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>Show Code Coverage Annotations</source> <translation>Zeilen ohne Abdeckung Markieren</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4351"/> + <location filename="QScintilla/Editor.py" line="4352"/> <source>All lines have been covered.</source> <translation>Alle Zeilen sind abgedeckt.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>There is no coverage file available.</source> <translation>Es gibt keine Datei mit Abdeckungsinformationen.</translation> </message> @@ -6887,22 +6887,22 @@ <translation><p>Die Datei <b>{0}</b> enthält ungesicherte Änderungen.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4829"/> + <location filename="QScintilla/Editor.py" line="4832"/> <source><p>The macro file <b>{0}</b> could not be read.</p></source> <translation><p>Die Makro Datei <b>{0}</b> kann nicht gelesen werden.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source><p>The macro file <b>{0}</b> is corrupt.</p></source> <translation><p>Die Makro Datei <b>{0}</b> ist zerstört.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source><p>The macro file <b>{0}</b> could not be written.</p></source> <translation><p>Die Makro Datei <b>{0}</b> kann nicht geschrieben werden.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source><p><b>{0}</b> is not a file.</p></source> <translation><p><b>{0}</b> ist keine Datei.</p></translation> </message> @@ -6947,82 +6947,82 @@ <translation>Keine Sprache</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5124"/> + <location filename="QScintilla/Editor.py" line="5127"/> <source>{0} (ro)</source> <translation>{0} (ro)</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5259"/> + <location filename="QScintilla/Editor.py" line="5262"/> <source>Resources</source> <translation>Resourcen</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5261"/> + <location filename="QScintilla/Editor.py" line="5264"/> <source>Add file...</source> <translation>Datei hinzufügen...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5263"/> + <location filename="QScintilla/Editor.py" line="5266"/> <source>Add files...</source> <translation>Dateien hinzufügen...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5265"/> + <location filename="QScintilla/Editor.py" line="5268"/> <source>Add aliased file...</source> <translation>Aliased Datei hinzufügen...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5267"/> - <source>Add localized resource...</source> - <translation>Lokalisierte Resource hinzufügen...</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5288"/> - <source>Add file resource</source> - <translation>Dateiresource hinzufügen</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5304"/> - <source>Add file resources</source> - <translation>Dateiresourcen hinzufügen</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5331"/> - <source>Add aliased file resource</source> - <translation>Aliased Dateiresourcen hinzufügen</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5331"/> - <source>Alias for file <b>{0}</b>:</source> - <translation>Alias für Datei <b>{0}</b>:</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5392"/> - <source>Package Diagram</source> - <translation>Package-Diagramm</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5392"/> - <source>Include class attributes?</source> - <translation>Klassenattribute anzeigen?</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5421"/> - <source>Application Diagram</source> - <translation>Applikations-Diagramm</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5421"/> - <source>Include module names?</source> - <translation>Modulnamen anzeigen?</translation> - </message> - <message> <location filename="QScintilla/Editor.py" line="5270"/> + <source>Add localized resource...</source> + <translation>Lokalisierte Resource hinzufügen...</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5291"/> + <source>Add file resource</source> + <translation>Dateiresource hinzufügen</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5307"/> + <source>Add file resources</source> + <translation>Dateiresourcen hinzufügen</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5334"/> + <source>Add aliased file resource</source> + <translation>Aliased Dateiresourcen hinzufügen</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5334"/> + <source>Alias for file <b>{0}</b>:</source> + <translation>Alias für Datei <b>{0}</b>:</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5395"/> + <source>Package Diagram</source> + <translation>Package-Diagramm</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5395"/> + <source>Include class attributes?</source> + <translation>Klassenattribute anzeigen?</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5424"/> + <source>Application Diagram</source> + <translation>Applikations-Diagramm</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5424"/> + <source>Include module names?</source> + <translation>Modulnamen anzeigen?</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5273"/> <source>Add resource frame</source> <translation>Resource Rahmen hinzufügen</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Macro recording is already active. Start new?</source> <translation>Eine Makroaufzeichnung ist bereits aktiv. Neu starten?</translation> </message> @@ -7077,12 +7077,12 @@ <translation>Kein Exportformat angegeben. Abbruch...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Imports Diagram</source> <translation>Imports Diagramm</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Include imports from external modules?</source> <translation>Imports externer Module anzeigen?</translation> </message> @@ -7162,7 +7162,7 @@ <translation>Wähle den anzuwendenden Pygments Lexer.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5653"/> + <location filename="QScintilla/Editor.py" line="5656"/> <source>Check spelling...</source> <translation>Rechtschreibprüfung...</translation> </message> @@ -7172,12 +7172,12 @@ <translation>Rechtschreibprüfung für Auswahl...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5655"/> + <location filename="QScintilla/Editor.py" line="5658"/> <source>Add to dictionary</source> <translation>Zum Wörterbuch hinzufügen</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5657"/> + <location filename="QScintilla/Editor.py" line="5660"/> <source>Ignore All</source> <translation>Alle ignorieren</translation> </message> @@ -7197,7 +7197,7 @@ <translation><p>Die Datei <b>{0}</b> konnte nicht gesichert werden.<br/>Grund: {1}</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5036"/> + <location filename="QScintilla/Editor.py" line="5039"/> <source><p>The file <b>{0}</b> has been changed while it was opened in eric5. Reread it?</p></source> <translation><p>Die Datei <b>{0}</b> wurde geändert, während sie in eric5 geöffnet war. Neu einlesen?</p></translation> </message> @@ -7222,12 +7222,12 @@ <translation>Warnungen löschen</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>py3flakes Warning</source> <translation>py3flakes Warnung</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>No py3flakes warning message available.</source> <translation>Keine Py3flakes Warnung verfügbar.</translation> </message> @@ -7237,17 +7237,17 @@ <translation><p>Die Datei <b>{0}</b> existiert bereits. Überschreiben?</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source><p>The macro file <b>{0}</b> already exists. Overwrite it?</p></source> <translation><p>Die Makro Datei <b>{0}</b> existiert bereits. Überschreiben?</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4732"/> + <location filename="QScintilla/Editor.py" line="4735"/> <source>Warning: {0}</source> <translation>Warnung: {0}</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4738"/> + <location filename="QScintilla/Editor.py" line="4741"/> <source>Error: {0}</source> <translation>Fehler: {0}</translation> </message> @@ -22909,6 +22909,221 @@ </message> </context> <context> + <name>Pep8CheckerPlugin</name> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>Check PEP 8 Compliance</source> + <translation>Prüfe Einhaltung von PEP 8</translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>PEP &8 Compliance...</source> + <translation>PEP &8 Einhaltung...</translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="79"/> + <source>Check PEP 8 compliance.</source> + <translation>Prüfe Einhaltung von PEP 8.</translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="175"/> + <source><b>Check PEP 8 Compliance...</b><p>This checks Python files for compliance to the conventions given in PEP 8.</p></source> + <translation><b>Prüfe Einhaltung von PEP 8...</b><p>Dies überprüft Python Dateien auf Einhaltung der Konventionen aus PEP 8.</p></translation> + </message> +</context> +<context> + <name>Pep8CodeSelectionDialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="14"/> + <source>PEP 8 Message Codes</source> + <translation>PEP 8 Nachrichtenschlüssel</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="23"/> + <source>Select the message codes from the list:</source> + <translation>Wähle die Nachrichtenschlüssel aus der Liste:</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="30"/> + <source>Select the message codes from this table</source> + <translation>Wähle die Nachrichtenschlüssel aus dieser Tabelle</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="55"/> + <source>Code</source> + <translation>Schlüssel</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="60"/> + <source>Message</source> + <translation>Nachricht</translation> + </message> +</context> +<context> + <name>Pep8Dialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="14"/> + <source>PEP 8 Check Result</source> + <translation>PEP 8 Prüfergebnisse</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="17"/> + <source><b>PEP 8 Check Results</b> +<p>This dialog shows the results of the PEP 8 check. Double clicking an +entry will open an editor window and position the cursor at the respective line and position.</p></source> + <translation><b>PEP 8 Prüfergebnisse</b> +<p>Dieser Dialog zeigt die Resultate der PEP 8 Prüfung. Ein Doppelklick auf +einen Eintrag öffnet ein Editorfenster und positioniert den Cursor auf die entsprechende +Zeile und Position.</p></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="34"/> + <source>Exclude Files:</source> + <translation>Ignoriere Dateien:</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="41"/> + <source>Enter filename patterns of files to be excluded separated by a comma</source> + <translation>Gib Dateimuster getrennt durch Komma von Dateien ein, die ignoriert werden sollen</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="48"/> + <source>Press to clear the filter edit</source> + <translation>Drücken, um den Filtertext zu löschen</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="68"/> + <source>Press to start the PEP 8 check run</source> + <translation>Drücken, um die PEP 8 Prüfung zu starten</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="71"/> + <source>Start</source> + <translation>Starten</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="78"/> + <source>Exclude Messages:</source> + <translation>Ignorierte Nachrichten:</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="92"/> + <source>Press to clear the exclude messages edit</source> + <translation>Drücken, um die Liste ignorierter Nachrichten zu löschen</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="149"/> + <source>Press to select the messages from a list</source> + <translation>Drücken, um die Nachrichten aus einer Liste zu wählen</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="152"/> + <source>...</source> + <translation>...</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="139"/> + <source>Press to clear the include messages edit</source> + <translation>Drücken, um die Liste ausgewählter Nachrichten zu löschen</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="161"/> + <source>Select to repeat each message type</source> + <translation>Auswählen, um Wiederholungen eines Nachrichtentyps zuzulassen</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="164"/> + <source>Repeat messages</source> + <translation>Nachrichten wiederholen</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="209"/> + <source><b>Result List</b> +<p>This list shows the results of the PEP 8 check. Double clicking +an entry will open this entry in an editor window and position the cursor at +the respective line and position.</p></source> + <translation><b>Resultatliste</b> +<p>Diese Liste zeigt die Resultate der PEP 8 Prüfung. Ein Doppelklick auf +einen Eintrag öffnet ein Editorfenster und positioniert den Cursor auf die entsprechende +Zeile und Position.</p></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="225"/> + <source>File/Line</source> + <translation>Datei/Zeile</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="230"/> + <source>Code</source> + <translation>Schlüssel</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="235"/> + <source>Message</source> + <translation>Nachricht</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="243"/> + <source>Shows the progress of the PEP 8 check action</source> + <translation>Zeigt den Fortschritt der PEP 8 Prüfung an</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="50"/> + <source>Show</source> + <translation>Zeige</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="52"/> + <source>Press to show all files containing an issue</source> + <translation>Drücken, um alle Dateien mit Problemen anzuzeigen</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="233"/> + <source>Error: {0}</source> + <translation>Fehler: {0}</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="286"/> + <source>No issues found.</source> + <translation>Keine Probleme gefunden.</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="85"/> + <source>Enter message codes or categories to be excluded separated by a comma</source> + <translation>Gib die Nachrichtenschlüssel oder -kategorien für auszuschließende Nachrichten durch Komma getrennt ein</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="132"/> + <source>Enter message codes or categories to be included separated by a comma</source> + <translation>Gib die Nachrichtenschlüssel oder -kategorien für ausgewählte Nachrichten durch Komma getrennt ein</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="184"/> + <source>Press to load the default values</source> + <translation>Drücken, um Standarwerte zu laden</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="187"/> + <source>Load Defaults</source> + <translation>Standards laden</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="194"/> + <source>Press to store the current values as defaults</source> + <translation>Drücken, um die aktuellen Werte als Standard zu speichern</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="197"/> + <source>Store Defaults</source> + <translation>Standards speichern</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="125"/> + <source>Included Messages:</source> + <translation>Ausgewählte Nachrichten:</translation> + </message> +</context> +<context> <name>PixmapDiagram</name> <message> <location filename="Graphics/PixmapDiagram.py" line="159"/> @@ -23625,17 +23840,17 @@ <context> <name>Preferences</name> <message> - <location filename="Preferences/__init__.py" line="896"/> + <location filename="Preferences/__init__.py" line="895"/> <source>Export Preferences</source> <translation>Konfiguration exportieren</translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Import Preferences</source> <translation>Konfiguration importieren</translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Properties File (*.ini);;All Files (*)</source> <translation>Properties Dateien (*.ini);;Alle Dateien (*)</translation> </message> @@ -28799,7 +29014,7 @@ <translation>Zurücksetzen und Löschen</translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source>Drop Error</source> <translation>Drop Fehler</translation> </message> @@ -28809,7 +29024,7 @@ <translation>Nr.</translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source><p><b>{0}</b> is not a file.</p></source> <translation><p><b>{0}</b> ist keine Datei.</p></translation> </message> @@ -35155,7 +35370,7 @@ <translation>Drücken, um alle Dateien mit Problemen anzuzeigen</translation> </message> <message> - <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="253"/> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269"/> <source>No issues found.</source> <translation>Keine Probleme gefunden.</translation> </message> @@ -35184,6 +35399,11 @@ <source>Start</source> <translation>Starten</translation> </message> + <message> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="188"/> + <source>Error: {0}</source> + <translation>Fehler: {0}</translation> + </message> </context> <context> <name>SyntaxCheckerPlugin</name> @@ -35620,12 +35840,12 @@ <translation>Starten</translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="255"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="256"/> <source>Python2 interpreter not configured.</source> <translation>Kein Python2 Interpreter konfiguriert.</translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="280"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="281"/> <source>Python2 interpreter did not finish within 15s.</source> <translation>Python2 Interpreter wurde nicht innerhalb von 15s beendet.</translation> </message> @@ -40290,17 +40510,17 @@ <context> <name>Utilities</name> <message> - <location filename="Utilities/__init__.py" line="956"/> + <location filename="Utilities/__init__.py" line="959"/> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>Sie können %-Codes als Platzhalter in der Eingabe verwenden. Unterstützte Codes sind:<table><tr><td>%C</td><td>Spalte des Cursor des aktuellen Editors</td></tr><tr><td>%D</td><td>Verzeichnis des aktuellen Editors</td></tr><tr><td>%F</td><td>Dateiname des aktuellen Editors</td></tr><tr><td>%H</td><td>Home-Verzeichnis des aktullen Nutzers</td></tr><tr><td>%L</td><td>Zeile des Cursor des aktuellen Editors</td></tr><tr><td>%P</td><td>Pfad des aktuellen Projektes</td></tr><tr><td>%S</td><td>selektierter Text des aktuellen Editors</td></tr><tr><td>%U</td><td>Nutzername des aktuellen Nutzers</td></tr><tr><td>%%</td><td>das Prozentzeichen</td></tr></table></p></translation> </message> <message> - <location filename="Utilities/__init__.py" line="1128"/> + <location filename="Utilities/__init__.py" line="1131"/> <source>Python2 interpreter not configured.</source> <translation>Kein Python2 Interpreter konfiguriert.</translation> </message> <message> - <location filename="Utilities/__init__.py" line="1173"/> + <location filename="Utilities/__init__.py" line="1176"/> <source>Python2 interpreter did not finish within 30s.</source> <translation>Python2 Interpreter wurde nicht innerhalb von 30s beendet.</translation> </message> @@ -41006,7 +41226,7 @@ <context> <name>ViewManager</name> <message> - <location filename="ViewManager/ViewManager.py" line="3260"/> + <location filename="ViewManager/ViewManager.py" line="3261"/> <source>File: {0}</source> <translation>Datei: {0}</translation> </message> @@ -42436,17 +42656,17 @@ <translation>Ge&merkte Dateien</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3605"/> + <location filename="ViewManager/ViewManager.py" line="3606"/> <source>&Clear</source> <translation>&Löschen</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3601"/> + <location filename="ViewManager/ViewManager.py" line="3602"/> <source>&Add</source> <translation>&Hinzufügen</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3603"/> + <location filename="ViewManager/ViewManager.py" line="3604"/> <source>&Edit...</source> <translation>&Bearbeiten...</translation> </message> @@ -43469,12 +43689,12 @@ <translation>Rechtschreibung</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3264"/> + <location filename="ViewManager/ViewManager.py" line="3265"/> <source>Line: {0:5}</source> <translation>Zeile: {0:5}</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3269"/> + <location filename="ViewManager/ViewManager.py" line="3270"/> <source>Pos: {0:5}</source> <translation>Pos: {0:5}</translation> </message> @@ -44182,6 +44402,184 @@ </message> </context> <context> + <name>pep8</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="164"/> + <source>indentation contains mixed spaces and tabs</source> + <translation>Einrückung enthält einen Mix aus Leerzeichen und Tabulatoren</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="166"/> + <source>indentation is not a multiple of four</source> + <translation>Einrückung ist kein Mehrfaches von Vier</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="168"/> + <source>expected an indented block</source> + <translation>ein eingerückter Block wurde erwartet</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="170"/> + <source>unexpected indentation</source> + <translation>unerwartete Einrückung</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="172"/> + <source>indentation contains tabs</source> + <translation>Einrückung enthält Tabulatoren</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="174"/> + <source>whitespace after '{0}'</source> + <translation>Leerzeichen nach '{0}'</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="180"/> + <source>whitespace before '{0}'</source> + <translation>Leerzeichen vor '{0}'</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="182"/> + <source>multiple spaces before operator</source> + <translation>mehrfache Leerzeichen vor Operator</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="184"/> + <source>multiple spaces after operator</source> + <translation>mehrfache Leerzeichen nach Operator</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="186"/> + <source>tab before operator</source> + <translation>Tabulator vor Operator</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="188"/> + <source>tab after operator</source> + <translation>Tabulator nach Operator</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="190"/> + <source>missing whitespace around operator</source> + <translation>fehlende Leerzeichen um Operator</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="192"/> + <source>missing whitespace after '{0}'</source> + <translation>fehlende Leerzeichen nach '{0}'</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="194"/> + <source>multiple spaces after '{0}'</source> + <translation>mehrfache Leerzeichen nach '{0}'</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="196"/> + <source>tab after '{0}'</source> + <translation>Tabulator nach '{0}'</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="198"/> + <source>no spaces around keyword / parameter equals</source> + <translation>keine Leerzeichen um Schlüsselwort- / Parameter-Gleichheitszeichen</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="200"/> + <source>at least two spaces before inline comment</source> + <translation>mindestens zwei Leerzeichen vor einem Inline-Kommentar</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="202"/> + <source>inline comment should start with '# '</source> + <translation>Inline-Kommentar sollte mit '# ' beginnen</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="204"/> + <source>trailing whitespace</source> + <translation>abschließende Leerzeichen</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="206"/> + <source>no newline at end of file</source> + <translation>kein Zeilenumbruch am Dateiende</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="208"/> + <source>blank line contains whitespace</source> + <translation>leere Zeile enthält Leerzeichen</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="210"/> + <source>expected 1 blank line, found 0</source> + <translation>erwartete 1 leere Zeile, 0 gefunden</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="212"/> + <source>expected 2 blank lines, found {0}</source> + <translation>erwartete 2 leere Zeilen, {0} gefunden</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="214"/> + <source>too many blank lines ({0})</source> + <translation>zu viele leere Zeilen ({0})</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="216"/> + <source>blank lines found after function decorator</source> + <translation>leere Zeilen nach Funktionen Dekorator gefunden</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="218"/> + <source>blank line at end of file</source> + <translation>leere Zeile am Dateiende</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="220"/> + <source>multiple imports on one line</source> + <translation>mehrfache Importe in einer Zeile</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="222"/> + <source>line too long ({0} characters)</source> + <translation>Zeile zu lang ({0} Zeichen)</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="224"/> + <source>.has_key() is deprecated, use 'in'</source> + <translation>.has_key() ist ungültig, verwende 'in'</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="226"/> + <source>deprecated form of raising exception</source> + <translation>ungültige Art Ausnahmen zu werfen</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="228"/> + <source>'<>' is deprecated, use '!='</source> + <translation>'<>' is ungültig, verwende '!='</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="230"/> + <source>backticks are deprecated, use 'repr()'</source> + <translation>Backticks sind ungültig, verwende 'repr()'</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="232"/> + <source>multiple statements on one line (colon)</source> + <translation>mehrere Anweisungen in einer Teile (Doppelpunkt)</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="234"/> + <source>multiple statements on one line (semicolon)</source> + <translation>mehrere Anweisungen in einer Teile (Semikolon)</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="264"/> + <source>no message for this code defined</source> + <translation>kein Schlüssel für diesen Code definiert</translation> + </message> +</context> +<context> <name>py3Flakes</name> <message> <location filename="Utilities/py3flakes/messages.py" line="51"/>
--- a/i18n/eric5_en.ts Sun Jan 09 14:25:16 2011 +0100 +++ b/i18n/eric5_en.ts Sun Jan 09 18:16:46 2011 +0100 @@ -6480,7 +6480,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5653"/> + <location filename="QScintilla/Editor.py" line="5656"/> <source>Check spelling...</source> <translation type="unfinished"></translation> </message> @@ -6730,7 +6730,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4023"/> + <location filename="QScintilla/Editor.py" line="4024"/> <source>Enable breakpoint</source> <translation type="unfinished"></translation> </message> @@ -6905,282 +6905,282 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion is not available because there is no autocompletion source set.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4026"/> + <location filename="QScintilla/Editor.py" line="4027"/> <source>Disable breakpoint</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Code Coverage</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Please select a coverage file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>Show Code Coverage Annotations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4351"/> + <location filename="QScintilla/Editor.py" line="4352"/> <source>All lines have been covered.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>There is no coverage file available.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Profile Data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Please select a profile file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>Syntax Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>No syntax error message available.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>py3flakes Warning</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>No py3flakes warning message available.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Macro Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Select a macro name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4815"/> + <location filename="QScintilla/Editor.py" line="4818"/> <source>Load macro file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Macro files (*.macro)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source>Error loading macro</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4829"/> + <location filename="QScintilla/Editor.py" line="4832"/> <source><p>The macro file <b>{0}</b> could not be read.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source><p>The macro file <b>{0}</b> is corrupt.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Save macro file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source>Save macro</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source><p>The macro file <b>{0}</b> already exists. Overwrite it?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source>Error saving macro</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source><p>The macro file <b>{0}</b> could not be written.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Start Macro Recording</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Macro recording is already active. Start new?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Macro Recording</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Enter name of the macro:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5036"/> + <location filename="QScintilla/Editor.py" line="5039"/> <source><p>The file <b>{0}</b> has been changed while it was opened in eric5. Reread it?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5041"/> + <location filename="QScintilla/Editor.py" line="5044"/> <source><br><b>Warning:</b> You will loose your changes upon reopening it.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5045"/> + <location filename="QScintilla/Editor.py" line="5048"/> <source>File changed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5124"/> + <location filename="QScintilla/Editor.py" line="5127"/> <source>{0} (ro)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source>Drop Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source><p><b>{0}</b> is not a file.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5259"/> + <location filename="QScintilla/Editor.py" line="5262"/> <source>Resources</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5261"/> + <location filename="QScintilla/Editor.py" line="5264"/> <source>Add file...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5263"/> + <location filename="QScintilla/Editor.py" line="5266"/> <source>Add files...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5265"/> + <location filename="QScintilla/Editor.py" line="5268"/> <source>Add aliased file...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5267"/> - <source>Add localized resource...</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="QScintilla/Editor.py" line="5270"/> + <source>Add localized resource...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5273"/> <source>Add resource frame</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5288"/> + <location filename="QScintilla/Editor.py" line="5291"/> <source>Add file resource</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5304"/> + <location filename="QScintilla/Editor.py" line="5307"/> <source>Add file resources</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5331"/> + <location filename="QScintilla/Editor.py" line="5334"/> <source>Add aliased file resource</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5331"/> + <location filename="QScintilla/Editor.py" line="5334"/> <source>Alias for file <b>{0}</b>:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5392"/> + <location filename="QScintilla/Editor.py" line="5395"/> <source>Package Diagram</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5392"/> + <location filename="QScintilla/Editor.py" line="5395"/> <source>Include class attributes?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Imports Diagram</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Include imports from external modules?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5421"/> + <location filename="QScintilla/Editor.py" line="5424"/> <source>Application Diagram</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5421"/> + <location filename="QScintilla/Editor.py" line="5424"/> <source>Include module names?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5655"/> + <location filename="QScintilla/Editor.py" line="5658"/> <source>Add to dictionary</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5657"/> + <location filename="QScintilla/Editor.py" line="5660"/> <source>Ignore All</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4732"/> + <location filename="QScintilla/Editor.py" line="4735"/> <source>Warning: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4738"/> + <location filename="QScintilla/Editor.py" line="4741"/> <source>Error: {0}</source> <translation type="unfinished"></translation> </message> @@ -22794,6 +22794,215 @@ </message> </context> <context> + <name>Pep8CheckerPlugin</name> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>Check PEP 8 Compliance</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>PEP &8 Compliance...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="79"/> + <source>Check PEP 8 compliance.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="175"/> + <source><b>Check PEP 8 Compliance...</b><p>This checks Python files for compliance to the conventions given in PEP 8.</p></source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Pep8CodeSelectionDialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="14"/> + <source>PEP 8 Message Codes</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="23"/> + <source>Select the message codes from the list:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="30"/> + <source>Select the message codes from this table</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="55"/> + <source>Code</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="60"/> + <source>Message</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Pep8Dialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="14"/> + <source>PEP 8 Check Result</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="17"/> + <source><b>PEP 8 Check Results</b> +<p>This dialog shows the results of the PEP 8 check. Double clicking an +entry will open an editor window and position the cursor at the respective line and position.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="34"/> + <source>Exclude Files:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="41"/> + <source>Enter filename patterns of files to be excluded separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="48"/> + <source>Press to clear the filter edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="68"/> + <source>Press to start the PEP 8 check run</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="71"/> + <source>Start</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="78"/> + <source>Exclude Messages:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="92"/> + <source>Press to clear the exclude messages edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="149"/> + <source>Press to select the messages from a list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="152"/> + <source>...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="139"/> + <source>Press to clear the include messages edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="161"/> + <source>Select to repeat each message type</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="164"/> + <source>Repeat messages</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="209"/> + <source><b>Result List</b> +<p>This list shows the results of the PEP 8 check. Double clicking +an entry will open this entry in an editor window and position the cursor at +the respective line and position.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="225"/> + <source>File/Line</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="230"/> + <source>Code</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="235"/> + <source>Message</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="243"/> + <source>Shows the progress of the PEP 8 check action</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="50"/> + <source>Show</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="52"/> + <source>Press to show all files containing an issue</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="233"/> + <source>Error: {0}</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="286"/> + <source>No issues found.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="85"/> + <source>Enter message codes or categories to be excluded separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="132"/> + <source>Enter message codes or categories to be included separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="184"/> + <source>Press to load the default values</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="187"/> + <source>Load Defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="194"/> + <source>Press to store the current values as defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="197"/> + <source>Store Defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="125"/> + <source>Included Messages:</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>PixmapDiagram</name> <message> <location filename="Graphics/PixmapDiagram.py" line="159"/> @@ -23505,17 +23714,17 @@ <context> <name>Preferences</name> <message> - <location filename="Preferences/__init__.py" line="896"/> + <location filename="Preferences/__init__.py" line="895"/> <source>Export Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Import Preferences</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Properties File (*.ini);;All Files (*)</source> <translation type="unfinished"></translation> </message> @@ -28643,12 +28852,12 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source>Drop Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source><p><b>{0}</b> is not a file.</p></source> <translation type="unfinished"></translation> </message> @@ -34851,10 +35060,15 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="253"/> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269"/> <source>No issues found.</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="188"/> + <source>Error: {0}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>SyntaxCheckerPlugin</name> @@ -35285,12 +35499,12 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="255"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="256"/> <source>Python2 interpreter not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="280"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="281"/> <source>Python2 interpreter did not finish within 15s.</source> <translation type="unfinished"></translation> </message> @@ -39917,17 +40131,17 @@ <context> <name>Utilities</name> <message> - <location filename="Utilities/__init__.py" line="956"/> + <location filename="Utilities/__init__.py" line="959"/> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="Utilities/__init__.py" line="1128"/> + <location filename="Utilities/__init__.py" line="1131"/> <source>Python2 interpreter not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Utilities/__init__.py" line="1173"/> + <location filename="Utilities/__init__.py" line="1176"/> <source>Python2 interpreter did not finish within 30s.</source> <translation type="unfinished"></translation> </message> @@ -43134,32 +43348,32 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3260"/> + <location filename="ViewManager/ViewManager.py" line="3261"/> <source>File: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3264"/> + <location filename="ViewManager/ViewManager.py" line="3265"/> <source>Line: {0:5}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3269"/> + <location filename="ViewManager/ViewManager.py" line="3270"/> <source>Pos: {0:5}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3605"/> + <location filename="ViewManager/ViewManager.py" line="3606"/> <source>&Clear</source> <translation type="unfinished"></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3601"/> + <location filename="ViewManager/ViewManager.py" line="3602"/> <source>&Add</source> <translation type="unfinished"></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3603"/> + <location filename="ViewManager/ViewManager.py" line="3604"/> <source>&Edit...</source> <translation type="unfinished"></translation> </message> @@ -43790,6 +44004,184 @@ </message> </context> <context> + <name>pep8</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="164"/> + <source>indentation contains mixed spaces and tabs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="166"/> + <source>indentation is not a multiple of four</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="168"/> + <source>expected an indented block</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="170"/> + <source>unexpected indentation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="172"/> + <source>indentation contains tabs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="174"/> + <source>whitespace after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="180"/> + <source>whitespace before '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="182"/> + <source>multiple spaces before operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="184"/> + <source>multiple spaces after operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="186"/> + <source>tab before operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="188"/> + <source>tab after operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="190"/> + <source>missing whitespace around operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="192"/> + <source>missing whitespace after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="194"/> + <source>multiple spaces after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="196"/> + <source>tab after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="198"/> + <source>no spaces around keyword / parameter equals</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="200"/> + <source>at least two spaces before inline comment</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="202"/> + <source>inline comment should start with '# '</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="204"/> + <source>trailing whitespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="206"/> + <source>no newline at end of file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="208"/> + <source>blank line contains whitespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="210"/> + <source>expected 1 blank line, found 0</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="212"/> + <source>expected 2 blank lines, found {0}</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="214"/> + <source>too many blank lines ({0})</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="216"/> + <source>blank lines found after function decorator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="218"/> + <source>blank line at end of file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="220"/> + <source>multiple imports on one line</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="222"/> + <source>line too long ({0} characters)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="224"/> + <source>.has_key() is deprecated, use 'in'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="226"/> + <source>deprecated form of raising exception</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="228"/> + <source>'<>' is deprecated, use '!='</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="230"/> + <source>backticks are deprecated, use 'repr()'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="232"/> + <source>multiple statements on one line (colon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="234"/> + <source>multiple statements on one line (semicolon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="264"/> + <source>no message for this code defined</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>py3Flakes</name> <message> <location filename="Utilities/py3flakes/messages.py" line="51"/>
--- a/i18n/eric5_es.ts Sun Jan 09 14:25:16 2011 +0100 +++ b/i18n/eric5_es.ts Sun Jan 09 18:16:46 2011 +0100 @@ -6732,7 +6732,7 @@ <translation>Editar punto de interrupción...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4023"/> + <location filename="QScintilla/Editor.py" line="4024"/> <source>Enable breakpoint</source> <translation>Activar punto de interrupción</translation> </message> @@ -6832,212 +6832,212 @@ <translation>Guardar archivo</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion</source> <translation>Autocompletar</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion is not available because there is no autocompletion source set.</source> <translation>Autocompletar no está disponible porque no hay origen de datos para autocompletar.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4026"/> + <location filename="QScintilla/Editor.py" line="4027"/> <source>Disable breakpoint</source> <translation>Deshabilitar punto de interrupción</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Code Coverage</source> <translation>Cobertura de codigo</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Please select a coverage file</source> <translation>Por favor seleccione un archivo de cobertura</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>Show Code Coverage Annotations</source> <translation>Mostrar Anotaciones de Cobertura de Código</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4351"/> + <location filename="QScintilla/Editor.py" line="4352"/> <source>All lines have been covered.</source> <translation>Todas las líneas han sido cubiertas.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>There is no coverage file available.</source> <translation>No hay archivo de cobertura disponible.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Profile Data</source> <translation>Datos de profiling</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Please select a profile file</source> <translation>Por favor seleccione un archivo de profiling</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>Syntax Error</source> <translation>Error de sintaxis</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>No syntax error message available.</source> <translation>No hay mensajes de error de sintaxis disponibles.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Macro Name</source> <translation>Nombre de macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Select a macro name:</source> <translation>Seleccione un nombre de macro:</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4815"/> + <location filename="QScintilla/Editor.py" line="4818"/> <source>Load macro file</source> <translation>Cargar archivo de macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Macro files (*.macro)</source> <translation>Archivos de Macro (*.macro)</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source>Error loading macro</source> <translation>Error al cargar macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Save macro file</source> <translation>Guardar archivo de macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source>Save macro</source> <translation>Guardar macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source>Error saving macro</source> <translation>Error al guardar macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Start Macro Recording</source> <translation>Comenzar grabación de macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Macro recording is already active. Start new?</source> <translation>Grabación de macro ya está activada. ¿Comenzar una nueva?</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Macro Recording</source> <translation>Grabando macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Enter name of the macro:</source> <translation>Introduzca el nombre de la macro:</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5041"/> + <location filename="QScintilla/Editor.py" line="5044"/> <source><br><b>Warning:</b> You will loose your changes upon reopening it.</source> <translation><br><b>Advertencia:</b> Perderá los cambios si lo reabre.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5045"/> + <location filename="QScintilla/Editor.py" line="5048"/> <source>File changed</source> <translation>Archivo modificado</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source>Drop Error</source> <translation>Error al soltar</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5259"/> + <location filename="QScintilla/Editor.py" line="5262"/> <source>Resources</source> <translation>Recursos</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5261"/> + <location filename="QScintilla/Editor.py" line="5264"/> <source>Add file...</source> <translation>Añadir archivo...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5263"/> + <location filename="QScintilla/Editor.py" line="5266"/> <source>Add files...</source> <translation>Añadir archivos...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5265"/> + <location filename="QScintilla/Editor.py" line="5268"/> <source>Add aliased file...</source> <translation>Añadir archivo con un alias...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5267"/> - <source>Add localized resource...</source> - <translation>Añadir recursos localizados...</translation> - </message> - <message> <location filename="QScintilla/Editor.py" line="5270"/> + <source>Add localized resource...</source> + <translation>Añadir recursos localizados...</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5273"/> <source>Add resource frame</source> <translation>Añadir ventana de recursos</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5288"/> + <location filename="QScintilla/Editor.py" line="5291"/> <source>Add file resource</source> <translation>Añadir archivo de recursos</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5304"/> + <location filename="QScintilla/Editor.py" line="5307"/> <source>Add file resources</source> <translation>Añadir archivo de recursos</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5331"/> + <location filename="QScintilla/Editor.py" line="5334"/> <source>Add aliased file resource</source> <translation>Añadir archivo de recursos con un alias</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5392"/> + <location filename="QScintilla/Editor.py" line="5395"/> <source>Package Diagram</source> <translation>Digrama de paquetes</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5392"/> + <location filename="QScintilla/Editor.py" line="5395"/> <source>Include class attributes?</source> <translation>¿Incluir atributos de clase?</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Imports Diagram</source> <translation>Diagrama de imports</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Include imports from external modules?</source> <translation>¿Incluir los imports de módulos externos?</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5421"/> + <location filename="QScintilla/Editor.py" line="5424"/> <source>Application Diagram</source> <translation>Diagrama de aplicación</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5421"/> + <location filename="QScintilla/Editor.py" line="5424"/> <source>Include module names?</source> <translation>¿Incluir nombres de módulos?</translation> </message> @@ -7112,7 +7112,7 @@ <translation>Seleccionar el Analizador Léxico de Pygments.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5653"/> + <location filename="QScintilla/Editor.py" line="5656"/> <source>Check spelling...</source> <translation>Corrección ortográfica...</translation> </message> @@ -7122,12 +7122,12 @@ <translation>Corrección ortográfica de la selección...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5655"/> + <location filename="QScintilla/Editor.py" line="5658"/> <source>Add to dictionary</source> <translation>Añadir al diccionario</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5657"/> + <location filename="QScintilla/Editor.py" line="5660"/> <source>Ignore All</source> <translation>Ignorar Todo</translation> </message> @@ -7167,37 +7167,37 @@ <translation><p>El archivo <b>{0}</b> no puede ser guardado.<br>Causa: {1}</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4829"/> + <location filename="QScintilla/Editor.py" line="4832"/> <source><p>The macro file <b>{0}</b> could not be read.</p></source> <translation><p>El archivo de macro <b>{0}</b> no se puede leer.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source><p>The macro file <b>{0}</b> is corrupt.</p></source> <translation><p>El archivo de macro <b>{0}</b> está dañado</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source><p>The macro file <b>{0}</b> could not be written.</p></source> <translation><p>El archivo de macro <b>{0}</b> no se puede escribir.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5036"/> + <location filename="QScintilla/Editor.py" line="5039"/> <source><p>The file <b>{0}</b> has been changed while it was opened in eric5. Reread it?</p></source> <translation><p>El archivo <b>{0}</b> ha cambiado mientras estaba abierto en eric5. ¿Desea volver a cargarlo?</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5124"/> + <location filename="QScintilla/Editor.py" line="5127"/> <source>{0} (ro)</source> <translation>{0} (ro)</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source><p><b>{0}</b> is not a file.</p></source> <translation><p><b>{0}</b> no es un archivo.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5331"/> + <location filename="QScintilla/Editor.py" line="5334"/> <source>Alias for file <b>{0}</b>:</source> <translation>Alias para el archivo <b>{0}</b>:</translation> </message> @@ -7222,12 +7222,12 @@ <translation>Limpiar advertencias</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>py3flakes Warning</source> <translation>Advertencia de py3flakes</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>No py3flakes warning message available.</source> <translation>No hay un mensaje de advertencia de py3flakes disponible.</translation> </message> @@ -7237,17 +7237,17 @@ <translation><p>El archivo <b>{0}</b> ya existe. ¿Desea sobreescribirlo?</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source><p>The macro file <b>{0}</b> already exists. Overwrite it?</p></source> <translation><p>El archivo de macro <b>{0}</b> ya existe. ¿Desea sobreescribirlo?</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4732"/> + <location filename="QScintilla/Editor.py" line="4735"/> <source>Warning: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4738"/> + <location filename="QScintilla/Editor.py" line="4741"/> <source>Error: {0}</source> <translation type="unfinished">Error: {0}</translation> </message> @@ -22962,6 +22962,215 @@ </message> </context> <context> + <name>Pep8CheckerPlugin</name> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>Check PEP 8 Compliance</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>PEP &8 Compliance...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="79"/> + <source>Check PEP 8 compliance.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="175"/> + <source><b>Check PEP 8 Compliance...</b><p>This checks Python files for compliance to the conventions given in PEP 8.</p></source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Pep8CodeSelectionDialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="14"/> + <source>PEP 8 Message Codes</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="23"/> + <source>Select the message codes from the list:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="30"/> + <source>Select the message codes from this table</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="55"/> + <source>Code</source> + <translation type="unfinished">Código</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="60"/> + <source>Message</source> + <translation type="unfinished">Mensaje</translation> + </message> +</context> +<context> + <name>Pep8Dialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="14"/> + <source>PEP 8 Check Result</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="17"/> + <source><b>PEP 8 Check Results</b> +<p>This dialog shows the results of the PEP 8 check. Double clicking an +entry will open an editor window and position the cursor at the respective line and position.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="34"/> + <source>Exclude Files:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="41"/> + <source>Enter filename patterns of files to be excluded separated by a comma</source> + <translation type="unfinished">Introduzca patrones de nombre de archivo de los archivos a ser excluidos, separados por comas</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="48"/> + <source>Press to clear the filter edit</source> + <translation type="unfinished">Pulse para limpiar la caja de filtro</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="68"/> + <source>Press to start the PEP 8 check run</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="71"/> + <source>Start</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="78"/> + <source>Exclude Messages:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="92"/> + <source>Press to clear the exclude messages edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="149"/> + <source>Press to select the messages from a list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="152"/> + <source>...</source> + <translation type="unfinished">...</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="139"/> + <source>Press to clear the include messages edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="161"/> + <source>Select to repeat each message type</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="164"/> + <source>Repeat messages</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="209"/> + <source><b>Result List</b> +<p>This list shows the results of the PEP 8 check. Double clicking +an entry will open this entry in an editor window and position the cursor at +the respective line and position.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="225"/> + <source>File/Line</source> + <translation type="unfinished">Archivo/Línea</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="230"/> + <source>Code</source> + <translation type="unfinished">Código</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="235"/> + <source>Message</source> + <translation type="unfinished">Mensaje</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="243"/> + <source>Shows the progress of the PEP 8 check action</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="50"/> + <source>Show</source> + <translation type="unfinished">Mostrar</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="52"/> + <source>Press to show all files containing an issue</source> + <translation type="unfinished">Pulsar para mostrar todos los archivos con algún problema</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="233"/> + <source>Error: {0}</source> + <translation type="unfinished">Error: {0}</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="286"/> + <source>No issues found.</source> + <translation type="unfinished">No se han encontrado problemas.</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="85"/> + <source>Enter message codes or categories to be excluded separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="132"/> + <source>Enter message codes or categories to be included separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="184"/> + <source>Press to load the default values</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="187"/> + <source>Load Defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="194"/> + <source>Press to store the current values as defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="197"/> + <source>Store Defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="125"/> + <source>Included Messages:</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>PixmapDiagram</name> <message> <location filename="Graphics/PixmapDiagram.py" line="159"/> @@ -23677,17 +23886,17 @@ <context> <name>Preferences</name> <message> - <location filename="Preferences/__init__.py" line="896"/> + <location filename="Preferences/__init__.py" line="895"/> <source>Export Preferences</source> <translation>Exportar Preferencias</translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Import Preferences</source> <translation>Importar Preferencias</translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Properties File (*.ini);;All Files (*)</source> <translation type="unfinished"></translation> </message> @@ -28857,7 +29066,7 @@ <translation>No.</translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source>Drop Error</source> <translation>Error al soltar</translation> </message> @@ -28925,7 +29134,7 @@ </translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source><p><b>{0}</b> is not a file.</p></source> <translation><p><b>{0}</b> no es un archivo.</p></translation> </message> @@ -35178,7 +35387,7 @@ <translation>Pulsar para mostrar todos los archivos con algún problema</translation> </message> <message> - <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="253"/> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269"/> <source>No issues found.</source> <translation>No se han encontrado problemas.</translation> </message> @@ -35207,6 +35416,11 @@ <source>Start</source> <translation>Iniciar</translation> </message> + <message> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="188"/> + <source>Error: {0}</source> + <translation type="unfinished">Error: {0}</translation> + </message> </context> <context> <name>SyntaxCheckerPlugin</name> @@ -35646,12 +35860,12 @@ <translation>Iniciar</translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="255"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="256"/> <source>Python2 interpreter not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="280"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="281"/> <source>Python2 interpreter did not finish within 15s.</source> <translation type="unfinished"></translation> </message> @@ -40333,17 +40547,17 @@ <context> <name>Utilities</name> <message> - <location filename="Utilities/__init__.py" line="956"/> + <location filename="Utilities/__init__.py" line="959"/> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>Puede utilizar %-códigos como marcadores en la cadena. Los valores sportados son:<table><tr><td>%C</td><td>columna del cursos en el editor actual</td></tr><tr><td>%D</td><td>directorio del editor actual</td></tr><tr><td>%F</td><td>nombre de archivo del editor actual</td></tr><tr><td>%H</td><td>directorio home del usuario actual</td></tr><tr><td>%L</td><td>línea del cursor en el editor actual</td></tr><tr><td>%P</td><td>ruta del proyecto actual</td></tr><tr><td>%S</td><td>texto seleccionado en el editor actual</td></tr><tr><td>%U</td><td>nombre de usuario del usuario actual</td></tr><tr><td>%%</td><td>signo de porcentaje</td></tr></table></p></translation> </message> <message> - <location filename="Utilities/__init__.py" line="1128"/> + <location filename="Utilities/__init__.py" line="1131"/> <source>Python2 interpreter not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Utilities/__init__.py" line="1173"/> + <location filename="Utilities/__init__.py" line="1176"/> <source>Python2 interpreter did not finish within 30s.</source> <translation type="unfinished"></translation> </message> @@ -43313,17 +43527,17 @@ <translation>Archivo Modificado</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3605"/> + <location filename="ViewManager/ViewManager.py" line="3606"/> <source>&Clear</source> <translation>&Limpiar</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3601"/> + <location filename="ViewManager/ViewManager.py" line="3602"/> <source>&Add</source> <translation>&Agregar</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3603"/> + <location filename="ViewManager/ViewManager.py" line="3604"/> <source>&Edit...</source> <translation>&Editar...</translation> </message> @@ -43527,17 +43741,17 @@ <translation><p>El archivo <b>{0}</b> tiene cambios sin guardar.</p></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3260"/> + <location filename="ViewManager/ViewManager.py" line="3261"/> <source>File: {0}</source> <translation>Archivo: {0}</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3264"/> + <location filename="ViewManager/ViewManager.py" line="3265"/> <source>Line: {0:5}</source> <translation>Línea: {0:5}</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3269"/> + <location filename="ViewManager/ViewManager.py" line="3270"/> <source>Pos: {0:5}</source> <translation>Pos: {0:5}</translation> </message> @@ -44244,6 +44458,184 @@ </message> </context> <context> + <name>pep8</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="164"/> + <source>indentation contains mixed spaces and tabs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="166"/> + <source>indentation is not a multiple of four</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="168"/> + <source>expected an indented block</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="170"/> + <source>unexpected indentation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="172"/> + <source>indentation contains tabs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="174"/> + <source>whitespace after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="180"/> + <source>whitespace before '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="182"/> + <source>multiple spaces before operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="184"/> + <source>multiple spaces after operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="186"/> + <source>tab before operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="188"/> + <source>tab after operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="190"/> + <source>missing whitespace around operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="192"/> + <source>missing whitespace after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="194"/> + <source>multiple spaces after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="196"/> + <source>tab after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="198"/> + <source>no spaces around keyword / parameter equals</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="200"/> + <source>at least two spaces before inline comment</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="202"/> + <source>inline comment should start with '# '</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="204"/> + <source>trailing whitespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="206"/> + <source>no newline at end of file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="208"/> + <source>blank line contains whitespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="210"/> + <source>expected 1 blank line, found 0</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="212"/> + <source>expected 2 blank lines, found {0}</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="214"/> + <source>too many blank lines ({0})</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="216"/> + <source>blank lines found after function decorator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="218"/> + <source>blank line at end of file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="220"/> + <source>multiple imports on one line</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="222"/> + <source>line too long ({0} characters)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="224"/> + <source>.has_key() is deprecated, use 'in'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="226"/> + <source>deprecated form of raising exception</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="228"/> + <source>'<>' is deprecated, use '!='</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="230"/> + <source>backticks are deprecated, use 'repr()'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="232"/> + <source>multiple statements on one line (colon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="234"/> + <source>multiple statements on one line (semicolon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="264"/> + <source>no message for this code defined</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>py3Flakes</name> <message> <location filename="Utilities/py3flakes/messages.py" line="51"/>
--- a/i18n/eric5_fr.ts Sun Jan 09 14:25:16 2011 +0100 +++ b/i18n/eric5_fr.ts Sun Jan 09 18:16:46 2011 +0100 @@ -7377,7 +7377,7 @@ <translation>Éditer le point d'arrêt...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4023"/> + <location filename="QScintilla/Editor.py" line="4024"/> <source>Enable breakpoint</source> <translation>Activer le point d'arrêt</translation> </message> @@ -7452,102 +7452,102 @@ <translation>Fichier Modifié</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion</source> <translation>Autocompletion</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion is not available because there is no autocompletion source set.</source> <translation>L'autocompletion n'est pas disponible car aucune source d'autocomplétion n'est définie.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4026"/> + <location filename="QScintilla/Editor.py" line="4027"/> <source>Disable breakpoint</source> <translation>Désactiver le point d'arrêt</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Code Coverage</source> <translation>Code Coverage</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Please select a coverage file</source> <translation>Sélectionner un fichier coverage</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Profile Data</source> <translation>Profiler de données</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Please select a profile file</source> <translation>Sélectionner un fichier profile</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Macro Name</source> <translation>Nom de la macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Select a macro name:</source> <translation>Sélectionner un nom de macro:</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Macro files (*.macro)</source> <translation>Fichier Macro (*.macro)</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4815"/> + <location filename="QScintilla/Editor.py" line="4818"/> <source>Load macro file</source> <translation>Charger un fichier macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source>Error loading macro</source> <translation>Erreur lors du chargement de la macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Save macro file</source> <translation>Enregistrer le fichier macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source>Save macro</source> <translation>Enregistrer la macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source>Error saving macro</source> <translation>Erreur lors de l'enregistrement de la macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Start Macro Recording</source> <translation>Démarrer l'enregistrement de la macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Macro Recording</source> <translation>Enregistrement de macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Enter name of the macro:</source> <translation>Entrer le nom de la macro:</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5041"/> + <location filename="QScintilla/Editor.py" line="5044"/> <source><br><b>Warning:</b> You will loose your changes upon reopening it.</source> <translation><br><b>Warning:</b> Toutes les modifications seront écrasées en réouvrant le fichier.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5045"/> + <location filename="QScintilla/Editor.py" line="5048"/> <source>File changed</source> <translation>Fichier modifié</translation> </message> @@ -7587,7 +7587,7 @@ <translation type="obsolete">Prière de sélectionner un rapport Cyclops à supprimer</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source>Drop Error</source> <translation>Erreur de suppression</translation> </message> @@ -7597,12 +7597,12 @@ <translation>Afficher le message d'erreur de syntaxe</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>Syntax Error</source> <translation>Erreur de syntaxe</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>No syntax error message available.</source> <translation>Aucun message d'erreur de syntaxe..</translation> </message> @@ -7632,17 +7632,17 @@ <translation>Ligne non executée précédente</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>Show Code Coverage Annotations</source> <translation>Afficher les annotations de Code Coverage</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4351"/> + <location filename="QScintilla/Editor.py" line="4352"/> <source>All lines have been covered.</source> <translation>Toutes les lignes ont été executées.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>There is no coverage file available.</source> <translation>Impossible de trouver le fichier de coverage.</translation> </message> @@ -7742,42 +7742,42 @@ <translation type="obsolete">%1 (ro)</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5259"/> + <location filename="QScintilla/Editor.py" line="5262"/> <source>Resources</source> <translation>Ressources</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5261"/> + <location filename="QScintilla/Editor.py" line="5264"/> <source>Add file...</source> <translation>Ajouter un fichier...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5263"/> + <location filename="QScintilla/Editor.py" line="5266"/> <source>Add files...</source> <translation>Ajouter des fichiers...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5265"/> + <location filename="QScintilla/Editor.py" line="5268"/> <source>Add aliased file...</source> <translation>Ajouter un fichier alias...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5267"/> + <location filename="QScintilla/Editor.py" line="5270"/> <source>Add localized resource...</source> <translation>Ajouter une ressource localisée...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5288"/> + <location filename="QScintilla/Editor.py" line="5291"/> <source>Add file resource</source> <translation>Ajoute un fichier ressource</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5304"/> + <location filename="QScintilla/Editor.py" line="5307"/> <source>Add file resources</source> <translation>Ajoute des fichiers ressources</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5331"/> + <location filename="QScintilla/Editor.py" line="5334"/> <source>Add aliased file resource</source> <translation>Ajoute un alias de fichier ressource</translation> </message> @@ -7787,32 +7787,32 @@ <translation type="obsolete">Alias pour le fichier <b>%1</b>:</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5392"/> + <location filename="QScintilla/Editor.py" line="5395"/> <source>Package Diagram</source> <translation>Diagramme de package</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5392"/> + <location filename="QScintilla/Editor.py" line="5395"/> <source>Include class attributes?</source> <translation>Inclure les attributs de classes ?</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5421"/> + <location filename="QScintilla/Editor.py" line="5424"/> <source>Application Diagram</source> <translation>Diagramme de l'application</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5421"/> + <location filename="QScintilla/Editor.py" line="5424"/> <source>Include module names?</source> <translation>Inclure les noms de modules ?</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5270"/> + <location filename="QScintilla/Editor.py" line="5273"/> <source>Add resource frame</source> <translation>Ajouter un cadre ressource</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Macro recording is already active. Start new?</source> <translation>L'enregistrement de macro est déjà actif. En démarrer une nouvelle ?</translation> </message> @@ -7867,12 +7867,12 @@ <translation>Aucun format d'exportation indiqué. Abandon...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Imports Diagram</source> <translation>Diagramme des modules</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Include imports from external modules?</source> <translation>Inclure l'importation de modules externes?</translation> </message> @@ -7952,7 +7952,7 @@ <translation>Sélectionne l'analyseur Pygments à appliquer.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5653"/> + <location filename="QScintilla/Editor.py" line="5656"/> <source>Check spelling...</source> <translation>Correction orthographique...</translation> </message> @@ -7962,12 +7962,12 @@ <translation>Correction orthographique de la sélection...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5655"/> + <location filename="QScintilla/Editor.py" line="5658"/> <source>Add to dictionary</source> <translation>Ajouter au dictionnaire</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5657"/> + <location filename="QScintilla/Editor.py" line="5660"/> <source>Ignore All</source> <translation>Tout ignorer</translation> </message> @@ -8007,37 +8007,37 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4829"/> + <location filename="QScintilla/Editor.py" line="4832"/> <source><p>The macro file <b>{0}</b> could not be read.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source><p>The macro file <b>{0}</b> is corrupt.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source><p>The macro file <b>{0}</b> could not be written.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5036"/> + <location filename="QScintilla/Editor.py" line="5039"/> <source><p>The file <b>{0}</b> has been changed while it was opened in eric5. Reread it?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5124"/> + <location filename="QScintilla/Editor.py" line="5127"/> <source>{0} (ro)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source><p><b>{0}</b> is not a file.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5331"/> + <location filename="QScintilla/Editor.py" line="5334"/> <source>Alias for file <b>{0}</b>:</source> <translation type="unfinished"></translation> </message> @@ -8062,12 +8062,12 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>py3flakes Warning</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>No py3flakes warning message available.</source> <translation type="unfinished"></translation> </message> @@ -8077,17 +8077,17 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source><p>The macro file <b>{0}</b> already exists. Overwrite it?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4732"/> + <location filename="QScintilla/Editor.py" line="4735"/> <source>Warning: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4738"/> + <location filename="QScintilla/Editor.py" line="4741"/> <source>Error: {0}</source> <translation type="unfinished"></translation> </message> @@ -24896,6 +24896,215 @@ </message> </context> <context> + <name>Pep8CheckerPlugin</name> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>Check PEP 8 Compliance</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>PEP &8 Compliance...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="79"/> + <source>Check PEP 8 compliance.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="175"/> + <source><b>Check PEP 8 Compliance...</b><p>This checks Python files for compliance to the conventions given in PEP 8.</p></source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Pep8CodeSelectionDialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="14"/> + <source>PEP 8 Message Codes</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="23"/> + <source>Select the message codes from the list:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="30"/> + <source>Select the message codes from this table</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="55"/> + <source>Code</source> + <translation type="unfinished">Code</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="60"/> + <source>Message</source> + <translation type="unfinished">Message</translation> + </message> +</context> +<context> + <name>Pep8Dialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="14"/> + <source>PEP 8 Check Result</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="17"/> + <source><b>PEP 8 Check Results</b> +<p>This dialog shows the results of the PEP 8 check. Double clicking an +entry will open an editor window and position the cursor at the respective line and position.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="34"/> + <source>Exclude Files:</source> + <translation type="unfinished">Fichiers exclus:</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="41"/> + <source>Enter filename patterns of files to be excluded separated by a comma</source> + <translation type="unfinished">Entrer les filtres de noms de fichiers à exclure, séparés par des virgules</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="48"/> + <source>Press to clear the filter edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="68"/> + <source>Press to start the PEP 8 check run</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="71"/> + <source>Start</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="78"/> + <source>Exclude Messages:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="92"/> + <source>Press to clear the exclude messages edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="149"/> + <source>Press to select the messages from a list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="152"/> + <source>...</source> + <translation type="unfinished">...</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="139"/> + <source>Press to clear the include messages edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="161"/> + <source>Select to repeat each message type</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="164"/> + <source>Repeat messages</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="209"/> + <source><b>Result List</b> +<p>This list shows the results of the PEP 8 check. Double clicking +an entry will open this entry in an editor window and position the cursor at +the respective line and position.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="225"/> + <source>File/Line</source> + <translation type="unfinished">Fichier/ligne</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="230"/> + <source>Code</source> + <translation type="unfinished">Code</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="235"/> + <source>Message</source> + <translation type="unfinished">Message</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="243"/> + <source>Shows the progress of the PEP 8 check action</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="50"/> + <source>Show</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="52"/> + <source>Press to show all files containing an issue</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="233"/> + <source>Error: {0}</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="286"/> + <source>No issues found.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="85"/> + <source>Enter message codes or categories to be excluded separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="132"/> + <source>Enter message codes or categories to be included separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="184"/> + <source>Press to load the default values</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="187"/> + <source>Load Defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="194"/> + <source>Press to store the current values as defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="197"/> + <source>Store Defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="125"/> + <source>Included Messages:</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>PixmapDiagram</name> <message> <location filename="Graphics/PixmapDiagram.py" line="159"/> @@ -25766,17 +25975,17 @@ <context> <name>Preferences</name> <message> - <location filename="Preferences/__init__.py" line="896"/> + <location filename="Preferences/__init__.py" line="895"/> <source>Export Preferences</source> <translation>Export des préférences</translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Import Preferences</source> <translation>Import des préférences</translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Properties File (*.ini);;All Files (*)</source> <translation type="unfinished"></translation> </message> @@ -31940,7 +32149,7 @@ <translation>Effacer et réinitialiser</translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source>Drop Error</source> <translation>Erreur de suppression</translation> </message> @@ -32053,7 +32262,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source><p><b>{0}</b> is not a file.</p></source> <translation type="unfinished"></translation> </message> @@ -38844,7 +39053,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="253"/> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269"/> <source>No issues found.</source> <translation type="unfinished"></translation> </message> @@ -38873,6 +39082,11 @@ <source>Start</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="188"/> + <source>Error: {0}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>SyntaxCheckerPlugin</name> @@ -39319,12 +39533,12 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="255"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="256"/> <source>Python2 interpreter not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="280"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="281"/> <source>Python2 interpreter did not finish within 15s.</source> <translation type="unfinished"></translation> </message> @@ -44607,17 +44821,17 @@ <context> <name>Utilities</name> <message> - <location filename="Utilities/__init__.py" line="956"/> + <location filename="Utilities/__init__.py" line="959"/> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>Vous pouvez utiliser la syntaxe "%-code" dans la chaine de caractères. Les codes supportés sont :<table><tr><td>%C</td><td>colonne du curseur de l'éditeur courant</td></tr><tr><td>%D</td><td>répertoire de l'éditeur courant</td></tr><tr><td>%F</td><td>nom de fichier de l'éditeur courant</td></tr><tr><td>%H</td><td>répertoire 'home' de l'utilisateur courant</td></tr><tr><td>%L</td><td>ligne du curseur de l'éditeur courant</td></tr><tr><td>%P</td><td>chemin du projet courant</td></tr><tr><td>%S</td><td>texte sélectionné dans l'éditeur courant</td></tr><tr><td>%U</td><td>nom d'utilisateur de l'utilisateur courant</td></tr><tr><td>%%</td><td>le signe pourcent</td></tr></table></p></translation> </message> <message> - <location filename="Utilities/__init__.py" line="1128"/> + <location filename="Utilities/__init__.py" line="1131"/> <source>Python2 interpreter not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Utilities/__init__.py" line="1173"/> + <location filename="Utilities/__init__.py" line="1176"/> <source>Python2 interpreter did not finish within 30s.</source> <translation type="unfinished"></translation> </message> @@ -46939,17 +47153,17 @@ <translation type="obsolete">Pos: %1</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3605"/> + <location filename="ViewManager/ViewManager.py" line="3606"/> <source>&Clear</source> <translation>&Effacer</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3601"/> + <location filename="ViewManager/ViewManager.py" line="3602"/> <source>&Add</source> <translation>&Ajouter</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3603"/> + <location filename="ViewManager/ViewManager.py" line="3604"/> <source>&Edit...</source> <translation>&Editer...</translation> </message> @@ -47852,17 +48066,17 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3260"/> + <location filename="ViewManager/ViewManager.py" line="3261"/> <source>File: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3264"/> + <location filename="ViewManager/ViewManager.py" line="3265"/> <source>Line: {0:5}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3269"/> + <location filename="ViewManager/ViewManager.py" line="3270"/> <source>Pos: {0:5}</source> <translation type="unfinished"></translation> </message> @@ -48797,6 +49011,184 @@ </message> </context> <context> + <name>pep8</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="164"/> + <source>indentation contains mixed spaces and tabs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="166"/> + <source>indentation is not a multiple of four</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="168"/> + <source>expected an indented block</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="170"/> + <source>unexpected indentation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="172"/> + <source>indentation contains tabs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="174"/> + <source>whitespace after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="180"/> + <source>whitespace before '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="182"/> + <source>multiple spaces before operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="184"/> + <source>multiple spaces after operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="186"/> + <source>tab before operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="188"/> + <source>tab after operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="190"/> + <source>missing whitespace around operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="192"/> + <source>missing whitespace after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="194"/> + <source>multiple spaces after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="196"/> + <source>tab after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="198"/> + <source>no spaces around keyword / parameter equals</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="200"/> + <source>at least two spaces before inline comment</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="202"/> + <source>inline comment should start with '# '</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="204"/> + <source>trailing whitespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="206"/> + <source>no newline at end of file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="208"/> + <source>blank line contains whitespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="210"/> + <source>expected 1 blank line, found 0</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="212"/> + <source>expected 2 blank lines, found {0}</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="214"/> + <source>too many blank lines ({0})</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="216"/> + <source>blank lines found after function decorator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="218"/> + <source>blank line at end of file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="220"/> + <source>multiple imports on one line</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="222"/> + <source>line too long ({0} characters)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="224"/> + <source>.has_key() is deprecated, use 'in'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="226"/> + <source>deprecated form of raising exception</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="228"/> + <source>'<>' is deprecated, use '!='</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="230"/> + <source>backticks are deprecated, use 'repr()'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="232"/> + <source>multiple statements on one line (colon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="234"/> + <source>multiple statements on one line (semicolon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="264"/> + <source>no message for this code defined</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>py3Flakes</name> <message> <location filename="Utilities/py3flakes/messages.py" line="51"/>
--- a/i18n/eric5_it.ts Sun Jan 09 14:25:16 2011 +0100 +++ b/i18n/eric5_it.ts Sun Jan 09 18:16:46 2011 +0100 @@ -6742,7 +6742,7 @@ <translation>Modifica Breakpoint...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4023"/> + <location filename="QScintilla/Editor.py" line="4024"/> <source>Enable breakpoint</source> <translation>Abilita breakpoint</translation> </message> @@ -6817,102 +6817,102 @@ <translation>File modificato</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion</source> <translation>Autocompletamento</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion is not available because there is no autocompletion source set.</source> <translation>L'autocomplentamento non è disponibile perchè non ci sono fonti impostate.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4026"/> + <location filename="QScintilla/Editor.py" line="4027"/> <source>Disable breakpoint</source> <translation>Disabilita breakpoint</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Code Coverage</source> <translation>Analisi codice</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Please select a coverage file</source> <translation>Per favore seleziona un file per l'analisi</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Profile Data</source> <translation>Profilazione dati</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Please select a profile file</source> <translation>Per favore seleziona un file per la profilazione</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Macro Name</source> <translation>Nome Macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Select a macro name:</source> <translation>Seleziona un nome per la macro:</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Macro files (*.macro)</source> <translation>File Macro (*.macro)</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4815"/> + <location filename="QScintilla/Editor.py" line="4818"/> <source>Load macro file</source> <translation>Carica un file di macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source>Error loading macro</source> <translation>Errore nel caricamento della macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Save macro file</source> <translation>Salva un file di macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source>Save macro</source> <translation>Salva macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source>Error saving macro</source> <translation>Errore nel salvataggio della macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Start Macro Recording</source> <translation>Avvia registrazione della macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Macro Recording</source> <translation>Registrazione Macro</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Enter name of the macro:</source> <translation>Inserisci un nome per la macro:</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5041"/> + <location filename="QScintilla/Editor.py" line="5044"/> <source><br><b>Warning:</b> You will loose your changes upon reopening it.</source> <translation><br><b>Attenzione:</b> con la riapertura le modifiche andranno perse.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5045"/> + <location filename="QScintilla/Editor.py" line="5048"/> <source>File changed</source> <translation>File modificato</translation> </message> @@ -6932,7 +6932,7 @@ <translation>Elimina errori di sintassi</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source>Drop Error</source> <translation>Errore Drop</translation> </message> @@ -6942,12 +6942,12 @@ <translation>Mostra i messaggi degli errori di sintassi</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>Syntax Error</source> <translation>Errore di sintassi</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>No syntax error message available.</source> <translation>Nessun messaggio degli errori di sintassi disponibile.</translation> </message> @@ -6977,17 +6977,17 @@ <translation>File non analizzato precedente</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>Show Code Coverage Annotations</source> <translation>Mostra le annotazioni dell'analisi del codice</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4351"/> + <location filename="QScintilla/Editor.py" line="4352"/> <source>All lines have been covered.</source> <translation>Tutte le linee sono state analizzate.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>There is no coverage file available.</source> <translation>Non ci sono file di analisi disponibili.</translation> </message> @@ -7027,72 +7027,72 @@ <translation>Nessun linguaggio</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5259"/> + <location filename="QScintilla/Editor.py" line="5262"/> <source>Resources</source> <translation>Risorse</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5261"/> + <location filename="QScintilla/Editor.py" line="5264"/> <source>Add file...</source> <translation>Aggiungi file...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5263"/> + <location filename="QScintilla/Editor.py" line="5266"/> <source>Add files...</source> <translation>Aggiungi files...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5265"/> + <location filename="QScintilla/Editor.py" line="5268"/> <source>Add aliased file...</source> <translation>Aggiungi file sinonimo...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5267"/> - <source>Add localized resource...</source> - <translation>Aggiungi una risorsa localizzata...</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5288"/> - <source>Add file resource</source> - <translation>Aggiungi un file risorse</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5304"/> - <source>Add file resources</source> - <translation>Aggiundi dei file risorse</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5331"/> - <source>Add aliased file resource</source> - <translation>Aggiungi file sinonimo delle risorse</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5392"/> - <source>Package Diagram</source> - <translation>Diagrammi del package</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5392"/> - <source>Include class attributes?</source> - <translation>Includi gli attributi della classe ?</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5421"/> - <source>Application Diagram</source> - <translation>Diagrammi dell'applicazione</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5421"/> - <source>Include module names?</source> - <translation>Includi i nomi dei moduli ?</translation> - </message> - <message> <location filename="QScintilla/Editor.py" line="5270"/> + <source>Add localized resource...</source> + <translation>Aggiungi una risorsa localizzata...</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5291"/> + <source>Add file resource</source> + <translation>Aggiungi un file risorse</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5307"/> + <source>Add file resources</source> + <translation>Aggiundi dei file risorse</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5334"/> + <source>Add aliased file resource</source> + <translation>Aggiungi file sinonimo delle risorse</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5395"/> + <source>Package Diagram</source> + <translation>Diagrammi del package</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5395"/> + <source>Include class attributes?</source> + <translation>Includi gli attributi della classe ?</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5424"/> + <source>Application Diagram</source> + <translation>Diagrammi dell'applicazione</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5424"/> + <source>Include module names?</source> + <translation>Includi i nomi dei moduli ?</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5273"/> <source>Add resource frame</source> <translation>Aggiungi riquadro delle risorse</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Macro recording is already active. Start new?</source> <translation>Registrazione macro già attiva. Avvia nuovamente ?</translation> </message> @@ -7142,12 +7142,12 @@ <translation>Nessun formato di export impostato. Annullamento...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Imports Diagram</source> <translation>Importa diagrammi</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Include imports from external modules?</source> <translation>Includi gli import dai moduli esterni ?</translation> </message> @@ -7222,7 +7222,7 @@ <translation>Selezione l'analizzatore lessicale di Pygments da applicare.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5653"/> + <location filename="QScintilla/Editor.py" line="5656"/> <source>Check spelling...</source> <translation>Controllo sillabazione...</translation> </message> @@ -7232,12 +7232,12 @@ <translation>Controllo sillabazione della selezione...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5655"/> + <location filename="QScintilla/Editor.py" line="5658"/> <source>Add to dictionary</source> <translation>Aggiungi al dizionario</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5657"/> + <location filename="QScintilla/Editor.py" line="5660"/> <source>Ignore All</source> <translation>Ignora tutto</translation> </message> @@ -7282,12 +7282,12 @@ <translation type="obsolete"><p>Il file <b>{0}</b> esiste già.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4829"/> + <location filename="QScintilla/Editor.py" line="4832"/> <source><p>The macro file <b>{0}</b> could not be read.</p></source> <translation><p>Il file macro <b>{0}</b> non può essere letto.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source><p>The macro file <b>{0}</b> is corrupt.</p></source> <translation><p>Il file macro <b>{0}</b> è danneggiato.</p></translation> </message> @@ -7297,27 +7297,27 @@ <translation type="obsolete"><p>Il file macro <b>{0}</b> esiste già.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source><p>The macro file <b>{0}</b> could not be written.</p></source> <translation><p>Il file macro <b>{0}</b> non può essere scritto.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5036"/> + <location filename="QScintilla/Editor.py" line="5039"/> <source><p>The file <b>{0}</b> has been changed while it was opened in eric5. Reread it?</p></source> <translation><p>Il file <b>{0}</b> è stato modificato mentre era aperto in eric5. Rileggerlo ?</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5124"/> + <location filename="QScintilla/Editor.py" line="5127"/> <source>{0} (ro)</source> <translation>{0} (ro)</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source><p><b>{0}</b> is not a file.</p></source> <translation><p><b>{0}</b> non è un file.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5331"/> + <location filename="QScintilla/Editor.py" line="5334"/> <source>Alias for file <b>{0}</b>:</source> <translation>Alias per il file <b>{0}</b>:</translation> </message> @@ -7342,12 +7342,12 @@ <translation>Pulisci warning</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>py3flakes Warning</source> <translation>Warning py3flakes</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>No py3flakes warning message available.</source> <translation>Nessun warning py3flakes disponibile.</translation> </message> @@ -7357,17 +7357,17 @@ <translation type="unfinished"><p>Il file <b>{0}</b> esiste già. Sovrascriverlo ?</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source><p>The macro file <b>{0}</b> already exists. Overwrite it?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4732"/> + <location filename="QScintilla/Editor.py" line="4735"/> <source>Warning: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4738"/> + <location filename="QScintilla/Editor.py" line="4741"/> <source>Error: {0}</source> <translation type="unfinished">Errori: {0}</translation> </message> @@ -23311,6 +23311,215 @@ </message> </context> <context> + <name>Pep8CheckerPlugin</name> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>Check PEP 8 Compliance</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>PEP &8 Compliance...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="79"/> + <source>Check PEP 8 compliance.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="175"/> + <source><b>Check PEP 8 Compliance...</b><p>This checks Python files for compliance to the conventions given in PEP 8.</p></source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Pep8CodeSelectionDialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="14"/> + <source>PEP 8 Message Codes</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="23"/> + <source>Select the message codes from the list:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="30"/> + <source>Select the message codes from this table</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="55"/> + <source>Code</source> + <translation type="unfinished">Codice</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="60"/> + <source>Message</source> + <translation type="unfinished">Messaggio</translation> + </message> +</context> +<context> + <name>Pep8Dialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="14"/> + <source>PEP 8 Check Result</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="17"/> + <source><b>PEP 8 Check Results</b> +<p>This dialog shows the results of the PEP 8 check. Double clicking an +entry will open an editor window and position the cursor at the respective line and position.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="34"/> + <source>Exclude Files:</source> + <translation type="unfinished">Escludi file:</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="41"/> + <source>Enter filename patterns of files to be excluded separated by a comma</source> + <translation type="unfinished">Inserisci un pattern per il nome file di file da escludere separati da una virgola</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="48"/> + <source>Press to clear the filter edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="68"/> + <source>Press to start the PEP 8 check run</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="71"/> + <source>Start</source> + <translation type="unfinished">Inizia</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="78"/> + <source>Exclude Messages:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="92"/> + <source>Press to clear the exclude messages edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="149"/> + <source>Press to select the messages from a list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="152"/> + <source>...</source> + <translation type="unfinished">...</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="139"/> + <source>Press to clear the include messages edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="161"/> + <source>Select to repeat each message type</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="164"/> + <source>Repeat messages</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="209"/> + <source><b>Result List</b> +<p>This list shows the results of the PEP 8 check. Double clicking +an entry will open this entry in an editor window and position the cursor at +the respective line and position.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="225"/> + <source>File/Line</source> + <translation type="unfinished">File/Linea</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="230"/> + <source>Code</source> + <translation type="unfinished">Codice</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="235"/> + <source>Message</source> + <translation type="unfinished">Messaggio</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="243"/> + <source>Shows the progress of the PEP 8 check action</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="50"/> + <source>Show</source> + <translation type="unfinished">Mostra</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="52"/> + <source>Press to show all files containing an issue</source> + <translation type="unfinished">Premi per mostrare tutti i file che contengono errori di sintassi</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="233"/> + <source>Error: {0}</source> + <translation type="unfinished">Errori: {0}</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="286"/> + <source>No issues found.</source> + <translation type="unfinished">Nessun problema trovato.</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="85"/> + <source>Enter message codes or categories to be excluded separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="132"/> + <source>Enter message codes or categories to be included separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="184"/> + <source>Press to load the default values</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="187"/> + <source>Load Defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="194"/> + <source>Press to store the current values as defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="197"/> + <source>Store Defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="125"/> + <source>Included Messages:</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>PixmapDiagram</name> <message> <location filename="Graphics/PixmapDiagram.py" line="159"/> @@ -24032,17 +24241,17 @@ <context> <name>Preferences</name> <message> - <location filename="Preferences/__init__.py" line="896"/> + <location filename="Preferences/__init__.py" line="895"/> <source>Export Preferences</source> <translation>Esporta Preferenze</translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Import Preferences</source> <translation>Importa Preferenze</translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Properties File (*.ini);;All Files (*)</source> <translation type="unfinished"></translation> </message> @@ -29300,7 +29509,7 @@ <translation>Resetta e pulisci</translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source>Drop Error</source> <translation>Drop Error</translation> </message> @@ -29389,7 +29598,7 @@ </translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source><p><b>{0}</b> is not a file.</p></source> <translation><p><b>{0}</b> non è un file.</p></translation> </message> @@ -35679,7 +35888,7 @@ <translation>Premi per mostrare tutti i file che contengono errori di sintassi</translation> </message> <message> - <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="253"/> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269"/> <source>No issues found.</source> <translation>Nessun problema trovato.</translation> </message> @@ -35708,6 +35917,11 @@ <source>Start</source> <translation type="unfinished">Inizia</translation> </message> + <message> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="188"/> + <source>Error: {0}</source> + <translation type="unfinished">Errori: {0}</translation> + </message> </context> <context> <name>SyntaxCheckerPlugin</name> @@ -36147,12 +36361,12 @@ <translation type="unfinished">Inizia</translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="255"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="256"/> <source>Python2 interpreter not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="280"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="281"/> <source>Python2 interpreter did not finish within 15s.</source> <translation type="unfinished"></translation> </message> @@ -40871,17 +41085,17 @@ <context> <name>Utilities</name> <message> - <location filename="Utilities/__init__.py" line="956"/> + <location filename="Utilities/__init__.py" line="959"/> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>Puoi usare i codici % come segnaposti nella stringa. I codici supportati sono: <table><tr><td>%C</td><td>colonna del cursore nell'editor attuale</td></tr><tr><td>%D</td><td>directory dell'editor attuale</td></tr><tr><td>%F</td><td>nome file dell'editor corrente</td></tr><tr><td>%H</td><td>directory home dell'utente attuale</td></tr><tr><td>%L</td><td>linea del cursore dell'editor attuale</td></tr><tr><td>%P</td><td>percorso del progetto attuale</td></tr><tr><td>%S</td><td>testo selezionato dell'editor attuale</td></tr><tr><td>%U</td><td>username dell'utente attuale</td></tr><tr><td>%%</td><td>Segno percentuale</td></tr></table></p></translation> </message> <message> - <location filename="Utilities/__init__.py" line="1128"/> + <location filename="Utilities/__init__.py" line="1131"/> <source>Python2 interpreter not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Utilities/__init__.py" line="1173"/> + <location filename="Utilities/__init__.py" line="1176"/> <source>Python2 interpreter did not finish within 30s.</source> <translation type="unfinished"></translation> </message> @@ -43162,17 +43376,17 @@ <translation>File modificato</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3605"/> + <location filename="ViewManager/ViewManager.py" line="3606"/> <source>&Clear</source> <translation>Pulis&ci</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3601"/> + <location filename="ViewManager/ViewManager.py" line="3602"/> <source>&Add</source> <translation>&Aggiungi</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3603"/> + <location filename="ViewManager/ViewManager.py" line="3604"/> <source>&Edit...</source> <translation>&Modifica...</translation> </message> @@ -44070,17 +44284,17 @@ <translation><p>Il file <b>{0}</b> contiene modifiche non salvate.</p></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3260"/> + <location filename="ViewManager/ViewManager.py" line="3261"/> <source>File: {0}</source> <translation>File: {0}</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3264"/> + <location filename="ViewManager/ViewManager.py" line="3265"/> <source>Line: {0:5}</source> <translation>Linea: {0:5}</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3269"/> + <location filename="ViewManager/ViewManager.py" line="3270"/> <source>Pos: {0:5}</source> <translation>Pos: {0:5}</translation> </message> @@ -44833,6 +45047,184 @@ </message> </context> <context> + <name>pep8</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="164"/> + <source>indentation contains mixed spaces and tabs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="166"/> + <source>indentation is not a multiple of four</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="168"/> + <source>expected an indented block</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="170"/> + <source>unexpected indentation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="172"/> + <source>indentation contains tabs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="174"/> + <source>whitespace after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="180"/> + <source>whitespace before '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="182"/> + <source>multiple spaces before operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="184"/> + <source>multiple spaces after operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="186"/> + <source>tab before operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="188"/> + <source>tab after operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="190"/> + <source>missing whitespace around operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="192"/> + <source>missing whitespace after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="194"/> + <source>multiple spaces after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="196"/> + <source>tab after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="198"/> + <source>no spaces around keyword / parameter equals</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="200"/> + <source>at least two spaces before inline comment</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="202"/> + <source>inline comment should start with '# '</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="204"/> + <source>trailing whitespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="206"/> + <source>no newline at end of file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="208"/> + <source>blank line contains whitespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="210"/> + <source>expected 1 blank line, found 0</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="212"/> + <source>expected 2 blank lines, found {0}</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="214"/> + <source>too many blank lines ({0})</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="216"/> + <source>blank lines found after function decorator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="218"/> + <source>blank line at end of file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="220"/> + <source>multiple imports on one line</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="222"/> + <source>line too long ({0} characters)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="224"/> + <source>.has_key() is deprecated, use 'in'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="226"/> + <source>deprecated form of raising exception</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="228"/> + <source>'<>' is deprecated, use '!='</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="230"/> + <source>backticks are deprecated, use 'repr()'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="232"/> + <source>multiple statements on one line (colon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="234"/> + <source>multiple statements on one line (semicolon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="264"/> + <source>no message for this code defined</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>py3Flakes</name> <message> <location filename="Utilities/py3flakes/messages.py" line="51"/>
--- a/i18n/eric5_ru.ts Sun Jan 09 14:25:16 2011 +0100 +++ b/i18n/eric5_ru.ts Sun Jan 09 18:16:46 2011 +0100 @@ -6749,12 +6749,12 @@ <translation>Файл изменён</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5041"/> + <location filename="QScintilla/Editor.py" line="5044"/> <source><br><b>Warning:</b> You will loose your changes upon reopening it.</source> <translation><br><b>Предупреждение:</b> При переоткрытии все изменения будут потеряны.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5045"/> + <location filename="QScintilla/Editor.py" line="5048"/> <source>File changed</source> <translation>Файл изменён</translation> </message> @@ -6799,7 +6799,7 @@ <translation>Редактировать точку останова...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4023"/> + <location filename="QScintilla/Editor.py" line="4024"/> <source>Enable breakpoint</source> <translation>Разрешить точку останова</translation> </message> @@ -6829,82 +6829,82 @@ <translation>Левая клавиша мыши ставит точки останова</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4026"/> + <location filename="QScintilla/Editor.py" line="4027"/> <source>Disable breakpoint</source> <translation>Запретить точку останова</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Code Coverage</source> <translation>Охват кода</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Please select a coverage file</source> <translation>Пожалуйста, выберите файл для информации охвата</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Macro Name</source> <translation>Имя макроса</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Select a macro name:</source> <translation>Задайте имя макроса:</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Macro files (*.macro)</source> <translation>Макросы (*.macro)</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4815"/> + <location filename="QScintilla/Editor.py" line="4818"/> <source>Load macro file</source> <translation>Загрузить макрос</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source>Error loading macro</source> <translation>Ошибка при загрузке макроса</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Save macro file</source> <translation>Сохранить файл с макросами</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source>Save macro</source> <translation>Сохранить макрос</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source>Error saving macro</source> <translation>Ошибка при сохранении макроса</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Start Macro Recording</source> <translation>Начало записи макроса</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Macro Recording</source> <translation>Запись макроса</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Enter name of the macro:</source> <translation>Задайте имя макроса:</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Profile Data</source> <translation>Данные профайлера</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Please select a profile file</source> <translation>Пожалуйста, выберите файл профиля</translation> </message> @@ -6914,12 +6914,12 @@ <translation>Автозавершение разрешено</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion</source> <translation>Автозавершение</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion is not available because there is no autocompletion source set.</source> <translation>Автозавершение недоступно, так как не задан источник автозавершения.</translation> </message> @@ -6954,7 +6954,7 @@ <translation>Автосохранение разрешено</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source>Drop Error</source> <translation>Ошибка Drag&&Drop</translation> </message> @@ -6964,12 +6964,12 @@ <translation>Показать сообщение о синтаксической ошибке</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>Syntax Error</source> <translation>Синтаксическая ошибка</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>No syntax error message available.</source> <translation>Нет сообщения о синтаксической ошибке.</translation> </message> @@ -6999,17 +6999,17 @@ <translation>Предыдущая невыполняемая строка</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>Show Code Coverage Annotations</source> <translation>Показать аннотации по охвату</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4351"/> + <location filename="QScintilla/Editor.py" line="4352"/> <source>All lines have been covered.</source> <translation>Все строки выполняются.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>There is no coverage file available.</source> <translation>Нет файла с информацией по охвату.</translation> </message> @@ -7024,12 +7024,12 @@ <translation><p>В файле <b>{0}</b> есть несохранённые изменения.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4829"/> + <location filename="QScintilla/Editor.py" line="4832"/> <source><p>The macro file <b>{0}</b> could not be read.</p></source> <translation><p>Невозможно прочитать файл с макросами: <b>{0}</b></p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source><p>The macro file <b>{0}</b> is corrupt.</p></source> <translation><p>Файл с макросами <b>{0}</b> повреждён</p></translation> </message> @@ -7039,12 +7039,12 @@ <translation type="obsolete"><p>Файл с макросами <b>{0}</b> уже существует.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source><p>The macro file <b>{0}</b> could not be written.</p></source> <translation><p>Невозможно сохранить файл с макросами: <b>{0}</b></p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source><p><b>{0}</b> is not a file.</p></source> <translation><p><b>{0}</b> не является файлом</p></translation> </message> @@ -7089,82 +7089,82 @@ <translation>Нет языка</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5124"/> + <location filename="QScintilla/Editor.py" line="5127"/> <source>{0} (ro)</source> <translation>{0} (только чтение)</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5259"/> + <location filename="QScintilla/Editor.py" line="5262"/> <source>Resources</source> <translation>Ресурсы</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5261"/> + <location filename="QScintilla/Editor.py" line="5264"/> <source>Add file...</source> <translation>Добавить файл...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5263"/> + <location filename="QScintilla/Editor.py" line="5266"/> <source>Add files...</source> <translation>Добавить файлы...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5265"/> + <location filename="QScintilla/Editor.py" line="5268"/> <source>Add aliased file...</source> <translation>Добавить файл под другим именем...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5267"/> - <source>Add localized resource...</source> - <translation>Добавить локализованный ресурс...</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5288"/> - <source>Add file resource</source> - <translation>Добавить файл ресурсов</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5304"/> - <source>Add file resources</source> - <translation>Добавить файлы ресурсов</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5331"/> - <source>Add aliased file resource</source> - <translation>Добавить файл ресурсов под другим именем</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5331"/> - <source>Alias for file <b>{0}</b>:</source> - <translation>Другое имя для файла <b>{0}</b>:</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5392"/> - <source>Package Diagram</source> - <translation>Диаграмма пакетов</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5392"/> - <source>Include class attributes?</source> - <translation>Включать атрибуты класса?</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5421"/> - <source>Application Diagram</source> - <translation>Диаграмма приложения</translation> - </message> - <message> - <location filename="QScintilla/Editor.py" line="5421"/> - <source>Include module names?</source> - <translation>Включать имена модулей?</translation> - </message> - <message> <location filename="QScintilla/Editor.py" line="5270"/> + <source>Add localized resource...</source> + <translation>Добавить локализованный ресурс...</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5291"/> + <source>Add file resource</source> + <translation>Добавить файл ресурсов</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5307"/> + <source>Add file resources</source> + <translation>Добавить файлы ресурсов</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5334"/> + <source>Add aliased file resource</source> + <translation>Добавить файл ресурсов под другим именем</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5334"/> + <source>Alias for file <b>{0}</b>:</source> + <translation>Другое имя для файла <b>{0}</b>:</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5395"/> + <source>Package Diagram</source> + <translation>Диаграмма пакетов</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5395"/> + <source>Include class attributes?</source> + <translation>Включать атрибуты класса?</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5424"/> + <source>Application Diagram</source> + <translation>Диаграмма приложения</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5424"/> + <source>Include module names?</source> + <translation>Включать имена модулей?</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5273"/> <source>Add resource frame</source> <translation>Добавить фрагмент ресурсов</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Macro recording is already active. Start new?</source> <translation>Запись макроса уже идёт. Начать новую запись?</translation> </message> @@ -7219,12 +7219,12 @@ <translation>Не задан формат экспорта. Отмена...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Imports Diagram</source> <translation>Диаграмма импортов</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Include imports from external modules?</source> <translation>Включать импорты из внешних модулей?</translation> </message> @@ -7304,7 +7304,7 @@ <translation>Задайте язык лексического анализатора.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5653"/> + <location filename="QScintilla/Editor.py" line="5656"/> <source>Check spelling...</source> <translation>Проверка орфографии...</translation> </message> @@ -7314,12 +7314,12 @@ <translation>Проверка орфографии подсвеченного участка...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5655"/> + <location filename="QScintilla/Editor.py" line="5658"/> <source>Add to dictionary</source> <translation>Добавить в слварь</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5657"/> + <location filename="QScintilla/Editor.py" line="5660"/> <source>Ignore All</source> <translation>Игнорировать всё</translation> </message> @@ -7339,7 +7339,7 @@ <translation><p>Невозможно сохранить файл <b>{0}</b>:<br>Причина: {1}.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5036"/> + <location filename="QScintilla/Editor.py" line="5039"/> <source><p>The file <b>{0}</b> has been changed while it was opened in eric5. Reread it?</p></source> <translation><p>Файл <b>{0}</b> был изменён, будучи открытым в eric5. Обновить?</p></translation> </message> @@ -7364,12 +7364,12 @@ <translation>Очистить предупреждения</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>py3flakes Warning</source> <translation>py3flakes предупреждения</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>No py3flakes warning message available.</source> <translation>Нет py3flakes предупреждений</translation> </message> @@ -7379,17 +7379,17 @@ <translation type="unfinished"><p>Файл <b>{0}</b> уже сущеструет. Переписать?</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source><p>The macro file <b>{0}</b> already exists. Overwrite it?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4732"/> + <location filename="QScintilla/Editor.py" line="4735"/> <source>Warning: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4738"/> + <location filename="QScintilla/Editor.py" line="4741"/> <source>Error: {0}</source> <translation type="unfinished">Ошибка: {0}</translation> </message> @@ -23375,6 +23375,215 @@ </message> </context> <context> + <name>Pep8CheckerPlugin</name> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>Check PEP 8 Compliance</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>PEP &8 Compliance...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="79"/> + <source>Check PEP 8 compliance.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="175"/> + <source><b>Check PEP 8 Compliance...</b><p>This checks Python files for compliance to the conventions given in PEP 8.</p></source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Pep8CodeSelectionDialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="14"/> + <source>PEP 8 Message Codes</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="23"/> + <source>Select the message codes from the list:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="30"/> + <source>Select the message codes from this table</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="55"/> + <source>Code</source> + <translation type="unfinished">Код</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="60"/> + <source>Message</source> + <translation type="unfinished">Сообщение</translation> + </message> +</context> +<context> + <name>Pep8Dialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="14"/> + <source>PEP 8 Check Result</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="17"/> + <source><b>PEP 8 Check Results</b> +<p>This dialog shows the results of the PEP 8 check. Double clicking an +entry will open an editor window and position the cursor at the respective line and position.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="34"/> + <source>Exclude Files:</source> + <translation type="unfinished">Не включать файлы:</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="41"/> + <source>Enter filename patterns of files to be excluded separated by a comma</source> + <translation type="unfinished">Задайте маски файлов для исключения, разделённые запятой</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="48"/> + <source>Press to clear the filter edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="68"/> + <source>Press to start the PEP 8 check run</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="71"/> + <source>Start</source> + <translation type="unfinished">Начало</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="78"/> + <source>Exclude Messages:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="92"/> + <source>Press to clear the exclude messages edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="149"/> + <source>Press to select the messages from a list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="152"/> + <source>...</source> + <translation type="unfinished">...</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="139"/> + <source>Press to clear the include messages edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="161"/> + <source>Select to repeat each message type</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="164"/> + <source>Repeat messages</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="209"/> + <source><b>Result List</b> +<p>This list shows the results of the PEP 8 check. Double clicking +an entry will open this entry in an editor window and position the cursor at +the respective line and position.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="225"/> + <source>File/Line</source> + <translation type="unfinished">Файл/Строка</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="230"/> + <source>Code</source> + <translation type="unfinished">Код</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="235"/> + <source>Message</source> + <translation type="unfinished">Сообщение</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="243"/> + <source>Shows the progress of the PEP 8 check action</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="50"/> + <source>Show</source> + <translation type="unfinished">Показать</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="52"/> + <source>Press to show all files containing an issue</source> + <translation type="unfinished">Показать все файлы, содержащие синтаксические ошибки</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="233"/> + <source>Error: {0}</source> + <translation type="unfinished">Ошибка: {0}</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="286"/> + <source>No issues found.</source> + <translation type="unfinished">Синтаксисические ошибки не найдены.</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="85"/> + <source>Enter message codes or categories to be excluded separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="132"/> + <source>Enter message codes or categories to be included separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="184"/> + <source>Press to load the default values</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="187"/> + <source>Load Defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="194"/> + <source>Press to store the current values as defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="197"/> + <source>Store Defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="125"/> + <source>Included Messages:</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>PixmapDiagram</name> <message> <location filename="Graphics/PixmapDiagram.py" line="159"/> @@ -24097,17 +24306,17 @@ <context> <name>Preferences</name> <message> - <location filename="Preferences/__init__.py" line="896"/> + <location filename="Preferences/__init__.py" line="895"/> <source>Export Preferences</source> <translation>Экспорт предпочтений</translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Import Preferences</source> <translation>Импорт предпочтений</translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Properties File (*.ini);;All Files (*)</source> <translation type="unfinished"></translation> </message> @@ -29362,7 +29571,7 @@ <translation>Переинициализировать и очистить</translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source>Drop Error</source> <translation>Ошибка Drag&&Drop</translation> </message> @@ -29372,7 +29581,7 @@ <translation>Нет.</translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source><p><b>{0}</b> is not a file.</p></source> <translation><p><b>{0}</b> не является файлом</p></translation> </message> @@ -35758,7 +35967,7 @@ <translation>Показать все файлы, содержащие синтаксические ошибки</translation> </message> <message> - <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="253"/> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269"/> <source>No issues found.</source> <translation>Синтаксисические ошибки не найдены.</translation> </message> @@ -35787,6 +35996,11 @@ <source>Start</source> <translation type="unfinished">Начало</translation> </message> + <message> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="188"/> + <source>Error: {0}</source> + <translation type="unfinished">Ошибка: {0}</translation> + </message> </context> <context> <name>SyntaxCheckerPlugin</name> @@ -36229,12 +36443,12 @@ <translation type="unfinished">Начало</translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="255"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="256"/> <source>Python2 interpreter not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="280"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="281"/> <source>Python2 interpreter did not finish within 15s.</source> <translation type="unfinished"></translation> </message> @@ -40978,7 +41192,7 @@ <context> <name>Utilities</name> <message> - <location filename="Utilities/__init__.py" line="956"/> + <location filename="Utilities/__init__.py" line="959"/> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>В строках вы можете использовать следующие %-коды:: <table> @@ -40993,12 +41207,12 @@ <tr><td>%%</td><td>знак процента</td></tr></table></p></translation> </message> <message> - <location filename="Utilities/__init__.py" line="1128"/> + <location filename="Utilities/__init__.py" line="1131"/> <source>Python2 interpreter not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Utilities/__init__.py" line="1173"/> + <location filename="Utilities/__init__.py" line="1176"/> <source>Python2 interpreter did not finish within 30s.</source> <translation type="unfinished"></translation> </message> @@ -42387,7 +42601,7 @@ <translation>Файл изменён</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3260"/> + <location filename="ViewManager/ViewManager.py" line="3261"/> <source>File: {0}</source> <translation>Файл: {0}</translation> </message> @@ -43196,17 +43410,17 @@ <translation>Открыть &закладки на файлы</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3605"/> + <location filename="ViewManager/ViewManager.py" line="3606"/> <source>&Clear</source> <translation>&Очистить</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3601"/> + <location filename="ViewManager/ViewManager.py" line="3602"/> <source>&Add</source> <translation>&Добавить</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3603"/> + <location filename="ViewManager/ViewManager.py" line="3604"/> <source>&Edit...</source> <translation>&Правка...</translation> </message> @@ -44234,12 +44448,12 @@ <translation>Проверка орфографии</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3264"/> + <location filename="ViewManager/ViewManager.py" line="3265"/> <source>Line: {0:5}</source> <translation>Строка: {0:5}</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3269"/> + <location filename="ViewManager/ViewManager.py" line="3270"/> <source>Pos: {0:5}</source> <translation>Позиция: {0:5}</translation> </message> @@ -44992,6 +45206,184 @@ </message> </context> <context> + <name>pep8</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="164"/> + <source>indentation contains mixed spaces and tabs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="166"/> + <source>indentation is not a multiple of four</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="168"/> + <source>expected an indented block</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="170"/> + <source>unexpected indentation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="172"/> + <source>indentation contains tabs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="174"/> + <source>whitespace after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="180"/> + <source>whitespace before '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="182"/> + <source>multiple spaces before operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="184"/> + <source>multiple spaces after operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="186"/> + <source>tab before operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="188"/> + <source>tab after operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="190"/> + <source>missing whitespace around operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="192"/> + <source>missing whitespace after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="194"/> + <source>multiple spaces after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="196"/> + <source>tab after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="198"/> + <source>no spaces around keyword / parameter equals</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="200"/> + <source>at least two spaces before inline comment</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="202"/> + <source>inline comment should start with '# '</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="204"/> + <source>trailing whitespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="206"/> + <source>no newline at end of file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="208"/> + <source>blank line contains whitespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="210"/> + <source>expected 1 blank line, found 0</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="212"/> + <source>expected 2 blank lines, found {0}</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="214"/> + <source>too many blank lines ({0})</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="216"/> + <source>blank lines found after function decorator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="218"/> + <source>blank line at end of file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="220"/> + <source>multiple imports on one line</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="222"/> + <source>line too long ({0} characters)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="224"/> + <source>.has_key() is deprecated, use 'in'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="226"/> + <source>deprecated form of raising exception</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="228"/> + <source>'<>' is deprecated, use '!='</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="230"/> + <source>backticks are deprecated, use 'repr()'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="232"/> + <source>multiple statements on one line (colon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="234"/> + <source>multiple statements on one line (semicolon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="264"/> + <source>no message for this code defined</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>py3Flakes</name> <message> <location filename="Utilities/py3flakes/messages.py" line="51"/>
--- a/i18n/eric5_tr.ts Sun Jan 09 14:25:16 2011 +0100 +++ b/i18n/eric5_tr.ts Sun Jan 09 18:16:46 2011 +0100 @@ -7246,7 +7246,7 @@ <translation>Tüm seçimi iptal et</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5653"/> + <location filename="QScintilla/Editor.py" line="5656"/> <source>Check spelling...</source> <translation>Yazım denetimi ...</translation> </message> @@ -7506,7 +7506,7 @@ <translation>Bekleme noktasını düzenle...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4023"/> + <location filename="QScintilla/Editor.py" line="4024"/> <source>Enable breakpoint</source> <translation>Beklemenoktasını kabul et</translation> </message> @@ -7661,52 +7661,52 @@ <translation type="obsolete"><p> <b>%1</b>dosyası burda zaten var.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion</source> <translation>Otomatik tamamlama</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion is not available because there is no autocompletion source set.</source> <translation>Otomatiktamamlama uygun değil çünkü bu otomatiktamamlama kaynağı değil.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4026"/> + <location filename="QScintilla/Editor.py" line="4027"/> <source>Disable breakpoint</source> <translation>Durmanoktasını iptal et</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Code Coverage</source> <translation>Kod Koruyucu</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Please select a coverage file</source> <translation>Lütfen bir koruyucu dosya seçiniz</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>Show Code Coverage Annotations</source> <translation>Kodların Dipnotunu Göster</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4351"/> + <location filename="QScintilla/Editor.py" line="4352"/> <source>All lines have been covered.</source> <translation>Tüm satırlar korumaya alındı.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>There is no coverage file available.</source> <translation>Hazırda koruma dosyası yok.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Profile Data</source> <translation>Veri Kesiti</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Please select a profile file</source> <translation>Lütfen kesit dosyasını seçiniz</translation> </message> @@ -7731,37 +7731,37 @@ <translation type="obsolete">Lütfen, kaldırılacak Tepegöz rapor dosyasını seçin</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>Syntax Error</source> <translation>Sözdizimi Hatası</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>No syntax error message available.</source> <translation>Uygun söz dizimi hata mesajı yok.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Macro Name</source> <translation>Makro Adı</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Select a macro name:</source> <translation>Bir makro ismi seç:</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4815"/> + <location filename="QScintilla/Editor.py" line="4818"/> <source>Load macro file</source> <translation>Makro dosyasını yükle</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Macro files (*.macro)</source> <translation>Makro dosyaları (*.macro)</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source>Error loading macro</source> <translation>Makronun yüklenmesinde hata</translation> </message> @@ -7776,12 +7776,12 @@ <translation type="obsolete"><p> <b>%1</b>makro dosyası bozuk.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Save macro file</source> <translation>Makro Dosyasını Kaydet</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source>Save macro</source> <translation>Makro Kaydet</translation> </message> @@ -7791,7 +7791,7 @@ <translation type="obsolete"><p><b>%1</b>makro dosyası zaten açık.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source>Error saving macro</source> <translation>Makronun kaydedilmesinde hata</translation> </message> @@ -7801,22 +7801,22 @@ <translation type="obsolete"><p> <b>%1</b> makro dosyası yazılamıyor.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Start Macro Recording</source> <translation>Makro Kaydı Başladı</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Macro recording is already active. Start new?</source> <translation>Makro kaydı şuan aktif. Yeniden başlasın mı?</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Macro Recording</source> <translation>Makro Kaydediliyor</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Enter name of the macro:</source> <translation>Makronun ismini gir:</translation> </message> @@ -7826,12 +7826,12 @@ <translation type="obsolete"><p><b>%1</b> dosyası eric4 açıkken değiştirildi.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5041"/> + <location filename="QScintilla/Editor.py" line="5044"/> <source><br><b>Warning:</b> You will loose your changes upon reopening it.</source> <translation><br><b>Uyarı:</b> Yapılan değişiklikleri yeniden açarken kaybedebilirsiniz.</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5045"/> + <location filename="QScintilla/Editor.py" line="5048"/> <source>File changed</source> <translation>Dosya değiştirilmiş</translation> </message> @@ -7841,7 +7841,7 @@ <translation type="obsolete">%1 (ro)</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source>Drop Error</source> <translation>Düşme hatası</translation> </message> @@ -7851,47 +7851,47 @@ <translation type="obsolete"><p><b>%1</b>dosya değil.</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5259"/> + <location filename="QScintilla/Editor.py" line="5262"/> <source>Resources</source> <translation>Kaynaklar</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5261"/> + <location filename="QScintilla/Editor.py" line="5264"/> <source>Add file...</source> <translation>Dosya ekle...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5263"/> + <location filename="QScintilla/Editor.py" line="5266"/> <source>Add files...</source> <translation>Dosyaları ekle...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5265"/> + <location filename="QScintilla/Editor.py" line="5268"/> <source>Add aliased file...</source> <translation>Kısaltmalar dosyasına ekle...</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5267"/> - <source>Add localized resource...</source> - <translation>Yaral kaynak ekle...</translation> - </message> - <message> <location filename="QScintilla/Editor.py" line="5270"/> + <source>Add localized resource...</source> + <translation>Yaral kaynak ekle...</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5273"/> <source>Add resource frame</source> <translation>Çerçeve kaynağı ekle</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5288"/> + <location filename="QScintilla/Editor.py" line="5291"/> <source>Add file resource</source> <translation>Dosya kaynağını ekle</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5304"/> + <location filename="QScintilla/Editor.py" line="5307"/> <source>Add file resources</source> <translation>Dosya kaynaklarını ekle</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5331"/> + <location filename="QScintilla/Editor.py" line="5334"/> <source>Add aliased file resource</source> <translation>Kısaltmalar dosyası kaynağını ekle</translation> </message> @@ -7901,42 +7901,42 @@ <translation type="obsolete">Kısaltmalar dosyası için <b>%1</b>:</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5392"/> + <location filename="QScintilla/Editor.py" line="5395"/> <source>Package Diagram</source> <translation>Paket Şeması</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5392"/> + <location filename="QScintilla/Editor.py" line="5395"/> <source>Include class attributes?</source> <translation>Sınıf nitelikleri dahil edilsin mi?</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Imports Diagram</source> <translation>Şemayı İçeal</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Include imports from external modules?</source> <translation>Harici modüllerdan içe aktarım dahil edilsin mi?</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5421"/> + <location filename="QScintilla/Editor.py" line="5424"/> <source>Application Diagram</source> <translation>Uygulama Şeması</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5421"/> + <location filename="QScintilla/Editor.py" line="5424"/> <source>Include module names?</source> <translation>Modül isimleri dahil edilsin mi?</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5655"/> + <location filename="QScintilla/Editor.py" line="5658"/> <source>Add to dictionary</source> <translation>Sözlüğe ekle</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5657"/> + <location filename="QScintilla/Editor.py" line="5660"/> <source>Ignore All</source> <translation>Hepsini Görmezden Gel</translation> </message> @@ -7971,37 +7971,37 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4829"/> + <location filename="QScintilla/Editor.py" line="4832"/> <source><p>The macro file <b>{0}</b> could not be read.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source><p>The macro file <b>{0}</b> is corrupt.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source><p>The macro file <b>{0}</b> could not be written.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5036"/> + <location filename="QScintilla/Editor.py" line="5039"/> <source><p>The file <b>{0}</b> has been changed while it was opened in eric5. Reread it?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5124"/> + <location filename="QScintilla/Editor.py" line="5127"/> <source>{0} (ro)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source><p><b>{0}</b> is not a file.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5331"/> + <location filename="QScintilla/Editor.py" line="5334"/> <source>Alias for file <b>{0}</b>:</source> <translation type="unfinished"></translation> </message> @@ -8026,12 +8026,12 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>py3flakes Warning</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>No py3flakes warning message available.</source> <translation type="unfinished"></translation> </message> @@ -8041,17 +8041,17 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source><p>The macro file <b>{0}</b> already exists. Overwrite it?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4732"/> + <location filename="QScintilla/Editor.py" line="4735"/> <source>Warning: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4738"/> + <location filename="QScintilla/Editor.py" line="4741"/> <source>Error: {0}</source> <translation type="unfinished"></translation> </message> @@ -24793,6 +24793,215 @@ </message> </context> <context> + <name>Pep8CheckerPlugin</name> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>Check PEP 8 Compliance</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>PEP &8 Compliance...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="79"/> + <source>Check PEP 8 compliance.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="175"/> + <source><b>Check PEP 8 Compliance...</b><p>This checks Python files for compliance to the conventions given in PEP 8.</p></source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Pep8CodeSelectionDialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="14"/> + <source>PEP 8 Message Codes</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="23"/> + <source>Select the message codes from the list:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="30"/> + <source>Select the message codes from this table</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="55"/> + <source>Code</source> + <translation type="unfinished">Kod</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="60"/> + <source>Message</source> + <translation type="unfinished">Mesaj</translation> + </message> +</context> +<context> + <name>Pep8Dialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="14"/> + <source>PEP 8 Check Result</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="17"/> + <source><b>PEP 8 Check Results</b> +<p>This dialog shows the results of the PEP 8 check. Double clicking an +entry will open an editor window and position the cursor at the respective line and position.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="34"/> + <source>Exclude Files:</source> + <translation type="unfinished">Dışarda Tutulan Dosyalar:</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="41"/> + <source>Enter filename patterns of files to be excluded separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="48"/> + <source>Press to clear the filter edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="68"/> + <source>Press to start the PEP 8 check run</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="71"/> + <source>Start</source> + <translation type="unfinished">Başla</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="78"/> + <source>Exclude Messages:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="92"/> + <source>Press to clear the exclude messages edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="149"/> + <source>Press to select the messages from a list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="152"/> + <source>...</source> + <translation type="unfinished">...</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="139"/> + <source>Press to clear the include messages edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="161"/> + <source>Select to repeat each message type</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="164"/> + <source>Repeat messages</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="209"/> + <source><b>Result List</b> +<p>This list shows the results of the PEP 8 check. Double clicking +an entry will open this entry in an editor window and position the cursor at +the respective line and position.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="225"/> + <source>File/Line</source> + <translation type="unfinished">Dosya/Satır</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="230"/> + <source>Code</source> + <translation type="unfinished">Kod</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="235"/> + <source>Message</source> + <translation type="unfinished">Mesaj</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="243"/> + <source>Shows the progress of the PEP 8 check action</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="50"/> + <source>Show</source> + <translation type="unfinished">Göster</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="52"/> + <source>Press to show all files containing an issue</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="233"/> + <source>Error: {0}</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="286"/> + <source>No issues found.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="85"/> + <source>Enter message codes or categories to be excluded separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="132"/> + <source>Enter message codes or categories to be included separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="184"/> + <source>Press to load the default values</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="187"/> + <source>Load Defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="194"/> + <source>Press to store the current values as defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="197"/> + <source>Store Defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="125"/> + <source>Included Messages:</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>PixmapDiagram</name> <message> <location filename="Graphics/PixmapDiagram.py" line="159"/> @@ -25602,17 +25811,17 @@ <context> <name>Preferences</name> <message> - <location filename="Preferences/__init__.py" line="896"/> + <location filename="Preferences/__init__.py" line="895"/> <source>Export Preferences</source> <translation>Tercihleri Dışarı Aktar</translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Import Preferences</source> <translation>Tercihleri İçe Aktar</translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Properties File (*.ini);;All Files (*)</source> <translation type="unfinished"></translation> </message> @@ -31499,7 +31708,7 @@ <translation type="obsolete">Kabuk dili "%1" desteklenmiyor.</translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source>Drop Error</source> <translation>Düşme hatası</translation> </message> @@ -31535,7 +31744,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source><p><b>{0}</b> is not a file.</p></source> <translation type="unfinished"></translation> </message> @@ -38083,7 +38292,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="253"/> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269"/> <source>No issues found.</source> <translation type="unfinished"></translation> </message> @@ -38112,6 +38321,11 @@ <source>Start</source> <translation type="unfinished">Başla</translation> </message> + <message> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="188"/> + <source>Error: {0}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>SyntaxCheckerPlugin</name> @@ -38552,12 +38766,12 @@ <translation type="unfinished">Başla</translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="255"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="256"/> <source>Python2 interpreter not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="280"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="281"/> <source>Python2 interpreter did not finish within 15s.</source> <translation type="unfinished"></translation> </message> @@ -43699,17 +43913,17 @@ <context> <name>Utilities</name> <message> - <location filename="Utilities/__init__.py" line="956"/> + <location filename="Utilities/__init__.py" line="959"/> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>%-alanlarda çeşitli kodları kullanabilirsiniz. Tanımlanan kodlar:<table><tr><td>%C</td><td>geçerli düzenleyicinin imlecinin sütunu</td></tr><tr><td>%D</td><td>geçerli düzenleyicinin dizini</td></tr><tr><td>%F</td><td>geçerli düzenleyicinin dosya adı</td></tr><tr><td>%H</td><td>geçerli kullancının ana dizini</td></tr><tr><td>%L</td><td>geçerli düzenleyicinin imlecinin satırı</td></tr><tr><td>%P</td><td>geçerli projenin yolu</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>Geçici kullanıcının kullanıcı adı</td></tr><tr><td>%%</td><td>oran işareti</td></tr></table></p></translation> </message> <message> - <location filename="Utilities/__init__.py" line="1128"/> + <location filename="Utilities/__init__.py" line="1131"/> <source>Python2 interpreter not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Utilities/__init__.py" line="1173"/> + <location filename="Utilities/__init__.py" line="1176"/> <source>Python2 interpreter did not finish within 30s.</source> <translation type="unfinished"></translation> </message> @@ -46901,17 +47115,17 @@ <translation type="obsolete">Sütun: %1</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3605"/> + <location filename="ViewManager/ViewManager.py" line="3606"/> <source>&Clear</source> <translation>T&emizle</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3601"/> + <location filename="ViewManager/ViewManager.py" line="3602"/> <source>&Add</source> <translation>&Ekle</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3603"/> + <location filename="ViewManager/ViewManager.py" line="3604"/> <source>&Edit...</source> <translation>Düz&en...</translation> </message> @@ -46921,17 +47135,17 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3260"/> + <location filename="ViewManager/ViewManager.py" line="3261"/> <source>File: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3264"/> + <location filename="ViewManager/ViewManager.py" line="3265"/> <source>Line: {0:5}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3269"/> + <location filename="ViewManager/ViewManager.py" line="3270"/> <source>Pos: {0:5}</source> <translation type="unfinished"></translation> </message> @@ -47863,6 +48077,184 @@ </message> </context> <context> + <name>pep8</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="164"/> + <source>indentation contains mixed spaces and tabs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="166"/> + <source>indentation is not a multiple of four</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="168"/> + <source>expected an indented block</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="170"/> + <source>unexpected indentation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="172"/> + <source>indentation contains tabs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="174"/> + <source>whitespace after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="180"/> + <source>whitespace before '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="182"/> + <source>multiple spaces before operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="184"/> + <source>multiple spaces after operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="186"/> + <source>tab before operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="188"/> + <source>tab after operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="190"/> + <source>missing whitespace around operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="192"/> + <source>missing whitespace after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="194"/> + <source>multiple spaces after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="196"/> + <source>tab after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="198"/> + <source>no spaces around keyword / parameter equals</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="200"/> + <source>at least two spaces before inline comment</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="202"/> + <source>inline comment should start with '# '</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="204"/> + <source>trailing whitespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="206"/> + <source>no newline at end of file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="208"/> + <source>blank line contains whitespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="210"/> + <source>expected 1 blank line, found 0</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="212"/> + <source>expected 2 blank lines, found {0}</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="214"/> + <source>too many blank lines ({0})</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="216"/> + <source>blank lines found after function decorator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="218"/> + <source>blank line at end of file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="220"/> + <source>multiple imports on one line</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="222"/> + <source>line too long ({0} characters)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="224"/> + <source>.has_key() is deprecated, use 'in'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="226"/> + <source>deprecated form of raising exception</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="228"/> + <source>'<>' is deprecated, use '!='</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="230"/> + <source>backticks are deprecated, use 'repr()'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="232"/> + <source>multiple statements on one line (colon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="234"/> + <source>multiple statements on one line (semicolon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="264"/> + <source>no message for this code defined</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>py3Flakes</name> <message> <location filename="Utilities/py3flakes/messages.py" line="51"/>
--- a/i18n/eric5_zh_CN.GB2312.ts Sun Jan 09 14:25:16 2011 +0100 +++ b/i18n/eric5_zh_CN.GB2312.ts Sun Jan 09 18:16:46 2011 +0100 @@ -7249,7 +7249,7 @@ <translation>全部取消选择</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5653"/> + <location filename="QScintilla/Editor.py" line="5656"/> <source>Check spelling...</source> <translation>正在进行拼写检查……</translation> </message> @@ -7504,7 +7504,7 @@ <translation>编辑断点……</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4023"/> + <location filename="QScintilla/Editor.py" line="4024"/> <source>Enable breakpoint</source> <translation>允许断点</translation> </message> @@ -7659,52 +7659,52 @@ <translation type="obsolete"><p>文件 <b>%1</b> 已存在。</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion</source> <translation>自动完成</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="3560"/> + <location filename="QScintilla/Editor.py" line="3561"/> <source>Autocompletion is not available because there is no autocompletion source set.</source> <translation>自动完成无效,没有设定自动完成源。</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4026"/> + <location filename="QScintilla/Editor.py" line="4027"/> <source>Disable breakpoint</source> <translation>去除断点</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Code Coverage</source> <translation>代码覆盖率</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4309"/> + <location filename="QScintilla/Editor.py" line="4310"/> <source>Please select a coverage file</source> <translation>请选择一个覆盖率文件</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>Show Code Coverage Annotations</source> <translation>显示代码覆盖率注解</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4351"/> + <location filename="QScintilla/Editor.py" line="4352"/> <source>All lines have been covered.</source> <translation>所有行均被已覆盖。</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4355"/> + <location filename="QScintilla/Editor.py" line="4356"/> <source>There is no coverage file available.</source> <translation>没有有效的覆盖率文件。</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Profile Data</source> <translation>剖析数据</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4447"/> + <location filename="QScintilla/Editor.py" line="4448"/> <source>Please select a profile file</source> <translation>请选择一个剖析文件</translation> </message> @@ -7729,37 +7729,37 @@ <translation type="obsolete">请选择要移除的循环报告</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>Syntax Error</source> <translation>语法错误</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4565"/> + <location filename="QScintilla/Editor.py" line="4566"/> <source>No syntax error message available.</source> <translation>语法错误消息无效。</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Macro Name</source> <translation>宏名称</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4787"/> + <location filename="QScintilla/Editor.py" line="4790"/> <source>Select a macro name:</source> <translation>选择一个宏名称:</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4815"/> + <location filename="QScintilla/Editor.py" line="4818"/> <source>Load macro file</source> <translation>输入宏文件</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Macro files (*.macro)</source> <translation>宏文件 (*.macro)</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source>Error loading macro</source> <translation>载入宏文件出错</translation> </message> @@ -7774,12 +7774,12 @@ <translation type="obsolete"><p>宏文件 <b>%1</b> 已损坏。</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4855"/> + <location filename="QScintilla/Editor.py" line="4858"/> <source>Save macro file</source> <translation>保存宏文件</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source>Save macro</source> <translation>保存宏</translation> </message> @@ -7789,7 +7789,7 @@ <translation type="obsolete"><p>宏文件 <b>%1</b> 已存在。</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source>Error saving macro</source> <translation>保存宏出错</translation> </message> @@ -7799,22 +7799,22 @@ <translation type="obsolete"><p>无法写入宏文件 <b>%1</b> 。</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Start Macro Recording</source> <translation>开始宏录制</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4898"/> + <location filename="QScintilla/Editor.py" line="4901"/> <source>Macro recording is already active. Start new?</source> <translation>宏录制已激活。开始录制新宏?</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Macro Recording</source> <translation>宏录制</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4923"/> + <location filename="QScintilla/Editor.py" line="4926"/> <source>Enter name of the macro:</source> <translation>输入宏名称:</translation> </message> @@ -7824,12 +7824,12 @@ <translation type="obsolete"><p>在 Eric4 中打开时文件 <b>%1</b> 已改变。</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5041"/> + <location filename="QScintilla/Editor.py" line="5044"/> <source><br><b>Warning:</b> You will loose your changes upon reopening it.</source> <translation><br><b>警告:</b> 重新打开将导致更改丢失。</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5045"/> + <location filename="QScintilla/Editor.py" line="5048"/> <source>File changed</source> <translation>文件已改变</translation> </message> @@ -7839,7 +7839,7 @@ <translation type="obsolete">%1 (ro)</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source>Drop Error</source> <translation>降落误差</translation> </message> @@ -7849,47 +7849,47 @@ <translation type="obsolete"><p><b>%1</b> 不是一个文件。</p></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5259"/> + <location filename="QScintilla/Editor.py" line="5262"/> <source>Resources</source> <translation>资源</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5261"/> + <location filename="QScintilla/Editor.py" line="5264"/> <source>Add file...</source> <translation>添加文件……</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5263"/> + <location filename="QScintilla/Editor.py" line="5266"/> <source>Add files...</source> <translation>添加文件……</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5265"/> + <location filename="QScintilla/Editor.py" line="5268"/> <source>Add aliased file...</source> <translation>添加别名文件……</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5267"/> - <source>Add localized resource...</source> - <translation>添加本地资源……</translation> - </message> - <message> <location filename="QScintilla/Editor.py" line="5270"/> + <source>Add localized resource...</source> + <translation>添加本地资源……</translation> + </message> + <message> + <location filename="QScintilla/Editor.py" line="5273"/> <source>Add resource frame</source> <translation>添加资源结构</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5288"/> + <location filename="QScintilla/Editor.py" line="5291"/> <source>Add file resource</source> <translation>添加文件资源</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5304"/> + <location filename="QScintilla/Editor.py" line="5307"/> <source>Add file resources</source> <translation>添加多个文件资源</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5331"/> + <location filename="QScintilla/Editor.py" line="5334"/> <source>Add aliased file resource</source> <translation>添加别名文件资源</translation> </message> @@ -7899,42 +7899,42 @@ <translation type="obsolete">重命名文件 <b>%1</b>:</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5392"/> + <location filename="QScintilla/Editor.py" line="5395"/> <source>Package Diagram</source> <translation>程序包图</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5392"/> + <location filename="QScintilla/Editor.py" line="5395"/> <source>Include class attributes?</source> <translation>包含类属性?</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Imports Diagram</source> <translation>引用图</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5409"/> + <location filename="QScintilla/Editor.py" line="5412"/> <source>Include imports from external modules?</source> <translation>从外部模块包含引用?</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5421"/> + <location filename="QScintilla/Editor.py" line="5424"/> <source>Application Diagram</source> <translation>应用程序图</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5421"/> + <location filename="QScintilla/Editor.py" line="5424"/> <source>Include module names?</source> <translation>包含模块名?</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5655"/> + <location filename="QScintilla/Editor.py" line="5658"/> <source>Add to dictionary</source> <translation>添加到文件夹</translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5657"/> + <location filename="QScintilla/Editor.py" line="5660"/> <source>Ignore All</source> <translation>全部忽略</translation> </message> @@ -7974,37 +7974,37 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4829"/> + <location filename="QScintilla/Editor.py" line="4832"/> <source><p>The macro file <b>{0}</b> could not be read.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4836"/> + <location filename="QScintilla/Editor.py" line="4839"/> <source><p>The macro file <b>{0}</b> is corrupt.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4887"/> + <location filename="QScintilla/Editor.py" line="4890"/> <source><p>The macro file <b>{0}</b> could not be written.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5036"/> + <location filename="QScintilla/Editor.py" line="5039"/> <source><p>The file <b>{0}</b> has been changed while it was opened in eric5. Reread it?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5124"/> + <location filename="QScintilla/Editor.py" line="5127"/> <source>{0} (ro)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5241"/> + <location filename="QScintilla/Editor.py" line="5244"/> <source><p><b>{0}</b> is not a file.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="5331"/> + <location filename="QScintilla/Editor.py" line="5334"/> <source>Alias for file <b>{0}</b>:</source> <translation type="unfinished"></translation> </message> @@ -8029,12 +8029,12 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>py3flakes Warning</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4689"/> + <location filename="QScintilla/Editor.py" line="4692"/> <source>No py3flakes warning message available.</source> <translation type="unfinished"></translation> </message> @@ -8044,17 +8044,17 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4872"/> + <location filename="QScintilla/Editor.py" line="4875"/> <source><p>The macro file <b>{0}</b> already exists. Overwrite it?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4732"/> + <location filename="QScintilla/Editor.py" line="4735"/> <source>Warning: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Editor.py" line="4738"/> + <location filename="QScintilla/Editor.py" line="4741"/> <source>Error: {0}</source> <translation type="unfinished"></translation> </message> @@ -24868,6 +24868,215 @@ </message> </context> <context> + <name>Pep8CheckerPlugin</name> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>Check PEP 8 Compliance</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="171"/> + <source>PEP &8 Compliance...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="79"/> + <source>Check PEP 8 compliance.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/PluginPep8Checker.py" line="175"/> + <source><b>Check PEP 8 Compliance...</b><p>This checks Python files for compliance to the conventions given in PEP 8.</p></source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Pep8CodeSelectionDialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="14"/> + <source>PEP 8 Message Codes</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="23"/> + <source>Select the message codes from the list:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="30"/> + <source>Select the message codes from this table</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="55"/> + <source>Code</source> + <translation type="unfinished">代码</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.ui" line="60"/> + <source>Message</source> + <translation type="unfinished">消息</translation> + </message> +</context> +<context> + <name>Pep8Dialog</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="14"/> + <source>PEP 8 Check Result</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="17"/> + <source><b>PEP 8 Check Results</b> +<p>This dialog shows the results of the PEP 8 check. Double clicking an +entry will open an editor window and position the cursor at the respective line and position.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="34"/> + <source>Exclude Files:</source> + <translation type="unfinished">排除文件:</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="41"/> + <source>Enter filename patterns of files to be excluded separated by a comma</source> + <translation type="unfinished">输入要排除文件的文件名样式,用逗号分隔</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="48"/> + <source>Press to clear the filter edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="68"/> + <source>Press to start the PEP 8 check run</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="71"/> + <source>Start</source> + <translation type="unfinished">开始</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="78"/> + <source>Exclude Messages:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="92"/> + <source>Press to clear the exclude messages edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="149"/> + <source>Press to select the messages from a list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="152"/> + <source>...</source> + <translation type="unfinished">……</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="139"/> + <source>Press to clear the include messages edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="161"/> + <source>Select to repeat each message type</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="164"/> + <source>Repeat messages</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="209"/> + <source><b>Result List</b> +<p>This list shows the results of the PEP 8 check. Double clicking +an entry will open this entry in an editor window and position the cursor at +the respective line and position.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="225"/> + <source>File/Line</source> + <translation type="unfinished">文件/行</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="230"/> + <source>Code</source> + <translation type="unfinished">代码</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="235"/> + <source>Message</source> + <translation type="unfinished">消息</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="243"/> + <source>Shows the progress of the PEP 8 check action</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="50"/> + <source>Show</source> + <translation type="unfinished">显示</translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="52"/> + <source>Press to show all files containing an issue</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="233"/> + <source>Error: {0}</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.py" line="286"/> + <source>No issues found.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="85"/> + <source>Enter message codes or categories to be excluded separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="132"/> + <source>Enter message codes or categories to be included separated by a comma</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="184"/> + <source>Press to load the default values</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="187"/> + <source>Load Defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="194"/> + <source>Press to store the current values as defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="197"/> + <source>Store Defaults</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/Pep8Dialog.ui" line="125"/> + <source>Included Messages:</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>PixmapDiagram</name> <message> <location filename="Graphics/PixmapDiagram.py" line="159"/> @@ -25738,17 +25947,17 @@ <context> <name>Preferences</name> <message> - <location filename="Preferences/__init__.py" line="896"/> + <location filename="Preferences/__init__.py" line="895"/> <source>Export Preferences</source> <translation>导出首选项</translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Import Preferences</source> <translation>导入首选项</translation> </message> <message> - <location filename="Preferences/__init__.py" line="922"/> + <location filename="Preferences/__init__.py" line="921"/> <source>Properties File (*.ini);;All Files (*)</source> <translation type="unfinished"></translation> </message> @@ -31993,7 +32202,7 @@ </translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source>Drop Error</source> <translation>降落误差</translation> </message> @@ -32029,7 +32238,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="QScintilla/Shell.py" line="1360"/> + <location filename="QScintilla/Shell.py" line="1361"/> <source><p><b>{0}</b> is not a file.</p></source> <translation type="unfinished"></translation> </message> @@ -38820,7 +39029,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="253"/> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="269"/> <source>No issues found.</source> <translation type="unfinished"></translation> </message> @@ -38849,6 +39058,11 @@ <source>Start</source> <translation type="unfinished">开始</translation> </message> + <message> + <location filename="Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py" line="188"/> + <source>Error: {0}</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>SyntaxCheckerPlugin</name> @@ -39293,12 +39507,12 @@ <translation type="unfinished">开始</translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="255"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="256"/> <source>Python2 interpreter not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="280"/> + <location filename="Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py" line="281"/> <source>Python2 interpreter did not finish within 15s.</source> <translation type="unfinished"></translation> </message> @@ -44585,17 +44799,17 @@ <context> <name>Utilities</name> <message> - <location filename="Utilities/__init__.py" line="956"/> + <location filename="Utilities/__init__.py" line="959"/> <source><p>You may use %-codes as placeholders in the string. Supported codes are:<table><tr><td>%C</td><td>column of the cursor of the current editor</td></tr><tr><td>%D</td><td>directory of the current editor</td></tr><tr><td>%F</td><td>filename of the current editor</td></tr><tr><td>%H</td><td>home directory of the current user</td></tr><tr><td>%L</td><td>line of the cursor of the current editor</td></tr><tr><td>%P</td><td>path of the current project</td></tr><tr><td>%S</td><td>selected text of the current editor</td></tr><tr><td>%U</td><td>username of the current user</td></tr><tr><td>%%</td><td>the percent sign</td></tr></table></p></source> <translation><p>可以在字符串中使用“%-代码”作为占位符。支持的代码有:<table><tr><td>%C</td><td>当前编辑器的光标所在列</td></tr><tr><td>%D</td><td>当前编辑器的文件夹</td></tr><tr><td>%F</td><td>当前编辑器的文件名</td></tr><tr><td>%H</td><td>当前用户的根目录</td></tr><tr><td>%L</td><td>当前编辑器的光标所在行</td></tr><tr><td>%P</td><td>当前项目的路径</td></tr><tr><td>%S</td><td>当前编辑器中选择的文本</td></tr><tr><td>%U</td><td>当前用户的用户名</td></tr><tr><td>%%</td><td>百分比符号</td></tr></table></p></translation> </message> <message> - <location filename="Utilities/__init__.py" line="1128"/> + <location filename="Utilities/__init__.py" line="1131"/> <source>Python2 interpreter not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="Utilities/__init__.py" line="1173"/> + <location filename="Utilities/__init__.py" line="1176"/> <source>Python2 interpreter did not finish within 30s.</source> <translation type="unfinished"></translation> </message> @@ -47799,17 +48013,17 @@ <translation type="obsolete">位置: %1</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3605"/> + <location filename="ViewManager/ViewManager.py" line="3606"/> <source>&Clear</source> <translation>清除(&C)</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3601"/> + <location filename="ViewManager/ViewManager.py" line="3602"/> <source>&Add</source> <translation>添加(&A)</translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3603"/> + <location filename="ViewManager/ViewManager.py" line="3604"/> <source>&Edit...</source> <translation>编辑(&E)……</translation> </message> @@ -47819,17 +48033,17 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3260"/> + <location filename="ViewManager/ViewManager.py" line="3261"/> <source>File: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3264"/> + <location filename="ViewManager/ViewManager.py" line="3265"/> <source>Line: {0:5}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="ViewManager/ViewManager.py" line="3269"/> + <location filename="ViewManager/ViewManager.py" line="3270"/> <source>Pos: {0:5}</source> <translation type="unfinished"></translation> </message> @@ -48762,6 +48976,184 @@ </message> </context> <context> + <name>pep8</name> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="164"/> + <source>indentation contains mixed spaces and tabs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="166"/> + <source>indentation is not a multiple of four</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="168"/> + <source>expected an indented block</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="170"/> + <source>unexpected indentation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="172"/> + <source>indentation contains tabs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="174"/> + <source>whitespace after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="180"/> + <source>whitespace before '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="182"/> + <source>multiple spaces before operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="184"/> + <source>multiple spaces after operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="186"/> + <source>tab before operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="188"/> + <source>tab after operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="190"/> + <source>missing whitespace around operator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="192"/> + <source>missing whitespace after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="194"/> + <source>multiple spaces after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="196"/> + <source>tab after '{0}'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="198"/> + <source>no spaces around keyword / parameter equals</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="200"/> + <source>at least two spaces before inline comment</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="202"/> + <source>inline comment should start with '# '</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="204"/> + <source>trailing whitespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="206"/> + <source>no newline at end of file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="208"/> + <source>blank line contains whitespace</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="210"/> + <source>expected 1 blank line, found 0</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="212"/> + <source>expected 2 blank lines, found {0}</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="214"/> + <source>too many blank lines ({0})</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="216"/> + <source>blank lines found after function decorator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="218"/> + <source>blank line at end of file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="220"/> + <source>multiple imports on one line</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="222"/> + <source>line too long ({0} characters)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="224"/> + <source>.has_key() is deprecated, use 'in'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="226"/> + <source>deprecated form of raising exception</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="228"/> + <source>'<>' is deprecated, use '!='</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="230"/> + <source>backticks are deprecated, use 'repr()'</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="232"/> + <source>multiple statements on one line (colon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="234"/> + <source>multiple statements on one line (semicolon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="Plugins/CheckerPlugins/Pep8/pep8.py" line="264"/> + <source>no message for this code defined</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>py3Flakes</name> <message> <location filename="Utilities/py3flakes/messages.py" line="51"/>