diff options
author | w0rp <devw0rp@gmail.com> | 2019-02-12 18:05:33 +0000 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2019-02-12 18:05:33 +0000 |
commit | 926ad47a49d74c910c610d4a9cedd5c4838d679d (patch) | |
tree | 9f86511f8854e9965978092fcb233a34e3516440 /autoload/ale/linter.vim | |
parent | bf196ba17c9e261e4e3a9dba64260c6d0b2c8af9 (diff) | |
download | ale-926ad47a49d74c910c610d4a9cedd5c4838d679d.zip |
#2132 - Implement deferred executable string handling for linters
Diffstat (limited to 'autoload/ale/linter.vim')
-rw-r--r-- | autoload/ale/linter.vim | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/autoload/ale/linter.vim b/autoload/ale/linter.vim index 0b61bad1..86ee506c 100644 --- a/autoload/ale/linter.vim +++ b/autoload/ale/linter.vim @@ -120,7 +120,8 @@ function! ale#linter#PreProcess(filetype, linter) abort let l:obj.executable = a:linter.executable if type(l:obj.executable) isnot v:t_string - throw '`executable` must be a string if defined' + \&& type(l:obj.executable) isnot v:t_func + throw '`executable` must be a String or Function if defined' endif else throw 'Either `executable` or `executable_callback` must be defined' @@ -476,9 +477,13 @@ endfunction " Given a buffer and linter, get the executable String for the linter. function! ale#linter#GetExecutable(buffer, linter) abort - return has_key(a:linter, 'executable_callback') - \ ? ale#util#GetFunction(a:linter.executable_callback)(a:buffer) + let l:Executable = has_key(a:linter, 'executable_callback') + \ ? function(a:linter.executable_callback) \ : a:linter.executable + + return type(l:Executable) is v:t_func + \ ? l:Executable(a:buffer) + \ : l:Executable endfunction " Given a buffer and linter, get the command String for the linter. |