summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoload/ale/codefix.vim10
-rw-r--r--test/test_codefix.vader4
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