sublimelsp / LSP

Client implementation of the Language Server Protocol for Sublime Text
https://lsp.sublimetext.io/
MIT License
1.65k stars 182 forks source link

pycodestyle plugin ignore setting ignored #244

Closed evandrocoan closed 6 years ago

evandrocoan commented 6 years ago

How to disable some pycodestyle PEP lintings rules?

I tried this, but did no good:

{
    "clients": {
        "pyls": {
            "enabled": true,
            "plugins": {
                "pycodestyle": {
                    "ignore": [
                        "D100",
                        "D103",
                        "E501",
                        "E201"
                    ]
                }
            }
        }
    }
}

image

Full console output:

``` DPI scale: 1 startup, version: 3156 windows x32 channel: dev executable: /F/SublimeText/sublime_text.exe working dir: /F/SublimeText packages path: /F/SublimeText/Data/Packages state path: /F/SublimeText/Data/Local zip path: /F/SublimeText/Packages zip path: /F/SublimeText/Data/Installed Packages ignored_packages: ["Anaconda", "ApplySyntax", "BracketHighlighter", "BuildView", "C++ Completions", "C++ Qt Completions", "C++ Snippets", "CodeIntel", "ColorHelper", "DictionaryAutoComplete", "FileManager", "Find++", "Gist", "Git", "GitGutter", "GotoLastEditEnhanced", "Javatar", "JediPythonAutoCompletion", "LocalHistory", "MatlabCompletions", "MatlabFilenameAutoComplete", "MySQLSnippets", "ProjectSpecificSyntax", "ScopeAlways", "SublimeLinter-javac", "SyncedSideBar", "TypeScript", "Vintage", "WordHighlight"] pre session restore time: 3.42527 loading dictionary Packages/Language - English and Portuguese/EN_PT.dic startup time: 6.03127 first paint time: 6.03827 Packages/PackageDev/Package/Sublime Text Settings/Sublime Text Settings.sublime-syntax: context scope:source.regexp-replacement#escaped has a scope name, but is unreachable, so the name will never be used reloading plugin Default.arithmetic reloading plugin Default.auto_indent_tag reloading plugin Default.block reloading plugin Default.colors reloading plugin Default.comment reloading plugin Default.convert_color_scheme reloading plugin Default.convert_syntax reloading plugin Default.copy_path reloading plugin Default.delete_word reloading plugin Default.detect_indentation reloading plugin Default.duplicate_line reloading plugin Default.echo reloading plugin Default.exec reloading plugin Default.fold reloading plugin Default.font reloading plugin Default.goto_line reloading plugin Default.history_list reloading plugin Default.indentation reloading plugin Default.install_package_control reloading plugin Default.kill_ring reloading plugin Default.mark reloading plugin Default.new_templates reloading plugin Default.open_context_url reloading plugin Default.open_in_browser reloading plugin Default.pane reloading plugin Default.paragraph reloading plugin Default.paste_from_history reloading plugin Default.profile reloading plugin Default.quick_panel reloading plugin Default.rename reloading plugin Default.run_syntax_tests reloading plugin Default.save_on_focus_lost reloading plugin Default.scroll reloading plugin Default.set_unsaved_view_name reloading plugin Default.settings reloading plugin Default.show_scope_name reloading plugin Default.side_bar reloading plugin Default.sort reloading plugin Default.swap_line reloading plugin Default.switch_file reloading plugin Default.symbol reloading plugin Default.transform reloading plugin Default.transpose reloading plugin Default.trim_trailing_white_space reloading plugin Default.ui reloading plugin CSS.css_completions reloading plugin Diff.diff reloading plugin HTML.encode_html_entities reloading plugin HTML.html_completions reloading plugin ShellScript.ShellScript reloading plugin 0_packages_manager_loader.00-packages_manager reloading plugin 0_packages_manager_loader.01-package_setting_context reloading plugin 0_packages_manager_loader.01-pygments reloading plugin 0_packages_manager_loader.10-PythonDebugTools reloading plugin 0_packages_manager_loader.15-coverage reloading plugin 0_packages_manager_loader.20-EstimatedTimeLeft reloading plugin 0_packages_manager_loader.30-ChannelManager reloading plugin 0_packages_manager_loader.50-backrefs reloading plugin 0_packages_manager_loader.50-markupsafe reloading plugin 0_packages_manager_loader.50-pymdownx reloading plugin 0_packages_manager_loader.50-python-markdown reloading plugin 0_packages_manager_loader.50-pyyaml reloading plugin 0_packages_manager_loader.50-regex reloading plugin 0_packages_manager_loader.51-python-jinja2 reloading plugin 0_packages_manager_loader.55-jsonschema reloading plugin 0_packages_manager_loader.55-mdpopups reloading plugin tests reloading plugin 0_settings_loader.install_package_control_extended reloading plugin 0_settings_loader.synced_side_bar_watcher reloading plugin A File Icon.A File Icon reloading plugin AceJump.ace_jump reloading plugin ActiveViewJumpBack.active_view_jump_back reloading plugin AddFolderToProject.AddFolderToProject reloading plugin AdvancedCSV.csvplugin reloading plugin Alignment.Alignment reloading plugin AlignTab.aligner reloading plugin AlignTab.aligntab reloading plugin AlignTab.hist reloading plugin AlignTab.parser reloading plugin AlignTab.table reloading plugin AlignTab.wclen reloading plugin AllAutocomplete.all_views_completions reloading plugin AltUp.run_multiple_commands reloading plugin Amxmodx.AMXXEditor reloading plugin AmxxChannel.commands reloading plugin AmxxChannel.fix_main_menus reloading plugin AmxxChannel.settings reloading plugin ANSIescape.ansi reloading plugin AutoFileName.autofilename reloading plugin AutoFileName.getimageinfo reloading plugin AutomaticPackageReloader.package_reloader reloading plugin AutoRefresh.AutoRefresh reloading plugin AutoWrap.autowrap reloading plugin BetterCoffeeScript.CoffeeScript reloading plugin BetterFindBuffer.find_results reloading plugin BufferScroll.BufferScroll reloading plugin CaseConversion.case_conversion reloading plugin CaseConversion.case_parse reloading plugin CaseConversion.ToggleTitleCase reloading plugin ChainOfCommand.chain reloading plugin ChangeQuotes.change_quotes reloading plugin ChannelRepositoryTools.ordereddict reloading plugin ChannelRepositoryTools.tests reloading plugin ChannelRepositoryTools.upgrade reloading plugin ClearCursorsCarets.clear_cursors_carets reloading plugin ClickableURLs.clickable_urls reloading plugin ClipboardScopeCopy.clipboard_scope_copy reloading plugin Color Highlighter.color_converter reloading plugin Color Highlighter.color_highlighter reloading plugin Color Highlighter.color_hover_listener reloading plugin Color Highlighter.color_scheme reloading plugin Color Highlighter.color_scheme_color_highlighter reloading plugin Color Highlighter.color_searcher reloading plugin Color Highlighter.color_selection_listener reloading plugin Color Highlighter.colors reloading plugin Color Highlighter.content_listener reloading plugin Color Highlighter.convert_color_command reloading plugin Color Highlighter.css_colors reloading plugin Color Highlighter.dummy_event_listener reloading plugin Color Highlighter.gutter_icons_color_highlighter reloading plugin Color Highlighter.load_resource reloading plugin Color Highlighter.main reloading plugin Color Highlighter.path reloading plugin Color Highlighter.phantoms_color_highlighter reloading plugin Color Highlighter.pick_color_command reloading plugin Color Highlighter.regex_compiler reloading plugin Color Highlighter.regions reloading plugin Color Highlighter.set_setting_command reloading plugin Color Highlighter.settings reloading plugin Color Highlighter.st_helper reloading plugin Color Highlighter.topsort reloading plugin ColorSchemeEditor.ColorSchemeEditor-ST2 reloading plugin ColorSchemeUnit.plugin reloading plugin ColumnSelect.column_select reloading plugin CompareSideBySide.sbs_compare reloading plugin ConvertToUTF8.ConvertToUTF8 reloading plugin CopyFilepathWithLineNumbers.CopyFilepathWithLineNumbers reloading plugin CopyWithLineNumbersReloaded.copy_with_line_numbers reloading plugin DefaultSyntax.default_syntax reloading plugin DeleteCurrentFile.DeleteCurrentFile reloading plugin DistractionFreeWindow.distraction_free_window reloading plugin DocBlockr.jsdocs reloading plugin DocBlockr.test_runner reloading plugin DuplicateSelections.duplicate_selections reloading plugin EditPreferences.__init__ reloading plugin EditPreferences.commands_base reloading plugin EditPreferences.edit_package_files reloading plugin EditPreferences.extract_snippets reloading plugin EditPreferences.helper_commands reloading plugin EditPreferences.helpers reloading plugin EditPreferences.insert_binding_repr reloading plugin EditPreferences.jsonix reloading plugin EditPreferences.list_commands reloading plugin EditPreferences.list_menu_bindings reloading plugin EditPreferences.list_settings reloading plugin EditPreferences.list_shortcut_keys reloading plugin EditPreferences.list_theme_selectors reloading plugin EditPreferences.package_resources reloading plugin EditPreferences.quick_panel_cols reloading plugin EditPreferences.scheduler reloading plugin Emmet.emmet-plugin reloading plugin ExpandRegion.__init__ reloading plugin ExpandRegion.expand_region_handler reloading plugin ExpandRegion.expand_to_indent reloading plugin ExpandRegion.expand_to_line reloading plugin ExpandRegion.expand_to_quotes reloading plugin ExpandRegion.expand_to_regex_set reloading plugin ExpandRegion.expand_to_semantic_unit reloading plugin ExpandRegion.expand_to_subword reloading plugin ExpandRegion.expand_to_symbols reloading plugin ExpandRegion.expand_to_word reloading plugin ExpandRegion.expand_to_word_with_dots reloading plugin ExpandRegion.expand_to_xml_node reloading plugin ExpandRegion.ExpandRegion reloading plugin ExpandRegion.html reloading plugin ExpandRegion.javascript reloading plugin ExpandRegion.latex reloading plugin ExpandRegion.python reloading plugin ExpandRegion.utils reloading plugin ExportHtml.ExportBbcode reloading plugin ExportHtml.ExportHtml reloading plugin ExportHtml.HtmlAnnotations reloading plugin ExportHtml.support reloading plugin ExtendedTabSwitcher.ExtendedSwitcher reloading plugin ExtractText.clean_save_file_modifications reloading plugin ExtractText.extract_to_file reloading plugin FileDiffs.file_diffs reloading plugin FileHistory.file_history reloading plugin FileRename.file_rename reloading plugin FindKeyConflicts.find_key_conflicts reloading plugin FixCommandPalette.fixed_command_palette_input_history reloading plugin FixProjectSwitchRestartBug.fix_project_switch_restart_bug reloading plugin FixSelectionAfterIndent.fix_selection_after_indent reloading plugin ForceRewriteSublimeSettings.force_rewrite_sublime_settings reloading plugin FuzzyFileNav.fuzzy_file_nav reloading plugin FuzzyFileNav.multiconf reloading plugin FuzzyFileNav.notify reloading plugin FuzzyFilePath.command_goto_file reloading plugin FuzzyFilePath.command_insert_path reloading plugin FuzzyFilePath.command_rebuild_cache reloading plugin FuzzyFilePath.command_replace_region reloading plugin FuzzyFilePath.command_show_context reloading plugin FuzzyFilePath.command_show_current_settings reloading plugin FuzzyFilePath.command_show_info reloading plugin FuzzyFilePath.completion reloading plugin FuzzyFilePath.controller reloading plugin FuzzyFilePath.current_state reloading plugin FuzzyFilePath.expression reloading plugin FuzzyFilePath.ProjectListener reloading plugin FuzzyFilePath.query reloading plugin FuzzyFilePath.QueryCompletionListener reloading plugin FuzzyFilePath.TestRunner reloading plugin FuzzyFilePath.ViewListener reloading plugin Glue.__init__ reloading plugin Glue.Glue reloading plugin Glue.GlueBrowser reloading plugin Glue.GlueCmds reloading plugin Glue.GlueIO reloading plugin Glue.GlueSidebarOpener reloading plugin GoogleSpellCheck.google-spell-check reloading plugin HighlightBuildErrors.HighlightBuildErrors reloading plugin HighlightWords.HighlightWords reloading plugin HorizontalScroll.scroll_width reloading plugin HungryBackspace.hungry_backspace reloading plugin Incrementor.incrementor reloading plugin IncrementSelection.IncrementSelection reloading plugin IndentAndBraces.indent-and-braces reloading plugin IndentSize.IndentSizeCommand reloading plugin InsertNums.InsertNums reloading plugin InvertSelection.invertselection reloading plugin JumpAlongIndent.file_scanner reloading plugin JumpAlongIndent.jump_along_indent reloading plugin JumpAlongIndent.view_helper reloading plugin KeepPastedTextSelected.keep_pasted_text_selected reloading plugin LaTeXSmartQuotes.getTeXRoot reloading plugin LaTeXSmartQuotes.smartquotes reloading plugin LaTeXTools.01_reload_submodules reloading plugin LaTeXTools.02_temp_file_cleanup reloading plugin LaTeXTools.03_reset_phantoms reloading plugin LaTeXTools.auto_label reloading plugin LaTeXTools.biblatex_crossref_completions reloading plugin LaTeXTools.biblatex_field_name_completions reloading plugin LaTeXTools.biblatex_name_completions reloading plugin LaTeXTools.biblatex_snippet_completions reloading plugin LaTeXTools.biblatex_syntax_listener reloading plugin LaTeXTools.change_environment reloading plugin LaTeXTools.context_provider reloading plugin LaTeXTools.create_mousemap reloading plugin LaTeXTools.delete_temp_files reloading plugin LaTeXTools.detect_spellcheck reloading plugin LaTeXTools.getTeXRoot reloading plugin LaTeXTools.jumpto_anywhere reloading plugin LaTeXTools.jumpto_tex_file reloading plugin LaTeXTools.jumpToPDF reloading plugin LaTeXTools.kpsewhich reloading plugin LaTeXTools.latex_cite_completions reloading plugin LaTeXTools.latex_cwl_completions reloading plugin LaTeXTools.latex_directive_completions reloading plugin LaTeXTools.latex_env_completions reloading plugin LaTeXTools.latex_fill_all reloading plugin LaTeXTools.latex_glossary_completions reloading plugin LaTeXTools.latex_input_completions reloading plugin LaTeXTools.latex_installed_packages reloading plugin LaTeXTools.latex_own_command_completions reloading plugin LaTeXTools.latex_ref_completions reloading plugin LaTeXTools.latexCommand reloading plugin LaTeXTools.latexDocumentationViewer reloading plugin LaTeXTools.latexEnvCloser reloading plugin LaTeXTools.latexEnvironment reloading plugin LaTeXTools.latextools_cache_listener reloading plugin LaTeXTools.latextools_default_settings reloading plugin LaTeXTools.latextools_plugin reloading plugin LaTeXTools.makePDF reloading plugin LaTeXTools.migrate reloading plugin LaTeXTools.open_detexify reloading plugin LaTeXTools.parseTeXlog reloading plugin LaTeXTools.reveal_folders reloading plugin LaTeXTools.search_commands reloading plugin LaTeXTools.smart_paste reloading plugin LaTeXTools.system_check reloading plugin LaTeXTools.texcount reloading plugin LaTeXTools.texMacro reloading plugin LaTeXTools.texSections reloading plugin LaTeXTools.texSyntaxListener reloading plugin LaTeXTools.toc_quickpanel reloading plugin LaTeXTools.toggle_settings reloading plugin LaTeXWordCount.WordCount reloading plugin LESS.less_completions reloading plugin LineEndingsUnify.LineEndingsUnify reloading plugin LinesMultisets.choose_view reloading plugin LinesMultisets.execute_operation reloading plugin LSP.boot reloading plugin MarkdownPreview.helper reloading plugin MarkdownPreview.markdown_settings reloading plugin MarkdownPreview.markdown_wrapper reloading plugin MarkdownPreview.MarkdownPreview reloading plugin MarkdownToBBCode.MarkdownToBBCode reloading plugin Maven.config_generator reloading plugin Maven.import reloading plugin Maven.maven reloading plugin MaxPane.layouts_doc reloading plugin MaxPane.max_pane reloading plugin MoveText.move_text reloading plugin MultiEditUtils.MultiEditUtils reloading plugin MultiEditUtils.selection_fields reloading plugin NumberKing.king reloading plugin OpenAutoCompletion.open_auto_completion reloading plugin Origami.origami reloading plugin OverrideAudit.override_audit reloading plugin OverrideCommitCompletion.overwrite_commit_completion reloading plugin OverrideEditSettingsDefaultContents.override_edit_settings_default_contents reloading plugin OverrideUnpackedPackages.override_unpacked_packages reloading plugin package_setting_context.__init__ reloading plugin PackageDev._logging reloading plugin PackageDev.main reloading plugin PackageResourceViewer.package_resource_viewer reloading plugin PackageResourceViewer.package_resources reloading plugin PackagesManager.1_reloader reloading plugin PackagesManager.2_bootstrap reloading plugin PackagesManager.PackagesManager reloading plugin PathTranslator.PathTranslator reloading plugin PowerCursors.power_cursors reloading plugin PrettyJSON.PrettyJson reloading plugin PrettyJSON.PrettyJsonListeners reloading plugin QuickSettings.quick_settings reloading plugin RandomEverything.__init__ reloading plugin RandomEverything.random reloading plugin REG.jumptoregkey reloading plugin ReIndent.ReIndent reloading plugin REPL.__init__ reloading plugin REPL.completions reloading plugin REPL.lang_integration reloading plugin REPL.run_existing_command reloading plugin REPL.sublimerepl reloading plugin REPL.sublimerepl_build_system_hack reloading plugin REPL.text_transfer reloading plugin ScopeHunter.scope_hunter reloading plugin ScopeHunter.scope_hunter_notify reloading plugin ScopeHunter.support reloading plugin SelectAll.select_all_by_current_scope reloading plugin SelectAllSpellingErrors.select_all_spelling_errors reloading plugin SelectUntil.edit reloading plugin SelectUntil.select-until reloading plugin SemanticLineWrap.semantic_wrap reloading plugin SideBarEnhancements.SideBar reloading plugin SideBarEnhancements.SideBarAPI reloading plugin SideBarEnhancements.SideBarDefaultDisable reloading plugin SideBySideSettings.sxs_settings reloading plugin SQLExec.SQLExec reloading plugin SQLKeywordUppercase.sql_keyword_uppercase reloading plugin SQLTools.SQLTools reloading plugin StickySearch.StickySearch reloading plugin StudioChannel.commands reloading plugin StudioChannel.settings reloading plugin SublimeLinter.busy_indicator_view reloading plugin SublimeLinter.commands reloading plugin SublimeLinter.status_bar_view reloading plugin SublimeLinter.sublime_linter reloading plugin SublimeTutorial.sublime_tutor reloading plugin SyncViewScroll.syncscroll reloading plugin SyntaxManager.syntaxmgr reloading plugin TabsExtra.support reloading plugin TabsExtra.tab_menu reloading plugin TabsExtra.tab_sort_helper reloading plugin TabsExtra.tabs_extra reloading plugin TerminalShortcuts.Terminal reloading plugin TextPastry.text_pastry reloading plugin TextPastry.text_pastry_addons reloading plugin TextPastry.text_pastry_clipboard reloading plugin TextPastry.text_pastry_selection reloading plugin ToggleWords.ToggleWords reloading plugin Trimmer.Trimmer reloading plugin UnitTesting.ut reloading plugin ViewSettingsFreely.view_settings_freely reloading plugin Whitespace.Whitespace reloading plugin WordCount.WordCount reloading plugin WrapPlus.wrap_plus plugins loaded LSP: global clients: pyls=True LSP: starting active= F:\SublimeText\Data\Packages\PythonDebugTools\tests\manual_tests.py other= 0 LSP: starting in F:\SublimeText\Data LSP: starting ['pyls'] LSP: --> initialize OverrideAudit: Initializing OverrideAudit: Sublime version is unchanged; skipping automatic report syncScroll starting Loading LaTeXTools plugins... Emmet: No need to update PyV8 Loaded LaTeXTools plugins ['base_viewer'] from path F:\SublimeText\Data\Packages\LaTeXTools\viewers\base_viewer.py reloading plugin AmxxChannel.commands reloading plugin StudioChannel.commands reloading settings Packages/User/BufferScroll.sublime-settings Loaded LaTeXTools plugins ['preview_viewer', 'okular_viewer', 'skim_viewer', 'sumatra_viewer', 'evince_viewer', 'command_viewer', 'zathura_viewer'] from path F:\SublimeText\Data\Packages\LaTeXTools\viewers Loaded LaTeXTools plugins ['pdf_builder'] from path F:\SublimeText\Data\Packages\LaTeXTools\builders\pdfBuilder.py Loaded LaTeXTools plugins ['simple_builder', 'basic_builder', 'traditional_builder', 'script_builder'] from path F:\SublimeText\Data\Packages\LaTeXTools\builders Loaded LaTeXTools plugins ['new_bibliography', 'traditional_bibliography'] from path F:\SublimeText\Data\Packages\LaTeXTools\bibliography_plugins LSP: --> initialized LSP: pyls client registered for window 4 LSP: --> textDocument/didOpen LSP: <-- textDocument/publishDiagnostics indexing [job 5]: no files were indexed out of the 11 queued, abandoning crawl FuzzyFilePath cached 8685 files in F:/SublimeText/Data PackagesManager: Skipping automatic upgrade, last run at 2018-01-16 21:50:40, next run at 2018-01-16 22:50:40 or after FuzzyFilePath cached 8685 files in F:/SublimeText/Data LSP: global clients: pyls=True ```


