Fix #500 - Support defining aliases for linter names

This commit is contained in:
w0rp
2017-05-27 21:27:42 +01:00
parent 8e997ac231
commit aca5a00fb7
6 changed files with 156 additions and 33 deletions

View File

@@ -164,6 +164,13 @@ function! ale#linter#PreProcess(linter) abort
throw 'Only one of `lint_file` or `read_buffer` can be `1`'
endif
let l:obj.aliases = get(a:linter, 'aliases', [])
if type(l:obj.aliases) != type([])
\|| len(filter(copy(l:obj.aliases), 'type(v:val) != type('''')')) > 0
throw '`aliases` must be a List of String values'
endif
return l:obj
endfunction
@@ -256,9 +263,14 @@ function! ale#linter#Get(original_filetypes) abort
elseif type(l:linter_names) == type([])
" Select only the linters we or the user has specified.
for l:linter in l:all_linters
if index(l:linter_names, l:linter.name) >= 0
call add(l:filetype_linters, l:linter)
endif
let l:name_list = [l:linter.name] + l:linter.aliases
for l:name in l:name_list
if index(l:linter_names, l:name) >= 0
call add(l:filetype_linters, l:linter)
break
endif
endfor
endfor
endif