mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-08 05:24:46 +08:00
chore: replace python-language-server to supported pylsp (#3810)
As mentioned in #3722 palantir's python-language-server is no longer maintained. The alternative is to use the community-driven https://github.com/python-lsp/python-lsp-server.
This commit is contained in:
committed by
GitHub
parent
e230f07465
commit
8b73d98baf
@@ -205,8 +205,8 @@ Given python(Some Python file):
|
||||
bazxyzxyzxyz
|
||||
|
||||
Execute(The right message should be sent for the initial LSP request):
|
||||
runtime ale_linters/python/pyls.vim
|
||||
let b:ale_linters = ['pyls']
|
||||
runtime ale_linters/python/pylsp.vim
|
||||
let b:ale_linters = ['pylsp']
|
||||
" The cursor position needs to match what was saved before.
|
||||
call setpos('.', [bufnr(''), 1, 5, 0])
|
||||
|
||||
@@ -226,7 +226,7 @@ Execute(The right message should be sent for the initial LSP request):
|
||||
\ string(g:Callback)
|
||||
" We should send the right message.
|
||||
" The character index needs to be at most the index of the last character on
|
||||
" the line, or integration with pyls will be broken.
|
||||
" the line, or integration with pylsp will be broken.
|
||||
"
|
||||
" We need to send the message for changing the document first.
|
||||
AssertEqual
|
||||
|
||||
@@ -41,7 +41,7 @@ Execute(ale#completion#CanProvideCompletions should return 0 when no completion
|
||||
AssertEqual 0, ale#completion#CanProvideCompletions()
|
||||
|
||||
Execute(ale#completion#CanProvideCompletions should return 1 when at least one completion source is available):
|
||||
runtime ale_linters/python/pyls.vim
|
||||
let b:ale_linters = ['pyls']
|
||||
runtime ale_linters/python/pylsp.vim
|
||||
let b:ale_linters = ['pylsp']
|
||||
|
||||
AssertEqual 1, ale#completion#CanProvideCompletions()
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
Before:
|
||||
call ale#assert#SetUpLinterTest('python', 'pyls')
|
||||
|
||||
let b:bin_dir = has('win32') ? 'Scripts' : 'bin'
|
||||
|
||||
After:
|
||||
unlet! b:bin_dir
|
||||
unlet! b:executable
|
||||
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The pyls command callback should return default string):
|
||||
AssertLinter 'pyls', ale#Escape('pyls')
|
||||
|
||||
Execute(The pyls executable should be configurable):
|
||||
let g:ale_python_pyls_executable = '~/.local/bin/pyls'
|
||||
|
||||
AssertLinter '~/.local/bin/pyls' , ale#Escape('~/.local/bin/pyls')
|
||||
|
||||
Execute(The pyls command callback should let you set options):
|
||||
let g:ale_python_pyls_options = '--some-option'
|
||||
|
||||
AssertLinter 'pyls', ale#Escape('pyls') . ' --some-option'
|
||||
|
||||
Execute(The pyls executable should be run from the virtualenv path):
|
||||
call ale#test#SetFilename('../test-files/python/with_virtualenv/subdir/foo/bar.py')
|
||||
|
||||
let b:executable = ale#path#Simplify(
|
||||
\ g:dir . '/../test-files/python/with_virtualenv/env/' . b:bin_dir . '/pyls'
|
||||
\)
|
||||
|
||||
AssertEqual ale#Escape(b:executable),
|
||||
\ ale_linters#python#pyls#GetCommand(bufnr(''))
|
||||
|
||||
Execute(You should be able to override the pyls virtualenv lookup):
|
||||
call ale#test#SetFilename('../test-files/python/with_virtualenv/subdir/foo/bar.py')
|
||||
|
||||
let g:ale_python_pyls_use_global = 1
|
||||
|
||||
AssertLinter 'pyls', ale#Escape('pyls')
|
||||
|
||||
Execute(Setting executable to 'pipenv' appends 'run pyls'):
|
||||
let g:ale_python_pyls_executable = 'path/to/pipenv'
|
||||
|
||||
AssertLinter 'path/to/pipenv', ale#Escape('path/to/pipenv') . ' run pyls'
|
||||
|
||||
Execute(Pipenv is detected when python_pyls_auto_pipenv is set):
|
||||
let g:ale_python_pyls_auto_pipenv = 1
|
||||
call ale#test#SetFilename('../test-files/python/pipenv/whatever.py')
|
||||
|
||||
AssertLinter 'pipenv',
|
||||
\ ale#Escape('pipenv') . ' run pyls'
|
||||
|
||||
Execute(Should accept configuration settings):
|
||||
AssertLSPConfig {}
|
||||
let b:ale_python_pyls_config = {'pyls': {'plugins': {'preload': {'enabled': v:false}}}}
|
||||
AssertLSPConfig {'pyls': {'plugins': {'preload': {'enabled': v:false}}}}
|
||||
57
test/linter/test_pylsp.vader
Normal file
57
test/linter/test_pylsp.vader
Normal file
@@ -0,0 +1,57 @@
|
||||
Before:
|
||||
call ale#assert#SetUpLinterTest('python', 'pylsp')
|
||||
|
||||
let b:bin_dir = has('win32') ? 'Scripts' : 'bin'
|
||||
|
||||
After:
|
||||
unlet! b:bin_dir
|
||||
unlet! b:executable
|
||||
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The pylsp command callback should return default string):
|
||||
AssertLinter 'pylsp', ale#Escape('pylsp')
|
||||
|
||||
Execute(The pylsp executable should be configurable):
|
||||
let g:ale_python_pylsp_executable = '~/.local/bin/pylsp'
|
||||
|
||||
AssertLinter '~/.local/bin/pylsp' , ale#Escape('~/.local/bin/pylsp')
|
||||
|
||||
Execute(The pylsp command callback should let you set options):
|
||||
let g:ale_python_pylsp_options = '--some-option'
|
||||
|
||||
AssertLinter 'pylsp', ale#Escape('pylsp') . ' --some-option'
|
||||
|
||||
Execute(The pylsp executable should be run from the virtualenv path):
|
||||
call ale#test#SetFilename('../test-files/python/with_virtualenv/subdir/foo/bar.py')
|
||||
|
||||
let b:executable = ale#path#Simplify(
|
||||
\ g:dir . '/../test-files/python/with_virtualenv/env/' . b:bin_dir . '/pylsp'
|
||||
\)
|
||||
|
||||
AssertEqual ale#Escape(b:executable),
|
||||
\ ale_linters#python#pylsp#GetCommand(bufnr(''))
|
||||
|
||||
Execute(You should be able to override the pylsp virtualenv lookup):
|
||||
call ale#test#SetFilename('../test-files/python/with_virtualenv/subdir/foo/bar.py')
|
||||
|
||||
let g:ale_python_pylsp_use_global = 1
|
||||
|
||||
AssertLinter 'pylsp', ale#Escape('pylsp')
|
||||
|
||||
Execute(Setting executable to 'pipenv' appends 'run pylsp'):
|
||||
let g:ale_python_pylsp_executable = 'path/to/pipenv'
|
||||
|
||||
AssertLinter 'path/to/pipenv', ale#Escape('path/to/pipenv') . ' run pylsp'
|
||||
|
||||
Execute(Pipenv is detected when python_pylsp_auto_pipenv is set):
|
||||
let g:ale_python_pylsp_auto_pipenv = 1
|
||||
call ale#test#SetFilename('../test-files/python/pipenv/whatever.py')
|
||||
|
||||
AssertLinter 'pipenv',
|
||||
\ ale#Escape('pipenv') . ' run pylsp'
|
||||
|
||||
Execute(Should accept configuration settings):
|
||||
AssertLSPConfig {}
|
||||
let b:ale_python_pylsp_config = {'pylsp': {'plugins': {'preload': {'enabled': v:false}}}}
|
||||
AssertLSPConfig {'pylsp': {'plugins': {'preload': {'enabled': v:false}}}}
|
||||
@@ -391,11 +391,11 @@ Execute(LSP diagnostics responses on project root should not populate loclist):
|
||||
\ ale#test#GetLoclistWithoutModule()
|
||||
|
||||
Execute(LSP errors should mark linters no longer active):
|
||||
let b:ale_linters = ['pyls']
|
||||
runtime ale_linters/python/pyls.vim
|
||||
let b:ale_linters = ['pylsp']
|
||||
runtime ale_linters/python/pylsp.vim
|
||||
call ale#test#SetFilename('filename.py')
|
||||
call ale#engine#InitBufferInfo(bufnr(''))
|
||||
call ale#lsp_linter#SetLSPLinterMap({1: 'pyls'})
|
||||
call ale#lsp_linter#SetLSPLinterMap({1: 'pylsp'})
|
||||
|
||||
let g:ale_buffer_info[bufnr('')].active_linter_list = ale#linter#Get('python')
|
||||
Assert !empty(g:ale_buffer_info[bufnr('')].active_linter_list)
|
||||
|
||||
@@ -344,8 +344,8 @@ Execute(LSP reference responses with a null result should be handled):
|
||||
AssertEqual ['echom ''No references found.'''], g:expr_list
|
||||
|
||||
Execute(LSP reference requests should be sent):
|
||||
runtime ale_linters/python/pyls.vim
|
||||
let b:ale_linters = ['pyls']
|
||||
runtime ale_linters/python/pylsp.vim
|
||||
let b:ale_linters = ['pylsp']
|
||||
call setpos('.', [bufnr(''), 1, 5, 0])
|
||||
|
||||
ALEFindReferences
|
||||
@@ -381,8 +381,8 @@ Execute(LSP reference requests should be sent):
|
||||
AssertEqual {'42': {'open_in': 'current-buffer', 'use_relative_paths': 0}}, ale#references#GetMap()
|
||||
|
||||
Execute('-relative' argument should enable 'use_relative_paths' in HandleLSPResponse):
|
||||
runtime ale_linters/python/pyls.vim
|
||||
let b:ale_linters = ['pyls']
|
||||
runtime ale_linters/python/pylsp.vim
|
||||
let b:ale_linters = ['pylsp']
|
||||
call setpos('.', [bufnr(''), 1, 5, 0])
|
||||
|
||||
ALEFindReferences -relative
|
||||
|
||||
@@ -449,8 +449,8 @@ Execute(Definition responses with null response should be handled):
|
||||
AssertEqual [], g:expr_list
|
||||
|
||||
Execute(LSP definition requests should be sent):
|
||||
runtime ale_linters/python/pyls.vim
|
||||
let b:ale_linters = ['pyls']
|
||||
runtime ale_linters/python/pylsp.vim
|
||||
let b:ale_linters = ['pylsp']
|
||||
call setpos('.', [bufnr(''), 1, 5, 0])
|
||||
|
||||
ALEGoToDefinition
|
||||
@@ -485,8 +485,8 @@ Execute(LSP definition requests should be sent):
|
||||
AssertEqual {'42': {'open_in': 'current-buffer'}}, ale#definition#GetMap()
|
||||
|
||||
Execute(LSP type definition requests should be sent):
|
||||
runtime ale_linters/python/pyls.vim
|
||||
let b:ale_linters = ['pyls']
|
||||
runtime ale_linters/python/pylsp.vim
|
||||
let b:ale_linters = ['pylsp']
|
||||
call setpos('.', [bufnr(''), 1, 5, 0])
|
||||
|
||||
ALEGoToTypeDefinition
|
||||
@@ -521,8 +521,8 @@ Execute(LSP type definition requests should be sent):
|
||||
AssertEqual {'42': {'open_in': 'current-buffer'}}, ale#definition#GetMap()
|
||||
|
||||
Execute(LSP tab definition requests should be sent):
|
||||
runtime ale_linters/python/pyls.vim
|
||||
let b:ale_linters = ['pyls']
|
||||
runtime ale_linters/python/pylsp.vim
|
||||
let b:ale_linters = ['pylsp']
|
||||
call setpos('.', [bufnr(''), 1, 5, 0])
|
||||
|
||||
ALEGoToDefinition -tab
|
||||
@@ -557,8 +557,8 @@ Execute(LSP tab definition requests should be sent):
|
||||
AssertEqual {'42': {'open_in': 'tab'}}, ale#definition#GetMap()
|
||||
|
||||
Execute(LSP tab type definition requests should be sent):
|
||||
runtime ale_linters/python/pyls.vim
|
||||
let b:ale_linters = ['pyls']
|
||||
runtime ale_linters/python/pylsp.vim
|
||||
let b:ale_linters = ['pylsp']
|
||||
call setpos('.', [bufnr(''), 1, 5, 0])
|
||||
|
||||
ALEGoToTypeDefinition -tab
|
||||
|
||||
@@ -156,8 +156,8 @@ Given python(Some Python file):
|
||||
|
||||
Execute(Should result in error message):
|
||||
call ale#linter#Reset()
|
||||
runtime ale_linters/python/pyls.vim
|
||||
let b:ale_linters = ['pyls']
|
||||
runtime ale_linters/python/pylsp.vim
|
||||
let b:ale_linters = ['pylsp']
|
||||
|
||||
ALEOrganizeImports
|
||||
|
||||
|
||||
@@ -466,8 +466,8 @@ Execute(LSP should perform no action when changes is empty):
|
||||
|
||||
Execute(LSP rename requests should be sent):
|
||||
call ale#rename#SetMap({})
|
||||
runtime ale_linters/python/pyls.vim
|
||||
let b:ale_linters = ['pyls']
|
||||
runtime ale_linters/python/pylsp.vim
|
||||
let b:ale_linters = ['pylsp']
|
||||
call setpos('.', [bufnr(''), 1, 5, 0])
|
||||
|
||||
ALERename
|
||||
|
||||
@@ -152,8 +152,8 @@ Given python(Some Python file):
|
||||
bazxyzxyzxyz
|
||||
|
||||
Execute(LSP symbol requests should be sent):
|
||||
runtime ale_linters/python/pyls.vim
|
||||
let b:ale_linters = ['pyls']
|
||||
runtime ale_linters/python/pylsp.vim
|
||||
let b:ale_linters = ['pylsp']
|
||||
call setpos('.', [bufnr(''), 1, 5, 0])
|
||||
|
||||
ALESymbolSearch foo bar
|
||||
@@ -178,8 +178,8 @@ Execute(LSP symbol requests should be sent):
|
||||
AssertEqual {'42': {'buffer': bufnr(''), 'use_relative_paths': 0}}, ale#symbol#GetMap()
|
||||
|
||||
Execute('-relative' argument should enable 'use_relative_paths' in HandleLSPResponse):
|
||||
runtime ale_linters/python/pyls.vim
|
||||
let b:ale_linters = ['pyls']
|
||||
runtime ale_linters/python/pylsp.vim
|
||||
let b:ale_linters = ['pylsp']
|
||||
call setpos('.', [bufnr(''), 1, 5, 0])
|
||||
|
||||
ALESymbolSearch -relative foo bar
|
||||
|
||||
Reference in New Issue
Block a user