tomv564 commented 6 years ago

Another user just documented configuring linters for pyls in this issue https://github.com/tomv564/LSP/issues/239

It would probably benefit a lot of users if configuring LSP was its own page in the documentation, please feel free to open a pull request!

After updating pyls I too am seeing lots of pydocstyle diagnostics so I'll share a working config shortly.

tomv564 commented 6 years ago

Here is an example of disabling a plugin from the LSP Settings, hopefully you can adapt it to add the pycodestyle ignore list instead:

"pyls":
{
    "command":
    [
        "pyls",
        "-vv"
    ],
    "enabled": true,
    "settings":
    {
        "pyls":
        {
            "plugins":
            {
                "pydocstyle": {
                    "enabled": false
                }
            }
        }
    }
}
evandrocoan commented 6 years ago

Thanks! But I do not understand why you need to set pyls 2 times?

"pyls": // <-- First time
{
    "command":
    [
        "pyls",
        "-vv"
    ],
    "enabled": true,
    "settings":
    {
        "pyls": // <-- Second time
        {
            "plugins":
            {
                "pydocstyle": {
                    "enabled": false
                }
            }
        }
    }
}

Can it just be:

"pyls": // <-- First time
{
    "command":
    [
        "pyls",
        "-vv"
    ],
    "enabled": true,
    "settings":
    {
        "plugins":
        {
            "pydocstyle": {
                "enabled": false
            }
        }
    }
}

