#927 Allow b:ale_linter_aliases to be set to a String

This commit is contained in:
w0rp 2018-10-26 09:22:33 +01:00
parent 320c74ce1a
commit 77aacf0c91
No known key found for this signature in database
GPG Key ID: 0FC1ECAA8C81CD83
3 changed files with 17 additions and 3 deletions

View File

@ -346,8 +346,9 @@ endfunction
function! s:GetAliasedFiletype(original_filetype) abort function! s:GetAliasedFiletype(original_filetype) abort
let l:buffer_aliases = get(b:, 'ale_linter_aliases', {}) let l:buffer_aliases = get(b:, 'ale_linter_aliases', {})
" b:ale_linter_aliases can be set to a List. " b:ale_linter_aliases can be set to a List or String.
if type(l:buffer_aliases) is v:t_list if type(l:buffer_aliases) is v:t_list
\|| type(l:buffer_aliases) is v:t_string
return l:buffer_aliases return l:buffer_aliases
endif endif

View File

@ -1310,10 +1310,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 `b:ale_linter_aliases` can be set to a |List| or a |String|, to tell ALE to
linters for specific filetypes for a given buffer. > load the linters for specific filetypes for a given buffer. >
let b:ale_linter_aliases = ['html', 'javascript', 'css'] let b:ale_linter_aliases = ['html', 'javascript', 'css']
" OR, Alias a filetype to only a single filetype with a String.
let b:ale_linter_aliases = 'javascript'
< <
No linters will be loaded when the buffer's filetype is empty. No linters will be loaded when the buffer's filetype is empty.

View File

@ -130,6 +130,8 @@ 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']}
AssertEqual [g:testlinter1, g:testlinter2], ale#linter#Get('testft1')
Execute (Lists should be accepted for local aliases): Execute (Lists should be accepted for local aliases):
call ale#linter#Define('testft1', g:testlinter1) call ale#linter#Define('testft1', g:testlinter1)
call ale#linter#Define('testft2', g:testlinter2) call ale#linter#Define('testft2', g:testlinter2)
@ -139,6 +141,15 @@ Execute (Lists should be accepted for local aliases):
AssertEqual [g:testlinter2], ale#linter#Get('anything.else') AssertEqual [g:testlinter2], ale#linter#Get('anything.else')
Execute (Strings 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): Execute (Buffer-local overrides for aliases should be used):
call ale#linter#Define('testft1', g:testlinter1) call ale#linter#Define('testft1', g:testlinter1)
call ale#linter#Define('testft2', g:testlinter2) call ale#linter#Define('testft2', g:testlinter2)