Vim script のエラーを全て出力する quickrun-runner
quickrun 0.6.0 (多分)から Vim script を実行する為の quickrun-runner が実装されました。
これを使用することで Vim script のエラーを quickrun-outputter で出力を行う事が出来ます。
しかし、現状の使用では最初のエラーしか出力が行われず、全てのエラーは出力されません。
って、事で全てのエラーを出力する quickrun-runner を書いてみました。
基本的に outputter-vimscript のコピペ。
[ソース]
let s:runner = {} let s:runner.name = "vimscript_all" let s:runner.kind = "runner" function! s:runner.run(commands, input, session) let code = 0 for cmd in a:commands let [result, code] = s:execute(cmd) call a:session.output(result) if code != 0 break endif endfor return code endfunction function! s:execute(cmd) let result = '' let error = 0 let temp = tempname() let save_vfile = &verbosefile let &verbosefile = temp let old_errmsg = v:errmsg let v:errmsg = "" try silent! execute a:cmd finally let error = !empty(v:errmsg) let v:errmsg = old_errmsg if &verbosefile ==# temp let &verbosefile = save_vfile endif endtry if filereadable(temp) let result .= join(readfile(temp, 'b'), "\n") let result = substitute(result, "\n行", "行", "g") call delete(temp) endif return [result, error] endfunction call quickrun#module#register(s:runner, 1) unlet s:runner " example " :QuickRun -runner vimscript_all