Also the pycodestyle disabled almost all rules when I try to set a few rules:

"pyls":
{
    "command":
    [
        "pyls",
        "-vv"
    ],
    "enabled": true,
    "settings":
    {
        "pyls":
        {
            "plugins":
            {
                "pycodestyle": {
                    "enabled": true,
                    "ignore": [
                        "E201",
                        "E501"
                    ]
                }
            }
        }
    }
}

This are the warnings before the setting:

 ◌ Packages\PythonDebugTools\tests\manual_tests.py:
        1:2     pydocstyle      warning     D100: Missing docstring in public module
       19:2     pydocstyle      warning     D103: Missing docstring in public function
        4:80    pycodestyle     warning     E501 line too long (94 > 79 characters)
        8:30    pycodestyle     warning     E201 whitespace after '('
        8:58    pycodestyle     warning     E202 whitespace before ')'
        9:1     pycodestyle     warning     E402 module level import not at top of file
       11:17    pycodestyle     warning     E201 whitespace after '('
       11:31    pycodestyle     warning     E202 whitespace before ')'
       13:5     pycodestyle     warning     E201 whitespace after '('
       13:18    pycodestyle     warning     E202 whitespace before ')'
       14:5     pycodestyle     warning     E201 whitespace after '('
       14:18    pycodestyle     warning     E202 whitespace before ')'
       15:10    pycodestyle     warning     E201 whitespace after '('
       15:17    pycodestyle     warning     E202 whitespace before ')'
       16:10    pycodestyle     warning     E201 whitespace after '('
       16:17    pycodestyle     warning     E202 whitespace before ')'
       17:11    pycodestyle     warning     E201 whitespace after '('
       17:19    pycodestyle     warning     E202 whitespace before ')'
       19:1     pycodestyle     warning     E302 expected 2 blank lines, found 1
       20:9     pycodestyle     warning     E201 whitespace after '('
       20:22    pycodestyle     warning     E202 whitespace before ')'
       21:9     pycodestyle     warning     E201 whitespace after '('
       21:22    pycodestyle     warning     E202 whitespace before ')'
       22:14    pycodestyle     warning     E201 whitespace after '('
       22:21    pycodestyle     warning     E202 whitespace before ')'
       23:14    pycodestyle     warning     E201 whitespace after '('
       23:21    pycodestyle     warning     E202 whitespace before ')'
       24:15    pycodestyle     warning     E201 whitespace after '('
       24:23    pycodestyle     warning     E202 whitespace before ')'
       26:1     pycodestyle     warning     E305 expected 2 blank lines after class or function definition, found 1
       26:18    pycodestyle     warning     E201 whitespace after '('
       26:45    pycodestyle     warning     E202 whitespace before ')'
       30:17    pycodestyle     warning     E201 whitespace after '('
       30:31    pycodestyle     warning     E202 whitespace before ')'
       31:18    pycodestyle     warning     E201 whitespace after '('
       31:28    pycodestyle     warning     E202 whitespace before ')'
       35:17    pycodestyle     warning     E201 whitespace after '('
       35:26    pycodestyle     warning     E202 whitespace before ')'
       36:18    pycodestyle     warning     E201 whitespace after '('
       36:28    pycodestyle     warning     E202 whitespace before ')'
       40:17    pycodestyle     warning     E201 whitespace after '('
       40:21    pycodestyle     warning     E202 whitespace before ')'
       49:1     pycodestyle     warning     W391 blank line at end of file

