#1108 Support setting b:ale_linter_aliases to a List
This commit is contained in:
parent
b98387d0fa
commit
d20e3bc71c
3 changed files with 29 additions and 1 deletions
|
@ -261,12 +261,19 @@ function! ale#linter#GetAll(filetypes) abort
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:GetAliasedFiletype(original_filetype) abort
|
function! s:GetAliasedFiletype(original_filetype) abort
|
||||||
|
let l:buffer_aliases = get(b:, 'ale_linter_aliases', {})
|
||||||
|
|
||||||
|
" b:ale_linter_aliases can be set to a List.
|
||||||
|
if type(l:buffer_aliases) is type([])
|
||||||
|
return l:buffer_aliases
|
||||||
|
endif
|
||||||
|
|
||||||
" Check for aliased filetypes first in a buffer variable,
|
" Check for aliased filetypes first in a buffer variable,
|
||||||
" then the global variable,
|
" then the global variable,
|
||||||
" then in the default mapping,
|
" then in the default mapping,
|
||||||
" otherwise use the original filetype.
|
" otherwise use the original filetype.
|
||||||
for l:dict in [
|
for l:dict in [
|
||||||
\ get(b:, 'ale_linter_aliases', {}),
|
\ l:buffer_aliases,
|
||||||
\ g:ale_linter_aliases,
|
\ g:ale_linter_aliases,
|
||||||
\ s:default_ale_linter_aliases,
|
\ s:default_ale_linter_aliases,
|
||||||
\]
|
\]
|
||||||
|
|
|
@ -906,6 +906,12 @@ g:ale_linter_aliases *g:ale_linter_aliases*
|
||||||
ALE will first look for aliases for filetypes in the `b:ale_linter_aliases`
|
ALE will first look for aliases for filetypes in the `b:ale_linter_aliases`
|
||||||
variable, then `g:ale_linter_aliases`, and then a default Dictionary.
|
variable, then `g:ale_linter_aliases`, and then a default Dictionary.
|
||||||
|
|
||||||
|
`b:ale_linter_aliases` can be set to a |List|, to tell ALE to load the
|
||||||
|
linters for specific filetypes for a given buffer. >
|
||||||
|
|
||||||
|
let b:ale_linter_aliases = ['html', 'javascript', 'css']
|
||||||
|
<
|
||||||
|
No linters will be loaded when the buffer's filetype is empty.
|
||||||
|
|
||||||
g:ale_linters *g:ale_linters*
|
g:ale_linters *g:ale_linters*
|
||||||
*b:ale_linters*
|
*b:ale_linters*
|
||||||
|
|
|
@ -126,6 +126,21 @@ Execute (The local alias option shouldn't completely replace the global one):
|
||||||
" global Dictionary.
|
" global Dictionary.
|
||||||
let b:ale_linter_aliases = {'testft3': ['testft1']}
|
let b:ale_linter_aliases = {'testft3': ['testft1']}
|
||||||
|
|
||||||
|
Execute (Lists should be accepted for local aliases):
|
||||||
|
call ale#linter#Define('testft1', g:testlinter1)
|
||||||
|
call ale#linter#Define('testft2', g:testlinter2)
|
||||||
|
let g:ale_linter_aliases = {'testft1': ['testft1', 'testft2']}
|
||||||
|
" We should load the testft2 linters for this buffer, with no duplicates.
|
||||||
|
let b:ale_linter_aliases = ['testft2']
|
||||||
|
|
||||||
|
AssertEqual [g:testlinter2], ale#linter#Get('anything.else')
|
||||||
|
|
||||||
|
Execute (Buffer-local overrides for aliases should be used):
|
||||||
|
call ale#linter#Define('testft1', g:testlinter1)
|
||||||
|
call ale#linter#Define('testft2', g:testlinter2)
|
||||||
|
let g:ale_linter_aliases = {'testft1': ['testft2']}
|
||||||
|
let b:ale_linter_aliases = {'testft1': ['testft1', 'testft2']}
|
||||||
|
|
||||||
AssertEqual [g:testlinter1, g:testlinter2], ale#linter#Get('testft1')
|
AssertEqual [g:testlinter1, g:testlinter2], ale#linter#Get('testft1')
|
||||||
|
|
||||||
Execute (Linters should be loaded from disk appropriately):
|
Execute (Linters should be loaded from disk appropriately):
|
||||||
|
|
Reference in a new issue