A vim plugin for pysen-ls
- Plug
Plug 'prabirshrestha/vim-lsp'
Plug 'bonprosoft/pysen.vim'Note that you also need to install pysen-ls >= 0.1.0 in your python environment.
Use the commands vim-lsp provides to invoke the standard language server feature.
For example:
:LspDocumentDiagnostics " show diagnostics
:LspDocumentFormat " apply formatter
:LspCodeAction " show code actionpysen-ls provides some extra commands to trigger formatter/linter.
" to invoke `pysen.callLintDocument`
:PysenLintDocument
:PysenLintDocument <path>
" to invoke `pysen.callFormatDocument`
:PysenFormatDocument
:PysenFormatDocument <path>
" to invoke `pysen.callLintWorkspace`
:PysenLintWorkspace
" to invoke `pysen.callFormatWorkspace`
:PysenFormatWorkspaceNote that those commands will be available only if the pysen-ls is activated to the current buffer.
- (Default) Use stdio to connect to
pysen-ls
let g:pysen_connection_mode = 'io'
let g:pysen_python_path = 'python3'- Use tcp to connect to
pysen-ls
let g:pysen_connection_mode = 'tcp'
let g:pysen_tcp_addr = '127.0.0.1:3746'- Configure
pysen-lssettings
let g:pysen_language_server_config = {
\ 'enableLintOnSave': v:true,
\ 'enableCodeAction': v:true,
\ 'lintTargets': ['lint'],
\ 'formatTargets': ['format', 'lint'],
\ }You may need to disable some linter plugins (e.g. flake8, mypy, isort, black) as they don't read pysen configuration.
The recommended way is to disable conflicting linter plugins. For example, ALE users can specify a list of linters to use for each language.
let g:ale_linters = {
\ 'python': [],
\}You can also setup your editor's linter plugins with pysen compatible settings by configuring pysen to export configuration files.
See Settings file directory section in pysen's README.