diff options
author | w0rp <devw0rp@gmail.com> | 2020-08-07 12:16:13 +0100 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2020-08-07 12:16:13 +0100 |
commit | 19229e8e276a6527c179ae2cb7e0420a1c62996f (patch) | |
tree | 2915c0d9214ce5a9910a8fd32d9a7333222ef7c9 /ale_linters/python | |
parent | 9bdabce8dffa54791aff8c97f46d0f8ab5acbf24 (diff) | |
download | ale-19229e8e276a6527c179ae2cb7e0420a1c62996f.zip |
Close #2472 - Add support for pyright
Diffstat (limited to 'ale_linters/python')
-rw-r--r-- | ale_linters/python/pyright.vim | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/ale_linters/python/pyright.vim b/ale_linters/python/pyright.vim new file mode 100644 index 00000000..422ecd61 --- /dev/null +++ b/ale_linters/python/pyright.vim @@ -0,0 +1,43 @@ +call ale#Set('python_pyright_executable', 'pyright-langserver') +call ale#Set('python_pyright_config', {}) + +function! ale_linters#python#pyright#GetConfig(buffer) abort + let l:config = deepcopy(ale#Var(a:buffer, 'python_pyright_config')) + + if !has_key(l:config, 'python') + let l:config.python = {} + endif + + if type(l:config.python) is v:t_dict + " Automatically detect the virtualenv path and use it. + if !has_key(l:config.python, 'venvPath') + let l:venv = ale#python#FindVirtualenv(a:buffer) + + if !empty(l:venv) + let l:config.python.venvPath = l:venv + endif + endif + + " Automatically use the version of Python in virtualenv. + if type(get(l:config.python, 'venvPath')) is v:t_string + \&& !empty(l:config.python.venvPath) + \&& !has_key(l:config.python, 'pythonPath') + let l:config.python.pythonPath = ale#path#Simplify( + \ l:config.python.venvPath + \ . (has('win32') ? '/Scripts/python' : '/bin/python') + \) + endif + endif + + return l:config +endfunction + +call ale#linter#Define('python', { +\ 'name': 'pyright', +\ 'lsp': 'stdio', +\ 'executable': {b -> ale#Var(b, 'python_pyright_executable')}, +\ 'command': '%e --stdio', +\ 'project_root': function('ale#python#FindProjectRoot'), +\ 'completion_filter': 'ale#completion#python#CompletionItemFilter', +\ 'lsp_config': function('ale_linters#python#pyright#GetConfig'), +\}) |