forked from dense-analysis/ale
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Support for LSP/tsserver Code Actions (dense-analysis#3437)
* Added tsserver and LSP code action support. * tsserver refactors support added. * Handling special case when new text is added after new line symbol. * ale#code_action#ApplyChanges simplified. * Initial attempt on LSP Code Actions. * workspace/executeCommand added. * Some null checks added. * Add last column to LSP Code Action message. * Pass diagnostics to LSP code action. Previously ApplyChanges code was applied from top-to-bottom that required extra parameters to track progress and there was bug. I have changed code to bottom-to-top approach as that does not require those extra parameters and solved the bug. Tested with typescript-language-server and it is working.
- Loading branch information
Showing
15 changed files
with
1,258 additions
and
84 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
" Author: Dalius Dobravolskas <dalius.dobravolskas@gmail.com> | ||
" Description: https://github.com/pappasam/jedi-language-server | ||
|
||
call ale#Set('python_jedils_executable', 'jedi-language-server') | ||
call ale#Set('python_jedils_use_global', get(g:, 'ale_use_global_executables', 0)) | ||
call ale#Set('python_jedils_auto_pipenv', 0) | ||
|
||
function! ale_linters#python#jedils#GetExecutable(buffer) abort | ||
if (ale#Var(a:buffer, 'python_auto_pipenv') || ale#Var(a:buffer, 'python_jedils_auto_pipenv')) | ||
\ && ale#python#PipenvPresent(a:buffer) | ||
return 'pipenv' | ||
endif | ||
|
||
return ale#python#FindExecutable(a:buffer, 'python_jedils', ['jedi-language-server']) | ||
endfunction | ||
|
||
function! ale_linters#python#jedils#GetCommand(buffer) abort | ||
let l:executable = ale_linters#python#jedils#GetExecutable(a:buffer) | ||
|
||
let l:exec_args = l:executable =~? 'pipenv$' | ||
\ ? ' run jedi-language-server' | ||
\ : '' | ||
|
||
return ale#Escape(l:executable) . l:exec_args | ||
endfunction | ||
|
||
call ale#linter#Define('python', { | ||
\ 'name': 'jedils', | ||
\ 'lsp': 'stdio', | ||
\ 'executable': function('ale_linters#python#jedils#GetExecutable'), | ||
\ 'command': function('ale_linters#python#jedils#GetCommand'), | ||
\ 'project_root': function('ale#python#FindProjectRoot'), | ||
\ 'completion_filter': 'ale#completion#python#CompletionItemFilter', | ||
\}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.