diff options
author | w0rp <devw0rp@gmail.com> | 2018-02-18 10:13:30 +0000 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2018-02-18 10:13:30 +0000 |
commit | 89f8d3e456713846d1ebdd934027ae7a910cf5f8 (patch) | |
tree | 2d06c585ea4ae6c151cfc91a5cfb12a660cac264 | |
parent | 5915a0ee39ba04a5a4118d5f71766912a6b87fe9 (diff) | |
download | ale-89f8d3e456713846d1ebdd934027ae7a910cf5f8.zip |
Fix #1336 - Print a friendly message when using invalid function names for fixers
-rw-r--r-- | autoload/ale/fix.vim | 10 | ||||
-rw-r--r-- | test/fix/test_ale_fix.vader | 10 |
2 files changed, 18 insertions, 2 deletions
diff --git a/autoload/ale/fix.vim b/autoload/ale/fix.vim index 62a4f9b1..9111db3d 100644 --- a/autoload/ale/fix.vim +++ b/autoload/ale/fix.vim @@ -392,7 +392,13 @@ function! s:GetCallbacks() abort endif endif - call add(l:corrected_list, ale#util#GetFunction(l:Item)) + try + call add(l:corrected_list, ale#util#GetFunction(l:Item)) + catch /E475/ + " Rethrow exceptions for failing to get a function so we can print + " a friendly message about it. + throw 'BADNAME ' . v:exception + endtry endfor return l:corrected_list @@ -427,7 +433,7 @@ function! ale#fix#Fix(...) abort try let l:callback_list = s:GetCallbacks() - catch /E700/ + catch /E700\|BADNAME/ let l:function_name = join(split(split(v:exception, ':')[3])) let l:echo_message = printf( \ 'There is no fixer named `%s`. Check :ALEFixSuggest', diff --git a/test/fix/test_ale_fix.vader b/test/fix/test_ale_fix.vader index 817c243d..5b66c92c 100644 --- a/test/fix/test_ale_fix.vader +++ b/test/fix/test_ale_fix.vader @@ -574,6 +574,16 @@ Execute(ALE should print a message telling you something isn't a valid fixer whe AssertEqual 'There is no fixer named `invalidname`. Check :ALEFixSuggest', GetLastMessage() +Execute(ALE should complain about invalid fixers with minuses in the name): + let g:ale_fixers.testft = ['foo-bar'] + ALEFix + + AssertEqual 'There is no fixer named `foo-bar`. Check :ALEFixSuggest', GetLastMessage() + +Execute(ALE should tolerate valid fixers with minuses in the name): + let g:ale_fixers.testft = ['prettier-standard'] + ALEFix + Execute(Test fixing with chained callbacks): let g:ale_fixers.testft = ['FirstChainCallback'] ALEFix |