Peeja
Peeja

Reputation: 14264

Is there a Vim plugin for Ruby which provides a "switch to/from test" command outside of Rails?

Tim Pope's rails.vim provides a command :A (and a set of related commands) which opens the "alternate" file. For most classes, that's the test, and for the test, the class.

It would sure be nice to have that functionality in non-Rails Ruby projects. Is there a plugin which provides that? Bonus points if it helps me create the test file when I create the implementation file. :)

Upvotes: 2

Views: 1734

Answers (4)

edi9999
edi9999

Reputation: 20544

I created the following command that makes it possible to do

:E /pattern/replace

to jump to the file that is the current filename and substituting pattern by replace

For example, if your tests files are in /test/code.js and your src files in /src/code.js you could write the following command:

command! -nargs=* Es :call EditSubstitute("/test/src")
command! -nargs=* Et :call EditSubstitute("/src/test")

to have the command :Es to jump from testfile to source file and the command :Et to jump from source file to testfile.

Here's the function that does that :

function! EditSubstitute(args)
  if (len(a:args))<2
    return
  endif
  let s:delimiter = (a:args[0])
  let s:split = split(a:args,s:delimiter,1)[1:]
  let s:fullpath = expand('%:p')
  let s:bar = substitute(s:fullpath, s:split[0], s:split[1], "")
  echo (s:bar)
  silent execute('edit '.s:bar)
endfunction
command! -nargs=* E :call EditSubstitute(<q-args>)

Upvotes: 1

frbl
frbl

Reputation: 1292

Have a look at the vimrc of the guy from 'Destroy all software' https://github.com/garybernhardt/dotfiles/blob/master/.vimrc#L280

pressing <leader>. will switch you between your code and the spec code.

-frbl

Upvotes: 0

coderjoe
coderjoe

Reputation: 11167

I know this doesn't really answer your question at all... but I use VIM buffers to provide easy accessibility to a file and its tests.

I keep my test on top, and the file on the bottom. Then I can view both at the same time.

I use NERDTree to make browsing easier too, but that is not a per-requisite.

You can get a full reference of what I use here: https://github.com/coderjoe/dotfiles

If you like it I'd recommend NOT using my dotfiles from the above repo, but start with something like RyanB's dotfiles and build your own sets based on your own preferences. :)

Upvotes: 0

lucapette
lucapette

Reputation: 20724

Our hero tpope wrote rake.vim too. It does the very same things rails.vim does but in Ruby projects.

Upvotes: 4

Related Questions