Fix #1727 - Replace previoulsy defined linters with matching names
This commit is contained in:
parent
168768b326
commit
ce91972c94
2 changed files with 12 additions and 2 deletions
|
@ -358,12 +358,14 @@ function! ale#linter#Define(filetype, linter) abort
|
||||||
" This command will throw from the sandbox.
|
" This command will throw from the sandbox.
|
||||||
let &l:equalprg=&l:equalprg
|
let &l:equalprg=&l:equalprg
|
||||||
|
|
||||||
|
let l:new_linter = ale#linter#PreProcess(a:filetype, a:linter)
|
||||||
|
|
||||||
if !has_key(s:linters, a:filetype)
|
if !has_key(s:linters, a:filetype)
|
||||||
let s:linters[a:filetype] = []
|
let s:linters[a:filetype] = []
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let l:new_linter = ale#linter#PreProcess(a:filetype, a:linter)
|
" Remove previously defined linters with the same name.
|
||||||
|
call filter(s:linters[a:filetype], 'v:val.name isnot# a:linter.name')
|
||||||
call add(s:linters[a:filetype], l:new_linter)
|
call add(s:linters[a:filetype], l:new_linter)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
|
@ -158,6 +158,14 @@ Execute (Buffer-local overrides for aliases should be used):
|
||||||
|
|
||||||
AssertEqual [g:testlinter1, g:testlinter2], ale#linter#Get('testft1')
|
AssertEqual [g:testlinter1, g:testlinter2], ale#linter#Get('testft1')
|
||||||
|
|
||||||
|
Execute (Linters new linters with the same name should replace old ones):
|
||||||
|
let g:testlinter1.name = g:testlinter2.name
|
||||||
|
|
||||||
|
call ale#linter#Define('testft1', g:testlinter1)
|
||||||
|
call ale#linter#Define('testft1', g:testlinter2)
|
||||||
|
|
||||||
|
AssertEqual [g:testlinter2], ale#linter#GetAll(['testft1'])
|
||||||
|
|
||||||
Execute (Linters should be loaded from disk appropriately):
|
Execute (Linters should be loaded from disk appropriately):
|
||||||
call ale#linter#Reset()
|
call ale#linter#Reset()
|
||||||
AssertEqual [{'name': 'testlinter', 'output_stream': 'stdout', 'executable': 'testlinter', 'command': 'testlinter', 'callback': 'testCB', 'read_buffer': 1, 'lint_file': 0, 'aliases': [], 'lsp': ''}], ale#linter#Get('testft')
|
AssertEqual [{'name': 'testlinter', 'output_stream': 'stdout', 'executable': 'testlinter', 'command': 'testlinter', 'callback': 'testCB', 'read_buffer': 1, 'lint_file': 0, 'aliases': [], 'lsp': ''}], ale#linter#Get('testft')
|
||||||
|
|
Reference in a new issue