These are the warnings after adding only 2 rules E201 and E501 to ignore:

 ◌ Packages\PythonDebugTools\tests\manual_tests.py:
        1:2     pydocstyle      warning     D100: Missing docstring in public module
       19:2     pydocstyle      warning     D103: Missing docstring in public function
       49:1     pycodestyle     warning     W391 blank line at end of file

This is the full console output with debug enabled on LSP and the python-language-server:

``` DPI scale: 1 startup, version: 3156 windows x32 channel: dev executable: /F/SublimeText/sublime_text.exe working dir: /F/SublimeText packages path: /F/SublimeText/Data/Packages state path: /F/SublimeText/Data/Local zip path: /F/SublimeText/Packages zip path: /F/SublimeText/Data/Installed Packages ignored_packages: ["Anaconda", "ApplySyntax", "BracketHighlighter", "BuildView", "C++ Completions", "C++ Qt Completions", "C++ Snippets", "CodeIntel", "ColorHelper", "DictionaryAutoComplete", "FileManager", "Find++", "Gist", "Git", "GitGutter", "GotoLastEditEnhanced", "Javatar", "JediPythonAutoCompletion", "LocalHistory", "MatlabCompletions", "MatlabFilenameAutoComplete", "MySQLSnippets", "ProjectSpecificSyntax", "ScopeAlways", "SublimeLinter-javac", "SyncedSideBar", "TypeScript", "Vintage", "WordHighlight"] pre session restore time: 2.57398 loading dictionary Packages/Language - English and Portuguese/EN_PT.dic startup time: 4.66198 first paint time: 4.67098 Packages/PackageDev/Package/Sublime Text Settings/Sublime Text Settings.sublime-syntax: context scope:source.regexp-replacement#escaped has a scope name, but is unreachable, so the name will never be used reloading plugin Default.arithmetic reloading plugin Default.auto_indent_tag reloading plugin Default.block reloading plugin Default.colors reloading plugin Default.comment reloading plugin Default.convert_color_scheme reloading plugin Default.convert_syntax reloading plugin Default.copy_path reloading plugin Default.delete_word reloading plugin Default.detect_indentation reloading plugin Default.duplicate_line reloading plugin Default.echo reloading plugin Default.exec reloading plugin Default.fold reloading plugin Default.font reloading plugin Default.goto_line reloading plugin Default.history_list reloading plugin Default.indentation reloading plugin Default.install_package_control reloading plugin Default.kill_ring reloading plugin Default.mark reloading plugin Default.new_templates reloading plugin Default.open_context_url reloading plugin Default.open_in_browser reloading plugin Default.pane reloading plugin Default.paragraph reloading plugin Default.paste_from_history reloading plugin Default.profile reloading plugin Default.quick_panel reloading plugin Default.rename reloading plugin Default.run_syntax_tests reloading plugin Default.save_on_focus_lost reloading plugin Default.scroll reloading plugin Default.set_unsaved_view_name reloading plugin Default.settings reloading plugin Default.show_scope_name reloading plugin Default.side_bar reloading plugin Default.sort reloading plugin Default.swap_line reloading plugin Default.switch_file reloading plugin Default.symbol reloading plugin Default.transform reloading plugin Default.transpose reloading plugin Default.trim_trailing_white_space reloading plugin Default.ui reloading plugin CSS.css_completions reloading plugin Diff.diff reloading plugin HTML.encode_html_entities reloading plugin HTML.html_completions reloading plugin ShellScript.ShellScript reloading plugin 0_packages_manager_loader.00-packages_manager reloading plugin 0_packages_manager_loader.01-package_setting_context reloading plugin 0_packages_manager_loader.01-pygments reloading plugin 0_packages_manager_loader.10-PythonDebugTools reloading plugin 0_packages_manager_loader.15-coverage reloading plugin 0_packages_manager_loader.20-EstimatedTimeLeft reloading plugin 0_packages_manager_loader.30-ChannelManager reloading plugin 0_packages_manager_loader.50-backrefs reloading plugin 0_packages_manager_loader.50-markupsafe reloading plugin 0_packages_manager_loader.50-pymdownx reloading plugin 0_packages_manager_loader.50-python-markdown reloading plugin 0_packages_manager_loader.50-pyyaml reloading plugin 0_packages_manager_loader.50-regex reloading plugin 0_packages_manager_loader.51-python-jinja2 reloading plugin 0_packages_manager_loader.55-jsonschema reloading plugin 0_packages_manager_loader.55-mdpopups reloading plugin tests reloading plugin 0_settings_loader.install_package_control_extended reloading plugin 0_settings_loader.synced_side_bar_watcher reloading plugin A File Icon.A File Icon reloading plugin AceJump.ace_jump reloading plugin ActiveViewJumpBack.active_view_jump_back reloading plugin AddFolderToProject.AddFolderToProject reloading plugin AdvancedCSV.csvplugin reloading plugin Alignment.Alignment reloading plugin AlignTab.aligner reloading plugin AlignTab.aligntab reloading plugin AlignTab.hist reloading plugin AlignTab.parser reloading plugin AlignTab.table reloading plugin AlignTab.wclen reloading plugin AllAutocomplete.all_views_completions reloading plugin AltUp.run_multiple_commands reloading plugin Amxmodx.AMXXEditor reloading plugin AmxxChannel.commands reloading plugin AmxxChannel.fix_main_menus reloading plugin AmxxChannel.settings reloading plugin ANSIescape.ansi reloading plugin AutoFileName.autofilename reloading plugin AutoFileName.getimageinfo reloading plugin AutomaticPackageReloader.package_reloader reloading plugin AutoRefresh.AutoRefresh reloading plugin AutoWrap.autowrap reloading plugin BetterCoffeeScript.CoffeeScript reloading plugin BetterFindBuffer.find_results reloading plugin BufferScroll.BufferScroll reloading plugin CaseConversion.case_conversion reloading plugin CaseConversion.case_parse reloading plugin CaseConversion.ToggleTitleCase reloading plugin ChainOfCommand.chain reloading plugin ChangeQuotes.change_quotes reloading plugin ChannelRepositoryTools.ordereddict reloading plugin ChannelRepositoryTools.tests reloading plugin ChannelRepositoryTools.upgrade reloading plugin ClearCursorsCarets.clear_cursors_carets reloading plugin ClickableURLs.clickable_urls reloading plugin ClipboardScopeCopy.clipboard_scope_copy reloading plugin Color Highlighter.color_converter reloading plugin Color Highlighter.color_highlighter reloading plugin Color Highlighter.color_hover_listener reloading plugin Color Highlighter.color_scheme reloading plugin Color Highlighter.color_scheme_color_highlighter reloading plugin Color Highlighter.color_searcher reloading plugin Color Highlighter.color_selection_listener reloading plugin Color Highlighter.colors reloading plugin Color Highlighter.content_listener reloading plugin Color Highlighter.convert_color_command reloading plugin Color Highlighter.css_colors reloading plugin Color Highlighter.dummy_event_listener reloading plugin Color Highlighter.gutter_icons_color_highlighter reloading plugin Color Highlighter.load_resource reloading plugin Color Highlighter.main reloading plugin Color Highlighter.path reloading plugin Color Highlighter.phantoms_color_highlighter reloading plugin Color Highlighter.pick_color_command reloading plugin Color Highlighter.regex_compiler reloading plugin Color Highlighter.regions reloading plugin Color Highlighter.set_setting_command reloading plugin Color Highlighter.settings reloading plugin Color Highlighter.st_helper reloading plugin Color Highlighter.topsort reloading plugin ColorSchemeEditor.ColorSchemeEditor-ST2 reloading plugin ColorSchemeUnit.plugin reloading plugin ColumnSelect.column_select reloading plugin CompareSideBySide.sbs_compare reloading plugin ConvertToUTF8.ConvertToUTF8 reloading plugin CopyFilepathWithLineNumbers.CopyFilepathWithLineNumbers reloading plugin CopyWithLineNumbersReloaded.copy_with_line_numbers reloading plugin DefaultSyntax.default_syntax reloading plugin DeleteCurrentFile.DeleteCurrentFile reloading plugin DistractionFreeWindow.distraction_free_window reloading plugin DocBlockr.jsdocs reloading plugin DocBlockr.test_runner reloading plugin DuplicateSelections.duplicate_selections reloading plugin EditPreferences.__init__ reloading plugin EditPreferences.commands_base reloading plugin EditPreferences.edit_package_files reloading plugin EditPreferences.extract_snippets reloading plugin EditPreferences.helper_commands reloading plugin EditPreferences.helpers reloading plugin EditPreferences.insert_binding_repr reloading plugin EditPreferences.jsonix reloading plugin EditPreferences.list_commands reloading plugin EditPreferences.list_menu_bindings reloading plugin EditPreferences.list_settings reloading plugin EditPreferences.list_shortcut_keys reloading plugin EditPreferences.list_theme_selectors reloading plugin EditPreferences.package_resources reloading plugin EditPreferences.quick_panel_cols reloading plugin EditPreferences.scheduler reloading plugin Emmet.emmet-plugin reloading plugin ExpandRegion.__init__ reloading plugin ExpandRegion.expand_region_handler reloading plugin ExpandRegion.expand_to_indent reloading plugin ExpandRegion.expand_to_line reloading plugin ExpandRegion.expand_to_quotes reloading plugin ExpandRegion.expand_to_regex_set reloading plugin ExpandRegion.expand_to_semantic_unit reloading plugin ExpandRegion.expand_to_subword reloading plugin ExpandRegion.expand_to_symbols reloading plugin ExpandRegion.expand_to_word reloading plugin ExpandRegion.expand_to_word_with_dots reloading plugin ExpandRegion.expand_to_xml_node reloading plugin ExpandRegion.ExpandRegion reloading plugin ExpandRegion.html reloading plugin ExpandRegion.javascript reloading plugin ExpandRegion.latex reloading plugin ExpandRegion.python reloading plugin ExpandRegion.utils reloading plugin ExportHtml.ExportBbcode reloading plugin ExportHtml.ExportHtml reloading plugin ExportHtml.HtmlAnnotations reloading plugin ExportHtml.support reloading plugin ExtendedTabSwitcher.ExtendedSwitcher reloading plugin ExtractText.clean_save_file_modifications reloading plugin ExtractText.extract_to_file reloading plugin FileDiffs.file_diffs reloading plugin FileHistory.file_history reloading plugin FileRename.file_rename reloading plugin FindKeyConflicts.find_key_conflicts reloading plugin FixCommandPalette.fixed_command_palette_input_history reloading plugin FixProjectSwitchRestartBug.fix_project_switch_restart_bug reloading plugin FixSelectionAfterIndent.fix_selection_after_indent reloading plugin ForceRewriteSublimeSettings.force_rewrite_sublime_settings reloading plugin FuzzyFileNav.fuzzy_file_nav reloading plugin FuzzyFileNav.multiconf reloading plugin FuzzyFileNav.notify reloading plugin FuzzyFilePath.command_goto_file reloading plugin FuzzyFilePath.command_insert_path reloading plugin FuzzyFilePath.command_rebuild_cache reloading plugin FuzzyFilePath.command_replace_region reloading plugin FuzzyFilePath.command_show_context reloading plugin FuzzyFilePath.command_show_current_settings reloading plugin FuzzyFilePath.command_show_info reloading plugin FuzzyFilePath.completion reloading plugin FuzzyFilePath.controller reloading plugin FuzzyFilePath.current_state reloading plugin FuzzyFilePath.expression reloading plugin FuzzyFilePath.ProjectListener reloading plugin FuzzyFilePath.query reloading plugin FuzzyFilePath.QueryCompletionListener reloading plugin FuzzyFilePath.TestRunner reloading plugin FuzzyFilePath.ViewListener reloading plugin Glue.__init__ reloading plugin Glue.Glue reloading plugin Glue.GlueBrowser reloading plugin Glue.GlueCmds reloading plugin Glue.GlueIO reloading plugin Glue.GlueSidebarOpener reloading plugin GoogleSpellCheck.google-spell-check reloading plugin HighlightBuildErrors.HighlightBuildErrors reloading plugin HighlightWords.HighlightWords reloading plugin HorizontalScroll.scroll_width reloading plugin HungryBackspace.hungry_backspace reloading plugin Incrementor.incrementor reloading plugin IncrementSelection.IncrementSelection reloading plugin IndentAndBraces.indent-and-braces reloading plugin IndentSize.IndentSizeCommand reloading plugin InsertNums.InsertNums reloading plugin InvertSelection.invertselection reloading plugin JumpAlongIndent.file_scanner reloading plugin JumpAlongIndent.jump_along_indent reloading plugin JumpAlongIndent.view_helper reloading plugin KeepPastedTextSelected.keep_pasted_text_selected reloading plugin LaTeXSmartQuotes.getTeXRoot reloading plugin LaTeXSmartQuotes.smartquotes reloading plugin LaTeXTools.01_reload_submodules reloading plugin LaTeXTools.02_temp_file_cleanup reloading plugin LaTeXTools.03_reset_phantoms reloading plugin LaTeXTools.auto_label reloading plugin LaTeXTools.biblatex_crossref_completions reloading plugin LaTeXTools.biblatex_field_name_completions reloading plugin LaTeXTools.biblatex_name_completions reloading plugin LaTeXTools.biblatex_snippet_completions reloading plugin LaTeXTools.biblatex_syntax_listener reloading plugin LaTeXTools.change_environment reloading plugin LaTeXTools.context_provider reloading plugin LaTeXTools.create_mousemap reloading plugin LaTeXTools.delete_temp_files reloading plugin LaTeXTools.detect_spellcheck reloading plugin LaTeXTools.getTeXRoot reloading plugin LaTeXTools.jumpto_anywhere reloading plugin LaTeXTools.jumpto_tex_file reloading plugin LaTeXTools.jumpToPDF reloading plugin LaTeXTools.kpsewhich reloading plugin LaTeXTools.latex_cite_completions reloading plugin LaTeXTools.latex_cwl_completions reloading plugin LaTeXTools.latex_directive_completions reloading plugin LaTeXTools.latex_env_completions reloading plugin LaTeXTools.latex_fill_all reloading plugin LaTeXTools.latex_glossary_completions reloading plugin LaTeXTools.latex_input_completions reloading plugin LaTeXTools.latex_installed_packages reloading plugin LaTeXTools.latex_own_command_completions reloading plugin LaTeXTools.latex_ref_completions reloading plugin LaTeXTools.latexCommand reloading plugin LaTeXTools.latexDocumentationViewer reloading plugin LaTeXTools.latexEnvCloser reloading plugin LaTeXTools.latexEnvironment reloading plugin LaTeXTools.latextools_cache_listener reloading plugin LaTeXTools.latextools_default_settings reloading plugin LaTeXTools.latextools_plugin reloading plugin LaTeXTools.makePDF reloading plugin LaTeXTools.migrate reloading plugin LaTeXTools.open_detexify reloading plugin LaTeXTools.parseTeXlog reloading plugin LaTeXTools.reveal_folders reloading plugin LaTeXTools.search_commands reloading plugin LaTeXTools.smart_paste reloading plugin LaTeXTools.system_check reloading plugin LaTeXTools.texcount reloading plugin LaTeXTools.texMacro reloading plugin LaTeXTools.texSections reloading plugin LaTeXTools.texSyntaxListener reloading plugin LaTeXTools.toc_quickpanel reloading plugin LaTeXTools.toggle_settings reloading plugin LaTeXWordCount.WordCount reloading plugin LESS.less_completions reloading plugin LineEndingsUnify.LineEndingsUnify reloading plugin LinesMultisets.choose_view reloading plugin LinesMultisets.execute_operation reloading plugin LSP.boot reloading plugin MarkdownPreview.helper reloading plugin MarkdownPreview.markdown_settings reloading plugin MarkdownPreview.markdown_wrapper reloading plugin MarkdownPreview.MarkdownPreview reloading plugin MarkdownToBBCode.MarkdownToBBCode reloading plugin Maven.config_generator reloading plugin Maven.import reloading plugin Maven.maven reloading plugin MaxPane.layouts_doc reloading plugin MaxPane.max_pane reloading plugin MoveText.move_text reloading plugin MultiEditUtils.MultiEditUtils reloading plugin MultiEditUtils.selection_fields reloading plugin NumberKing.king reloading plugin OpenAutoCompletion.open_auto_completion reloading plugin Origami.origami reloading plugin OverrideAudit.override_audit reloading plugin OverrideCommitCompletion.overwrite_commit_completion reloading plugin OverrideEditSettingsDefaultContents.override_edit_settings_default_contents reloading plugin OverrideUnpackedPackages.override_unpacked_packages reloading plugin package_setting_context.__init__ reloading plugin PackageDev._logging reloading plugin PackageDev.main reloading plugin PackageResourceViewer.package_resource_viewer reloading plugin PackageResourceViewer.package_resources reloading plugin PackagesManager.1_reloader reloading plugin PackagesManager.2_bootstrap reloading plugin PackagesManager.PackagesManager reloading plugin PathTranslator.PathTranslator reloading plugin PowerCursors.power_cursors reloading plugin PrettyJSON.PrettyJson reloading plugin PrettyJSON.PrettyJsonListeners reloading plugin QuickSettings.quick_settings reloading plugin RandomEverything.__init__ reloading plugin RandomEverything.random reloading plugin REG.jumptoregkey reloading plugin ReIndent.ReIndent reloading plugin REPL.__init__ reloading plugin REPL.completions reloading plugin REPL.lang_integration reloading plugin REPL.run_existing_command reloading plugin REPL.sublimerepl reloading plugin REPL.sublimerepl_build_system_hack reloading plugin REPL.text_transfer reloading plugin ScopeHunter.scope_hunter reloading plugin ScopeHunter.scope_hunter_notify reloading plugin ScopeHunter.support reloading plugin SelectAll.select_all_by_current_scope reloading plugin SelectAllSpellingErrors.select_all_spelling_errors reloading plugin SelectUntil.edit reloading plugin SelectUntil.select-until reloading plugin SemanticLineWrap.semantic_wrap reloading plugin SideBarEnhancements.SideBar reloading plugin SideBarEnhancements.SideBarAPI reloading plugin SideBarEnhancements.SideBarDefaultDisable reloading plugin SideBySideSettings.sxs_settings reloading plugin SQLExec.SQLExec reloading plugin SQLKeywordUppercase.sql_keyword_uppercase reloading plugin SQLTools.SQLTools reloading plugin StickySearch.StickySearch reloading plugin StudioChannel.commands reloading plugin StudioChannel.settings reloading plugin SublimeLinter.busy_indicator_view reloading plugin SublimeLinter.commands reloading plugin SublimeLinter.status_bar_view reloading plugin SublimeLinter.sublime_linter reloading plugin SublimeTutorial.sublime_tutor reloading plugin SyncViewScroll.syncscroll reloading plugin SyntaxManager.syntaxmgr reloading plugin TabsExtra.support reloading plugin TabsExtra.tab_menu reloading plugin TabsExtra.tab_sort_helper reloading plugin TabsExtra.tabs_extra reloading plugin TerminalShortcuts.Terminal reloading plugin TextPastry.text_pastry reloading plugin TextPastry.text_pastry_addons reloading plugin TextPastry.text_pastry_clipboard reloading plugin TextPastry.text_pastry_selection reloading plugin ToggleWords.ToggleWords reloading plugin Trimmer.Trimmer reloading plugin UnitTesting.ut reloading plugin ViewSettingsFreely.view_settings_freely reloading plugin Whitespace.Whitespace reloading plugin WordCount.WordCount reloading plugin WrapPlus.wrap_plus plugins loaded OverrideAudit: Initializing OverrideAudit: Sublime version is unchanged; skipping automatic report LSP: global clients: pyls=True _global_settings: {'pyls': {'scopes': ['source.python'], 'enabled': True, 'syntaxes': ['Packages/Python/Python.sublime-syntax'], 'languageId': 'python', 'command': ['pyls', '-vvv'], 'settings': {'pyls': {'plugins': {'pycodestyle': {'enabled': True, 'ignore': ['E201', 'E501']}}}}}} Loaded LaTeXTools plugins ['pdf_builder'] from path F:\SublimeText\Data\Packages\LaTeXTools\builders\pdfBuilder.py Loaded LaTeXTools plugins ['traditional_builder', 'script_builder', 'simple_builder', 'basic_builder'] from path F:\SublimeText\Data\Packages\LaTeXTools\builders Loaded LaTeXTools plugins ['new_bibliography', 'traditional_bibliography'] from path F:\SublimeText\Data\Packages\LaTeXTools\bibliography_plugins syncScroll starting [PackageDev.plugins_.settings] ERROR: Not a Sublime Text Settings or Project file: None Loading LaTeXTools plugins... Emmet: No need to update PyV8 Loaded LaTeXTools plugins ['base_viewer'] from path F:\SublimeText\Data\Packages\LaTeXTools\viewers\base_viewer.py Loaded LaTeXTools plugins ['sumatra_viewer', 'evince_viewer', 'zathura_viewer', 'command_viewer', 'okular_viewer', 'preview_viewer', 'skim_viewer'] from path F:\SublimeText\Data\Packages\LaTeXTools\viewers reloading plugin AmxxChannel.commands reloading plugin StudioChannel.commands reloading settings Packages/User/BufferScroll.sublime-settings Loaded LaTeXTools plugins [] from path F:\SublimeText\Data\Packages\LaTeXTools\builders\pdfBuilder.py Loaded LaTeXTools plugins [] from path F:\SublimeText\Data\Packages\LaTeXTools\builders Loaded LaTeXTools plugins [] from path F:\SublimeText\Data\Packages\LaTeXTools\bibliography_plugins indexing [job 4]: no files were indexed out of the 11 queued, abandoning crawl indexing [job 5]: no files were indexed out of the 11 queued, abandoning crawl FuzzyFilePath cached 8687 files in F:/SublimeText/Data PackagesManager: Skipping automatic upgrade, last run at 2018-01-17 19:48:16, next run at 2018-01-17 20:48:16 or after LSP: starting in F:\SublimeText\Data LSP: starting ['pyls', '-vvv'] LSP: --> initialize LSP: pyls not available for view F:\SublimeText\Data\Packages\PythonDebugTools\tests\manual_tests.py in window 5 2018-01-17 20:05:35,589 UTC - INFO - pyls.language_server - Starting PythonLanguageServer IO language server: 2018-01-17 20:05:35,591 UTC - DEBUG - pyls.server - Got message: b'{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"rootUri": "file:///F:/SublimeText/Data", "rootPath": "F:\\\\SublimeText\\\\Data", "capabilities": {"workspace": {"applyEdit": true}, "textDocument": {"completion": {"completionItem": {"snippetSupport": true}}, "synchronization": {"didSave": true}}}, "processId": 3812}}': 2018-01-17 20:05:35,593 UTC - DEBUG - pyls.language_server - Language server initialized with {'rootUri': 'file:///F:/SublimeText/Data', 'rootPath': 'F:\\SublimeText\\Data', 'capabilities': {'workspace': {'applyEdit': True}, 'textDocument': {'completion': {'completionItem': {'snippetSupport': True}}, 'synchronization': {'didSave': True}}}, 'processId': 3812}: 2018-01-17 20:05:37,067 UTC - INFO - pyls.config.config - Loaded pyls plugin jedi_completion from : 2018-01-17 20:05:37,068 UTC - INFO - pyls.config.config - Loaded pyls plugin jedi_definition from : 2018-01-17 20:05:37,068 UTC - INFO - pyls.config.config - Loaded pyls plugin jedi_hover from : 2018-01-17 20:05:37,068 UTC - INFO - pyls.config.config - Loaded pyls plugin jedi_references from : 2018-01-17 20:05:37,068 UTC - INFO - pyls.config.config - Loaded pyls plugin jedi_signature_help from : 2018-01-17 20:05:37,069 UTC - INFO - pyls.config.config - Loaded pyls plugin jedi_symbols from : 2018-01-17 20:05:37,069 UTC - INFO - pyls.config.config - Loaded pyls plugin mccabe from : 2018-01-17 20:05:37,070 UTC - INFO - pyls.config.config - Loaded pyls plugin pycodestyle from : 2018-01-17 20:05:37,070 UTC - INFO - pyls.config.config - Loaded pyls plugin pydocstyle from : 2018-01-17 20:05:37,071 UTC - INFO - pyls.config.config - Loaded pyls plugin pyflakes from : 2018-01-17 20:05:37,071 UTC - INFO - pyls.config.config - Loaded pyls plugin rope_completion from : 2018-01-17 20:05:37,071 UTC - INFO - pyls.config.config - Loaded pyls plugin rope_rename from : 2018-01-17 20:05:37,072 UTC - INFO - pyls.config.config - Loaded pyls plugin yapf from : 2018-01-17 20:05:37,072 UTC - DEBUG - pyls.config.config - pyls_settings [hook]: config: : : 2018-01-17 20:05:37,073 UTC - DEBUG - pyls.config.config - finish pyls_settings --> [{'plugins': {'rope_completion': {'enabled': False}}}, {'plugins': {'pydocstyle': {'enabled': False}}}] [hook]: : 2018-01-17 20:05:37,074 UTC - DEBUG - pyls.config.config - pyls_dispatchers [hook]: config: : workspace: : document: None: : 2018-01-17 20:05:37,074 UTC - DEBUG - pyls.config.config - finish pyls_dispatchers --> [] [hook]: : 2018-01-17 20:05:37,075 UTC - DEBUG - pyls.config.config - pyls_initialize [hook]: config: : workspace: : document: None: : 2018-01-17 20:05:37,076 UTC - DEBUG - pyls.config.config - finish pyls_initialize --> [] [hook]: : 2018-01-17 20:05:37,076 UTC - DEBUG - pyls.config.config - pyls_commands [hook]: config: : workspace: : document: None: : 2018-01-17 20:05:37,077 UTC - DEBUG - pyls.config.config - finish pyls_commands --> [] [hook]: : LSP: 2018-01-17 20:05:37,077 UTC - DEBUG - pyls.config.config - pyls_experimental_capabilities [hook]: config: : workspace: : document: None: : 2018-01-17 20:05:37,077 UTC - DEBUG - pyls.config.config - finish pyls_experimental_capabilities --> [] [hook]: : 2018-01-17 20:05:37,078 UTC - INFO - pyls.python_ls - Server capabilities: {'codeActionProvider': True, 'codeLensProvider': {'resolveProvider': False}, 'completionProvider': {'resolveProvider': False, 'triggerCharacters': ['.']}, 'documentFormattingProvider': True, 'documentRangeFormattingProvider': True, 'documentSymbolProvider': True, 'definitionProvider': True, 'executeCommandProvider': {'commands': []}, 'hoverProvider': True, 'referencesProvider': True, 'renameProvider': True, 'signatureHelpProvider': {'triggerCharacters': ['(', ',']}, 'textDocumentSync': 2, 'experimental': {}}: --> initialized LSP: --> workspace/didChangeConfiguration LSP: pyls client registered for window 5 2018-01-17 20:05:37,081 UTC - DEBUG - pyls.server - Got message: b'{"jsonrpc": "2.0", "method": "initialized", "params": {}}': 2018-01-17 20:05:37,083 UTC - DEBUG - pyls.python_ls - Checking dispatchers for initialized: []: 2018-01-17 20:05:37,084 UTC - DEBUG - pyls.server - Got message: b'{"jsonrpc": "2.0", "method": "workspace/didChangeConfiguration", "params": {"settings": {"pyls": {"plugins": {"pycodestyle": {"enabled": true, "ignore": ["E201", "E501"]}}}}}}': 2018-01-17 20:05:37,084 UTC - INFO - pyls.config.config - Updated settings to {'plugins': {'pycodestyle': {'enabled': True, 'ignore': ['E201', 'E501']}}}: 2018-01-17 20:05:37,085 UTC - INFO - pyls.config.config - Disabled plugins: []: LSP: --> textDocument/didOpen 2018-01-17 20:05:37,618 UTC - DEBUG - pyls.server - Got message: b'{"jsonrpc": "2.0", "method": "textDocument/didOpen", "params": {"textDocument": {"text": "\\n\\n# To run this file, run on the Sublime Text console:\\n# import sublime_plugin; sublime_plugin.reload_plugin( \\"PythonDebugTools.tests.manual_tests\\" )\\nimport sublime_plugin\\n\\n# Import and reload the debugger\\nsublime_plugin.reload_plugin( \\"python_debug_tools.logger\\" )\\nfrom python_debug_tools.logger import getLogger\\n\\nlog = getLogger( 127, __name__ )\\n\\nlog( 1, \\"Bitwise\\" )\\nlog( 8, \\"Bitwise\\" )\\nlog.warn( \\"Warn\\" )\\nlog.info( \\"Info\\" )\\nlog.debug( \\"Debug\\" )\\n\\ndef function_name():\\n log( 1, \\"Bitwise\\" )\\n log( 8, \\"Bitwise\\" )\\n log.warn( \\"Warn\\" )\\n log.info( \\"Info\\" )\\n log.debug( \\"Debug\\" )\\n\\nlog.setup_logger( function=False, level=True )\\nlog.insert_empty_line()\\nfunction_name()\\n\\nlog = getLogger( __name__, 127 )\\nlog.setup_logger( date=True )\\nlog.insert_empty_line()\\nfunction_name()\\n\\nlog = getLogger( __name__ )\\nlog.setup_logger( date=True )\\nlog.insert_empty_line()\\nfunction_name()\\n\\nlog = getLogger( 127 )\\nlog.setup_logger()\\nlog.insert_empty_line()\\nfunction_name()\\n\\nlog = getLogger()\\nlog.setup_logger()\\nlog.insert_empty_line()\\nfunction_name()\\n\\n", "uri": "file:///F:/SublimeText/Data/Packages/PythonDebugTools/tests/manual_tests.py", "version": 0, "languageId": "python"}}}': 2018-01-17 20:05:37,621 UTC - DEBUG - pyls.config.config - pyls_document_did_open [hook]: config: : workspace: : document: file:///F:/SublimeText/Data/Packages/PythonDebugTools/tests/manual_tests.py: : 2018-01-17 20:05:37,622 UTC - DEBUG - pyls.config.config - finish pyls_document_did_open --> [] [hook]: : 2018-01-17 20:05:38,123 UTC - DEBUG - pyls.config.config - pyls_lint [hook]: config: : workspace: : document: file:///F:/SublimeText/Data/Packages/PythonDebugTools/tests/manual_tests.py: : 2018-01-17 20:05:38,237 UTC - INFO - pyls.plugins.pydocstyle_lint - Got error: f:\SublimeText\Data\Packages\PythonDebugTools\tests\manual_tests.py:1 at module level:: D100: Missing docstring in public module: 2018-01-17 20:05:38,239 UTC - INFO - pyls.plugins.pydocstyle_lint - Got error: f:\SublimeText\Data\Packages\PythonDebugTools\tests\manual_tests.py:19 in public function `function_name`:: D103: Missing docstring in public function: 2018-01-17 20:05:38,242 UTC - DEBUG - pyls.config.config - Got user config from PyCodeStyleConfig: {}: 2018-01-17 20:05:38,242 UTC - DEBUG - pyls.config.config - With user configuration: {}: 2018-01-17 20:05:38,243 UTC - DEBUG - pyls.config.config - With plugin configuration: {'plugins': {'pydocstyle': {'enabled': False}, 'rope_completion': {'enabled': False}}}: 2018-01-17 20:05:38,243 UTC - DEBUG - pyls.config.config - With lsp configuration: {'plugins': {'pycodestyle': {'enabled': True, 'ignore': ['E201', 'E501']}, 'pydocstyle': {'enabled': False}, 'rope_completion': {'enabled': False}}}: 2018-01-17 20:05:38,245 UTC - DEBUG - pyls.config.source - Using cached configuration for (): 2018-01-17 20:05:38,246 UTC - DEBUG - pyls.config.config - Got project config from PyCodeStyleConfig: {}: 2018-01-17 20:05:38,247 UTC - DEBUG - pyls.config.config - With project configuration: {'plugins': {'pycodestyle': {'enabled': True, 'ignore': ['E201', 'E501']}, 'pydocstyle': {'enabled': False}, 'rope_completion': {'enabled': False}}}: 2018-01-17 20:05:38,248 UTC - DEBUG - pyls.plugins.pycodestyle_lint - Got pycodestyle settings: {'enabled': True, 'ignore': ['E201', 'E501']}: 2018-01-17 20:05:38,271 UTC - DEBUG - pyls.config.source - Using cached configuration for (): 2018-01-17 20:05:38,271 UTC - DEBUG - pyls.config.config - Got user config from PyCodeStyleConfig: {}: 2018-01-17 20:05:38,272 UTC - DEBUG - pyls.config.config - With user configuration: {}: 2018-01-17 20:05:38,272 UTC - DEBUG - pyls.config.config - With plugin configuration: {'plugins': {'pydocstyle': {'enabled': False}, 'rope_completion': {'enabled': False}}}: 2018-01-17 20:05:38,272 UTC - DEBUG - pyls.config.config - With lsp configuration: {'plugins': {'pycodestyle': {'enabled': True, 'ignore': ['E201', 'E501']}, 'pydocstyle': {'enabled': False}, 'rope_completion': {'enabled': False}}}: 2018-01-17 20:05:38,274 UTC - DEBUG - pyls.config.source - Using cached configuration for (): 2018-01-17 20:05:38,274 UTC - DEBUG - pyls.config.config - Got project config from PyCodeStyleConfig: {}: 2018-01-17 20:05:38,275 UTC - DEBUG - pyls.config.config - With project configuration: {'plugins': {'pycodestyle': {'enabled': True, 'ignore': ['E201', 'E501']}, 'pydocstyle': {'enabled': False}, 'rope_completion': {'enabled': False}}}: 2018-01-17 20:05:38,275 UTC - DEBUG - pyls.plugins.mccabe_lint - Running mccabe lint with threshold: 15: 2018-01-17 20:05:38,278 UTC - DEBUG - pyls.config.config - finish pyls_lint --> [[], [{'source': 'pydocstyle', 'code': 'D100', 'message': 'D100: Missing docstring in public module', 'severity': 2, 'range': {'start': {'line': 0, 'character': 1}, 'end': {'line': 0, 'character': 1}}}, {'source': 'pydocstyle', 'code': 'D103', 'message': 'D103: Missing docstring in public function', 'severity': 2, 'range': {'start': {'line': 18, 'character': 1}, 'end': {'line': 18, 'character': 1}}}], [{'source': 'pycodestyle', 'range': {'start': {'line': 48, 'character': 0}, 'end': {'line': 48, 'character': 1}}, 'message': 'W391 blank line at end of file', 'code': 'W391', 'severity': 2}], []] [hook]: : 2018-01-17 20:05:38,279 UTC - DEBUG - pyls.server - Sending notification textDocument/publishDiagnostics: {'uri': 'file:///F:/SublimeText/Data/Packages/PythonDebugTools/tests/manual_tests.py', 'diagnostics': [{'source': 'pydocstyle', 'code': 'D100', 'message': 'D100: Missing docstring in public module', 'severity': 2, 'range': {'start': {'line': 0, 'character': 1}, 'end': {'line': 0, 'character': 1}}}, {'source': 'pydocstyle', 'code': 'D103', 'message': 'D103: Missing docstring in public function', 'severity': 2, 'range': {'start': {'line': 18, 'character': 1}, 'end': {'line': 18, 'character': 1}}}, {'source': 'pycodestyle', 'range': {'start': {'line': 48, 'character': 0}, 'end': {'line': 48, 'character': 1}}, 'message': 'W391 blank line at end of file', 'code': 'W391', 'severity': 2}]}: LSP: <-- textDocument/publishDiagnostics ```


