mirror of https://github.com/dense-analysis/ale
Tell users when a fixer does not exist, and make the no fixers message softer
This commit is contained in:
parent
e4cd371621
commit
d97924b698
|
@ -352,11 +352,21 @@ function! ale#fix#Fix(...) abort
|
|||
throw "fixing_flag must be either '' or 'save_file'"
|
||||
endif
|
||||
|
||||
let l:callback_list = s:GetCallbacks()
|
||||
try
|
||||
let l:callback_list = s:GetCallbacks()
|
||||
catch /E700/
|
||||
let l:function_name = join(split(split(v:exception, ':')[3]))
|
||||
echom printf(
|
||||
\ 'There is no fixer named `%s`. Check :ALEFixSuggest',
|
||||
\ l:function_name,
|
||||
\)
|
||||
|
||||
return 0
|
||||
endtry
|
||||
|
||||
if empty(l:callback_list)
|
||||
if l:fixing_flag is# ''
|
||||
echoerr 'No fixers have been defined. Try :ALEFixSuggest'
|
||||
echom 'No fixers have been defined. Try :ALEFixSuggest'
|
||||
endif
|
||||
|
||||
return 0
|
||||
|
|
|
@ -71,6 +71,16 @@ Before:
|
|||
\})
|
||||
endfunction
|
||||
|
||||
function GetLastMessage()
|
||||
redir => l:output
|
||||
silent mess
|
||||
redir END
|
||||
|
||||
let l:lines = split(l:output, "\n")
|
||||
|
||||
return empty(l:lines) ? '' : l:lines[-1]
|
||||
endfunction
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! g:ale_run_synchronously
|
||||
|
@ -88,6 +98,7 @@ After:
|
|||
delfunction RemoveLastLineOneArg
|
||||
delfunction TestCallback
|
||||
delfunction SetUpLinters
|
||||
delfunction GetLastMessage
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
|
||||
|
@ -104,14 +115,17 @@ After:
|
|||
|
||||
let g:ale_fix_buffer_data = {}
|
||||
|
||||
" Clear the messages between tests.
|
||||
echomsg ''
|
||||
|
||||
Given testft (A file with three lines):
|
||||
a
|
||||
b
|
||||
c
|
||||
|
||||
Execute(ALEFix should complain when there are no functions to call):
|
||||
AssertThrows ALEFix
|
||||
AssertEqual 'Vim(echoerr):No fixers have been defined. Try :ALEFixSuggest', g:vader_exception
|
||||
ALEFix
|
||||
AssertEqual 'No fixers have been defined. Try :ALEFixSuggest', GetLastMessage()
|
||||
|
||||
Execute(ALEFix should apply simple functions):
|
||||
let g:ale_fixers.testft = ['AddCarets']
|
||||
|
@ -450,3 +464,9 @@ Expect(An extra line should be added):
|
|||
b
|
||||
c
|
||||
d
|
||||
|
||||
Execute(ALE should print a message telling you something isn't a valid fixer when you type some nonsense):
|
||||
let g:ale_fixers.testft = ['CatLine', 'invalidname']
|
||||
ALEFix
|
||||
|
||||
AssertEqual 'There is no fixer named `invalidname`. Check :ALEFixSuggest', GetLastMessage()
|
||||
|
|
Loading…
Reference in New Issue