diff options
-rw-r--r-- | autoload/ale/codefix.vim | 10 | ||||
-rw-r--r-- | test/test_codefix.vader | 4 |
2 files changed, 8 insertions, 6 deletions
diff --git a/autoload/ale/codefix.vim b/autoload/ale/codefix.vim index 4a78063b..09ee34cb 100644 --- a/autoload/ale/codefix.vim +++ b/autoload/ale/codefix.vim @@ -299,7 +299,7 @@ function! ale#codefix#HandleLSPResponse(conn_id, response) abort endif endfunction -function! s:FindError(buffer, line, column, end_line, end_column) abort +function! s:FindError(buffer, line, column, end_line, end_column, linter_name) abort let l:nearest_error = v:null if a:line == a:end_line @@ -308,7 +308,9 @@ function! s:FindError(buffer, line, column, end_line, end_column) abort let l:nearest_error_diff = -1 for l:error in get(g:ale_buffer_info[a:buffer], 'loclist', []) - if has_key(l:error, 'code') && l:error.lnum == a:line + if has_key(l:error, 'code') + \ && (a:linter_name is v:null || l:error.linter_name is# a:linter_name) + \ && l:error.lnum == a:line let l:diff = abs(l:error.col - a:column) if l:nearest_error_diff == -1 || l:diff < l:nearest_error_diff @@ -341,7 +343,7 @@ function! s:OnReady( if a:linter.lsp is# 'tsserver' let l:nearest_error = - \ s:FindError(l:buffer, a:line, a:column, a:end_line, a:end_column) + \ s:FindError(l:buffer, a:line, a:column, a:end_line, a:end_column, a:linter.lsp) if l:nearest_error isnot v:null let l:message = ale#lsp#tsserver_message#GetCodeFixes( @@ -368,7 +370,7 @@ function! s:OnReady( let l:diagnostics = [] let l:nearest_error = - \ s:FindError(l:buffer, a:line, a:column, a:end_line, a:end_column) + \ s:FindError(l:buffer, a:line, a:column, a:end_line, a:end_column, v:null) if l:nearest_error isnot v:null let l:diagnostics = [ diff --git a/test/test_codefix.vader b/test/test_codefix.vader index fc5470aa..a9fff89d 100644 --- a/test/test_codefix.vader +++ b/test/test_codefix.vader @@ -280,7 +280,7 @@ Execute(tsserver codefix requests should be sent): call ale#linter#Reset() runtime ale_linters/typescript/tsserver.vim - let g:ale_buffer_info = {bufnr(''): {'loclist': [{'lnum': 2, 'col': 5, 'code': 2304}]}} + let g:ale_buffer_info = {bufnr(''): {'loclist': [{'lnum': 2, 'col': 5, 'code': 2304, 'linter_name': 'tsserver'}]}} call setpos('.', [bufnr(''), 2, 16, 0]) " ALECodeAction @@ -314,7 +314,7 @@ Execute(tsserver codefix requests should be sent only for error with code): call ale#linter#Reset() runtime ale_linters/typescript/tsserver.vim - let g:ale_buffer_info = {bufnr(''): {'loclist': [{'lnum': 2, 'col': 16}, {'lnum': 2, 'col': 16, 'code': 2304}]}} + let g:ale_buffer_info = {bufnr(''): {'loclist': [{'lnum': 2, 'col': 16, 'linter_name': 'tsserver'}, {'lnum': 2, 'col': 16, 'code': 2304, 'linter_name': 'tsserver'}]}} call setpos('.', [bufnr(''), 2, 16, 0]) " ALECodeAction |