tomv564 commented 6 years ago

But I do not understand why you need to set pyls 2 times?

I suspect this is because VS Code always sends a pyls. prefix on synchronized settings, because there pyls settings all live in the same scope. (whereas LSP scopes settings under each client). Pyls dictates this structure, all LSP can do is follow it.

Also the pycodestyle disabled almost all rules when I try to set a few rules:

This is really a question for pyls, but perhaps E201 disables all whitespace rules?

evandrocoan commented 6 years ago

perhaps E201 disables all whitespace rules?

Sadly no. I just tested from the command line and pycodestyle is working properly. These are the results:

``` $ pycodestyle --ignore="E201,E501" manual_tests.py manual_tests.py:8:58: E202 whitespace before ')' manual_tests.py:9:1: E402 module level import not at top of file manual_tests.py:11:31: E202 whitespace before ')' manual_tests.py:13:18: E202 whitespace before ')' manual_tests.py:14:18: E202 whitespace before ')' manual_tests.py:15:17: E202 whitespace before ')' manual_tests.py:16:17: E202 whitespace before ')' manual_tests.py:17:19: E202 whitespace before ')' manual_tests.py:19:1: E302 expected 2 blank lines, found 1 manual_tests.py:20:22: E202 whitespace before ')' manual_tests.py:21:22: E202 whitespace before ')' manual_tests.py:22:21: E202 whitespace before ')' manual_tests.py:23:21: E202 whitespace before ')' manual_tests.py:24:23: E202 whitespace before ')' manual_tests.py:26:1: E305 expected 2 blank lines after class or function definition, found 1 manual_tests.py:26:45: E202 whitespace before ')' manual_tests.py:30:31: E202 whitespace before ')' manual_tests.py:31:28: E202 whitespace before ')' manual_tests.py:35:26: E202 whitespace before ')' manual_tests.py:36:28: E202 whitespace before ')' manual_tests.py:40:21: E202 whitespace before ')' manual_tests.py:49:1: W391 blank line at end of file $ pycodestyle --ignore="" manual_tests.py manual_tests.py:4:80: E501 line too long (94 > 79 characters) manual_tests.py:8:30: E201 whitespace after '(' manual_tests.py:8:58: E202 whitespace before ')' manual_tests.py:9:1: E402 module level import not at top of file manual_tests.py:11:17: E201 whitespace after '(' manual_tests.py:11:31: E202 whitespace before ')' manual_tests.py:13:5: E201 whitespace after '(' manual_tests.py:13:18: E202 whitespace before ')' manual_tests.py:14:5: E201 whitespace after '(' manual_tests.py:14:18: E202 whitespace before ')' manual_tests.py:15:10: E201 whitespace after '(' manual_tests.py:15:17: E202 whitespace before ')' manual_tests.py:16:10: E201 whitespace after '(' manual_tests.py:16:17: E202 whitespace before ')' manual_tests.py:17:11: E201 whitespace after '(' manual_tests.py:17:19: E202 whitespace before ')' manual_tests.py:19:1: E302 expected 2 blank lines, found 1 manual_tests.py:20:9: E201 whitespace after '(' manual_tests.py:20:22: E202 whitespace before ')' manual_tests.py:21:9: E201 whitespace after '(' manual_tests.py:21:22: E202 whitespace before ')' manual_tests.py:22:14: E201 whitespace after '(' manual_tests.py:22:21: E202 whitespace before ')' manual_tests.py:23:14: E201 whitespace after '(' manual_tests.py:23:21: E202 whitespace before ')' manual_tests.py:24:15: E201 whitespace after '(' manual_tests.py:24:23: E202 whitespace before ')' manual_tests.py:26:1: E305 expected 2 blank lines after class or function definition, found 1 manual_tests.py:26:18: E201 whitespace after '(' manual_tests.py:26:45: E202 whitespace before ')' manual_tests.py:30:17: E201 whitespace after '(' manual_tests.py:30:31: E202 whitespace before ')' manual_tests.py:31:18: E201 whitespace after '(' manual_tests.py:31:28: E202 whitespace before ')' manual_tests.py:35:17: E201 whitespace after '(' manual_tests.py:35:26: E202 whitespace before ')' manual_tests.py:36:18: E201 whitespace after '(' manual_tests.py:36:28: E202 whitespace before ')' manual_tests.py:40:17: E201 whitespace after '(' manual_tests.py:40:21: E202 whitespace before ')' manual_tests.py:49:1: W391 blank line at end of file ``` This is the file used:

