#3599 - Use ale_root instead of ale_lsp_root

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.
This commit is contained in:
w0rp
2021-03-01 20:51:29 +00:00
parent 9fe7b1fe6a
commit 680ba68d81
8 changed files with 91 additions and 52 deletions

View File

@@ -265,11 +265,11 @@ function! ale#assert#SetUpLinterTest(filetype, name) abort
call ale#linter#Reset()
call ale#linter#PreventLoading(a:filetype)
Save g:ale_lsp_root
let g:ale_lsp_root = {}
Save g:ale_root
let g:ale_root = {}
Save b:ale_lsp_root
unlet! b:ale_lsp_root
Save b:ale_root
unlet! b:ale_root
call ale#assert#ResetVariables(a:filetype, a:name)

View File

@@ -33,13 +33,13 @@ let s:global_variable_list = [
\ 'ale_list_vertical',
\ 'ale_list_window_size',
\ 'ale_loclist_msg_format',
\ 'ale_lsp_root',
\ 'ale_max_buffer_history_size',
\ 'ale_max_signs',
\ 'ale_maximum_file_size',
\ 'ale_open_list',
\ 'ale_pattern_options',
\ 'ale_pattern_options_enabled',
\ 'ale_root',
\ 'ale_set_balloons',
\ 'ale_set_highlights',
\ 'ale_set_loclist',

View File

@@ -201,7 +201,11 @@ function! ale#lsp_linter#GetConfig(buffer, linter) abort
endfunction
function! ale#lsp_linter#FindProjectRoot(buffer, linter) abort
let l:buffer_ale_root = getbufvar(a:buffer, 'ale_lsp_root', {})
let l:buffer_ale_root = getbufvar(
\ a:buffer,
\ 'ale_root',
\ getbufvar(a:buffer, 'ale_lsp_root', {})
\)
if type(l:buffer_ale_root) is v:t_string
return l:buffer_ale_root
@@ -218,9 +222,15 @@ function! ale#lsp_linter#FindProjectRoot(buffer, linter) abort
endif
endif
let l:global_root = g:ale_root
if empty(g:ale_root) && exists('g:ale_lsp_root')
let l:global_root = g:ale_lsp_root
endif
" Try to get a global setting for the root
if has_key(g:ale_lsp_root, a:linter.name)
let l:Root = g:ale_lsp_root[a:linter.name]
if has_key(l:global_root, a:linter.name)
let l:Root = l:global_root[a:linter.name]
if type(l:Root) is v:t_func
return l:Root(a:buffer)