Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Integrates rspec with vim's quickfix feature.
Ruby
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
.gitignore
.rvmrc
CHANGELOG
Gemfile
Gemfile.lock
LICENSE
README.rdoc
Rakefile
VERSION
rspec-quickfix-formatter.gemspec

README.rdoc

Rspec Quickfix Formatter

Provides a rspec formatter that outputs a file vim's quickfix feature will understand. This allows nice integration between rspec test failures and the vim editor.

Similar Projects

Requirements

rspec 1.3.X
vim 7.X

I haven't tried using this with rspec 2 yet.

Install

There are two parts to this install: 1) Setting up rspec to use the formatter and write a file in the quickfix format, and 2) setting up vim to read from the quickfix file.

Setting up rspec

There are a couple different ways to achieve this. I prefer the first option, but the others should work too.

configure with spec.opts

Add the following lines to your spec.opts file:

--require rubygems
--require rspec-quickfix-formatter
--format Spec::Runner::Formatter::QuickfixFormatter:tmp/quickfix

The path passed to –format will be the location that the quickfix file will be written to disk. I always run my specs from the projects root directory (which always has tmp directories), so the setting of tmp/quickfix works well for me. This path will need to match the path in your vim configuration.

configure in spec_helper.rb

configure using spec command line options

Setting up vim

There are two aspects to configuring vim, defining the error format, and loading the file into the quickfix window.

Use this command to set vim's error format:

:set errorformat=%f:%l\ %n\ %m

Use this command to open the quickfix file:

:cfile tmp/quickfix

Or create a shortcut:

map <leader>s :cfile tmp/quickfix<CR>

The tmp/quickfix needs to be the path to your quickfix file. Since I start vim in the root of my project, a relative path works well for me.

For more information about the quickfix and related location list features in vim, see:

:help quickfix

Todos

  • Explore other rspec config options and document them

  • rspec 2

  • Document version numbers and how they relate to rspec compatibility

  • it may be possible to leverage the default errorformat instead of configuring a simple one.

Future work

  • add vim commands in quickfix mode to display a full backtrace for an error.

Bugs

  • I noticed some multiline error messages which confused quickfix.

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don't break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright

Copyright © 2010 Andy Hartford. See LICENSE for details.

Something went wrong with that request. Please try again.