Fix a bug which breaks the tests

This commit is contained in:
w0rp 2017-06-07 09:26:54 +01:00
parent f30652a98f
commit 11e38efa83
2 changed files with 9 additions and 4 deletions

View File

@ -232,10 +232,11 @@ function! s:RunFixer(options) abort
let l:index = a:options.callback_index
while len(a:options.callback_list) > l:index
let l:Function = a:options.callback_list[l:index]
let l:Function = ale#util#GetFunction(a:options.callback_list[l:index])
let l:result = ale#util#FunctionArgCount(l:Function) == 1
\ ? call(l:Function, [l:buffer])
\ : call(l:Function, [l:buffer, copy(l:input)])
\ ? l:Function(l:buffer)
\ : l:Function(l:buffer, copy(l:input))
if type(l:result) == type(0) && l:result == 0
" When `0` is returned, skip this item.

View File

@ -130,9 +130,13 @@ function! ale#util#FunctionArgCount(function) abort
let l:Function = ale#util#GetFunction(a:function)
redir => l:output
silent function Function
silent! function Function
redir END
if !exists('l:output')
return 0
endif
let l:match = matchstr(split(l:output, "\n")[0], '\v\([^)]+\)')[1:-2]
let l:arg_list = filter(split(l:match, ', '), 'v:val !=# ''...''')