diff --git a/CHANGES b/CHANGES index 075295f..9147aa4 100644 --- a/CHANGES +++ b/CHANGES @@ -7,7 +7,8 @@ Features -------- * differential coverage report: --text-coverage-diff (-D) and --save Tells you when you've added new code that was not covered by the tests and - when code that used to be covered isn't anymore. + when code that used to be covered isn't anymore. Integration with vim + (contributions for other editors/IDEs welcome). * fully cross-referenced reports, indicating where methods are called from and which methods were called for each line (--xrefs) * cross-referenced report generation is now over 4 times faster for diff --git a/README.vim b/README.vim new file mode 100644 index 0000000..70bdeab --- /dev/null +++ b/README.vim @@ -0,0 +1,46 @@ + +rcov.vim allows you to run test unit tests from vim and enter quickfix mode in +order to jump to uncovered code introduced since the last run. + +Installation +============ +Copy rcov.vim to the appropriate "compiler" directory (typically +$HOME/.vim/compiler). + +Usage +===== + +Setting the reference point +--------------------------- +rcov's --text-coverage-diff mode compares the current coverage status against +a previously stored one. It therefore needs that information to be saved +before you write new code (typically right after you perform a commit) in +order to have something to compare against. + +You can save the current status with the --save option. +If you're running rcov from Rake, you can do something like + rake rcov_units RCOVOPTS="-T --save --rails" +in order to take the current status as the reference point. + +Comparing with a recorded coverage status +----------------------------------------- +Type the following in command mode while editing your program: + :compiler rcov + +rcov.vim assumes rcov can be invoked with a rake task (see README.rake for +information on how to create it). + +You can then execute rcov and enter quickfix mode by typing + + :make + +where taskname is the rcov task you want to use; if you didn't override the +default name in the Rakefile, just + + :make rcov + +will do. + +vim will then enter quickfix mode, allowing you to jump to the areas that were +not covered since the last time you saved the coverage data. + diff --git a/rcov.vim b/rcov.vim new file mode 100644 index 0000000..e661f4b --- /dev/null +++ b/rcov.vim @@ -0,0 +1,38 @@ +" Vim compiler file +" Language: Ruby +" Function: Code coverage information with rcov +" Maintainer: Mauricio Fernandez +" Info: +" URL: http://eigenclass.org/hiki.rb?rcov +" ---------------------------------------------------------------------------- +" +" Changelog: +" 0.1: initial version, shipped with rcov 0.6.0 +" +" Comments: +" Initial attempt. +" ---------------------------------------------------------------------------- + +if exists("current_compiler") + finish +endif +let current_compiler = "rcov" + +if exists(":CompilerSet") != 2 " older Vim always used :setlocal + command -nargs=* CompilerSet setlocal +endif + +let s:cpo_save = &cpo +set cpo-=C + +CompilerSet makeprg=rake\ $*\ RCOVOPTS=\"-D\ --no-html\ --no-color\"\ $* + +CompilerSet errorformat= + \%+W\#\#\#\ %f:%l\, + \%-C\ \ \ , + \%-C!!\ + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: nowrap sw=2 sts=2 ts=8 ff=unix :