```python # To run this file, run on the Sublime Text console: # import sublime_plugin; sublime_plugin.reload_plugin( "PythonDebugTools.tests.manual_tests" ) import sublime_plugin # Import and reload the debugger sublime_plugin.reload_plugin( "python_debug_tools.logger" ) from python_debug_tools.logger import getLogger log = getLogger( 127, __name__ ) log( 1, "Bitwise" ) log( 8, "Bitwise" ) log.warn( "Warn" ) log.info( "Info" ) log.debug( "Debug" ) def function_name(): log( 1, "Bitwise" ) log( 8, "Bitwise" ) log.warn( "Warn" ) log.info( "Info" ) log.debug( "Debug" ) log.setup_logger( function=False, level=True ) log.insert_empty_line() function_name() log = getLogger( __name__, 127 ) log.setup_logger( date=True ) log.insert_empty_line() function_name() log = getLogger( __name__ ) log.setup_logger( date=True ) log.insert_empty_line() function_name() log = getLogger( 127 ) log.setup_logger() log.insert_empty_line() function_name() log = getLogger() log.setup_logger() log.insert_empty_line() function_name() ```



The problem can only be between the communication between `LSP` --> `python-language-server` or `python-language-server` --> `pycodestyle`. I wonder how can we test the communication. I will attempt to insert print statements along the communication path.
evandrocoan commented 6 years ago

