quickrun.vimで実行したRSpecの結果に色をつける
quickrunを使ってrspecを実行すると、出力結果に色がつかず見づらい。
色をつけるために「-c」オプションを追加してみたけれど、色はつきませんでした。
そこで色々調べていたら、以下の記事を発見。
この記事で扱っているのはPHPUnitの設定ですが、
「PHPUnitでできるならRSpecでもできるだろ!!」
と思い試してみました。
quickrunで実行したRSpecに色をつける方法
以下の設定を.vimrcに追加。
let g:quickrun_config = {} augroup QrunRSpec autocmd! autocmd BufWinEnter,BufNewFile *_spec.rb set filetype=ruby.rspec augroup END let rspec_outputter = quickrun#outputter#buffer#new() function! rspec_outputter.init(session) call call(quickrun#outputter#buffer#new().init, [a:session], self) endfunction function! rspec_outputter.finish(session) highlight default RSpecGreen ctermfg = Green cterm = none highlight default RSpecRed ctermfg = Red cterm = none highlight default RSpecComment ctermfg = Cyan cterm = none highlight default RSpecNormal ctermfg = White cterm = none call matchadd("RSpecGreen", "^[\.F]*\.[\.F]*$") call matchadd("RSpecGreen", "^.*, 0 failures$") call matchadd("RSpecRed", "F") call matchadd("RSpecRed", "^.*, [1-9]* failures.*$") call matchadd("RSpecRed", "^.*, 1 failure.*$") call matchadd("RSpecRed", "^ *(.*$") call matchadd("RSpecRed", "^ *expected.*$") call matchadd("RSpecRed", "^ *got.*$") call matchadd("RSpecRed", "^ *Failure/Error:.*$") call matchadd("RSpecRed", "^.*(FAILED - [0-9]*)$") call matchadd("RSpecRed", "^rspec .*:.*$") call matchadd("RSpecComment", " # .*$") call matchadd("RSpecNormal", "^Failures:") call matchadd("RSpecNormal", "^Finished") call matchadd("RSpecNormal", "^Failed") call call(quickrun#outputter#buffer#new().finish, [a:session], self) endfunction call quickrun#register_outputter("rspec_outputter", rspec_outputter) let g:quickrun_config['ruby.rspec'] = { \ 'command': 'rspec', \ 'outputter': 'rspec_outputter', \ }