680ba68d81
The `ale_lsp_root` setting is now deprecated, and `ale_root` should be used instead. The setting will be used for both setting the root easily for LSP linters, and for running other linters over whole projects.
90 lines
2.7 KiB
Text
90 lines
2.7 KiB
Text
Before:
|
|
Save g:ale_lsp_root
|
|
Save g:ale_root
|
|
Save b:ale_lsp_root
|
|
Save b:ale_root
|
|
|
|
unlet! g:ale_lsp_root
|
|
let g:ale_root = {}
|
|
|
|
call ale#assert#SetUpLinterTest('c', 'clangd')
|
|
|
|
function! Hook1(buffer)
|
|
return 'abc123'
|
|
endfunction
|
|
|
|
After:
|
|
Restore
|
|
|
|
delfunction Hook1
|
|
|
|
call ale#assert#TearDownLinterTest()
|
|
|
|
Execute(The buffer-specific variable can be a string):
|
|
let b:ale_root = '/some/path'
|
|
call ale#test#SetFilename('other-file.c')
|
|
|
|
AssertLSPProject '/some/path'
|
|
|
|
Execute(The buffer-specific variable can be a dictionary):
|
|
let b:ale_root = {'clangd': '/some/path', 'golangserver': '/other/path'}
|
|
call ale#test#SetFilename('other-file.c')
|
|
|
|
AssertLSPProject '/some/path'
|
|
|
|
Execute(The buffer-specific variable can have funcrefs):
|
|
let b:ale_root = {'clangd': function('Hook1'), 'golangserver': '/path'}
|
|
call ale#test#SetFilename('other-file.c')
|
|
|
|
AssertLSPProject 'abc123'
|
|
|
|
Execute(The buffer-specific variable can be the old ale_lsp_root setting):
|
|
let b:ale_lsp_root = '/some/path'
|
|
call ale#test#SetFilename('other-file.c')
|
|
|
|
AssertLSPProject '/some/path'
|
|
|
|
Execute(The global variable can be a dictionary):
|
|
let g:ale_root = {'clangd': '/some/path', 'golangserver': '/other/path'}
|
|
call ale#test#SetFilename('other-file.c')
|
|
|
|
AssertLSPProject '/some/path'
|
|
|
|
Execute(The global variable can have funcrefs):
|
|
let g:ale_root = {'clangd': function('Hook1'), 'golangserver': '/path'}
|
|
call ale#test#SetFilename('other-file.c')
|
|
|
|
AssertLSPProject 'abc123'
|
|
|
|
Execute(The buffer-specific variable overrides the global variable):
|
|
let b:ale_root = {'clangd': '/some/path', 'golangserver': '/other/path'}
|
|
let g:ale_root = {'clangd': '/not/this/path', 'golangserver': '/elsewhere'}
|
|
call ale#test#SetFilename('other-file.c')
|
|
|
|
AssertLSPProject '/some/path'
|
|
|
|
Execute(The global variable is queried if the buffer-specific has no value):
|
|
let b:ale_root = {'golangserver': '/other/path'}
|
|
let g:ale_root = {'clangd': '/some/path', 'golangserver': '/elsewhere'}
|
|
call ale#test#SetFilename('other-file.c')
|
|
|
|
AssertLSPProject '/some/path'
|
|
|
|
Execute(The global variable can be the old ale_lsp_root setting):
|
|
let g:ale_root = {}
|
|
let g:ale_lsp_root = {'clangd': '/some/path', 'golangserver': '/other/path'}
|
|
call ale#test#SetFilename('other-file.c')
|
|
|
|
AssertLSPProject '/some/path'
|
|
|
|
Execute(A non-empty ale_root setting should replace the old ale_lsp_root):
|
|
let g:ale_root = {'clangd': '/some/path', 'golangserver': '/other/path'}
|
|
let g:ale_lsp_root = {'clangd': '/xxx', 'golangserver': '/xxx'}
|
|
call ale#test#SetFilename('other-file.c')
|
|
|
|
AssertLSPProject '/some/path'
|
|
|
|
Execute(No path should be returned by default):
|
|
call ale#test#SetFilename(tempname() . '/other-file.c')
|
|
|
|
AssertLSPProject ''
|