I added a debug statement on pycodestyle:

sys.stderr.write( "\n\nStyleGuide: options.ignore: " + str( options.ignore ) + "\n" )

And I figured out what is the problem. When I run it from the command line, my debug statement outputs:

StyleGuide: options.ignore: ('E201', 'E501')

But when ran inside the LSP, it does output:

StyleGuide: options.ignore: ('E', '2', '0', '1', ',', 'E', '5', '0', '1'):

Now we need to figure out where it is going out of the way.

tomv564 commented 6 years ago

Good troubleshooting! Looks pyls handles/expects a string of comma-separated entries here:

https://github.com/palantir/python-language-server/blob/af4dcb325d70629435456ce253275edbb84877e1/pyls/config/source.py#L82

evandrocoan commented 6 years ago

This end up to be a bug on pycodestyle. I fixed this on:

  1. https://github.com/PyCQA/pycodestyle/pull/722 Ensure that the *args and **kwargs passed are the correctly type

I hope they merge the pull request.

tomv564 commented 6 years ago

Great job, I'm sure your contribution to pyls is appreciated!

jfcherng commented 6 years ago

EDIT: False alarm. Somehow I messed up pycodestyle with pydocstyle.


After reading this post, still no luck for me. Cant ignore some linting rules.

Get something like these in the diagnosis panel:

      84:80     pycodestyle     warning     E501 line too long (111 > 79 characters)
     123:23     pycodestyle     warning     E251 unexpected spaces around keyword / parameter equals

Am I missing something? Here's my config:

{
    "clients":
    {
        "pyls":
        {
            // pip install python-language-server
            "enabled": true,
            "command": ["pyls"],
            "settings": {
                "pyls": {
                    "plugins":
                    {
                        "pydocstyle": {
                            "enabled": false,
                            "ignore": ["E2","E5"],
                        }
                    },
                }
            },
            "scopes": ["source.python"],
            "syntaxes": [
                "Packages/Python/Python.sublime-syntax",
                "Packages/MagicPython/grammars/MagicPython.tmLanguage",
            ],
            "languageId": "python",
        },
    }
}
evandrocoan commented 6 years ago

@jfcherng, it is a bug on the python-language-server. I partially fixed it on my fork last week, but I got not time to make a pull request:

  1. https://github.com/palantir/python-language-server/issues/271 pydocstyle configs are not being passed to pydocstyle plugin