IDE Review: RubyMine

Since I started working with Ruby about 4 years ago, I’ve used quite a few text editors and ide’s: RadRails, gedit + plugins, TextMate and Vim.

TextMate is the one I’ve used the most and it’s been ok for a long time. Until you realize you need half a dozen bundles to make it really useful for ruby development. Obviously the same goes for Vim and gedit.

Oh, and forget about refactoring. In these tools refactoring equals regex global replace. So if you need it, well, forget it.

That’s when I decided to give RubyMine a fair go. I’ve been using it heavily for a while now and I must say I love it!

What pissed me off about RadRails when I first tried it was the speed. It was too slow, something people take for granted when running java based IDE’s.

However this is not true for RubyMine. You DO take a hit on startup, nothing major, but once it’s done, it’s a breeze.

I’ve compiled a list of my favorite productivity shortcuts and features. Hope it’ll be useful to someone else.

Productivity Shortcuts


Navigation

Ctrl + Tab - File Switcher

Cmd + Shift + T - Switching between implementation and test works perfectly. Even in a pure ruby project

Cmd + Shift + F12 - Expand/restore editor

Alt + Shift + N - Go to model/view/controller

Alt + F1 - Show current file in other views such as the project tree (scroll to file)

Cmd + Shift + N - Open file

Cmd + Alt + Shift + N - Open symbol - across files

Alt + F7 - Find usages - when on a method, variable, etc…

Running/Debugging

Ctrl + Shift + F10 - Run current [test] file. When inside a test method, run that single method.

Ctrl + Shift + F9 - Same as above, but in debug mode.

Shift + F10/Shift + F9 - Run/Debug last action executed

Alt + R - Run rake task

Refactoring

Cmd + Alt + N - Inline variable/ method

Cmd + Alt + M - Extract method

Shift + F6 - Rename

F5 - Copy current file as…

Editing

Cmd + Y - Delete line

Cmd + D - Duplicate Line/Selection

Alt + Mouse - Column selection

Cmd + Shift + (Up Arrow|Down Arrow) - Moves de line or selected block of code up or down

Features


Code completion - It’s fairly accurate and pretty fast. They’ve done some good yak shaving around this area.

Debugger - The debugging interface is an absolute beauty. Saved me a lot of time where I’d have used puts statements or googled to re-learn how to use ruby-debug instead. Definitely worth checking out.

The bad stuff


It is not free - unless you are a committer to an open-source project. But it’s not expensive either.

It is a bit slower - but not that much. The performance hit is insignificant compared to the added value.

Regex file open, TextMate style - What can I say? I do miss this.

Wrap highlighted text - In TextMate, if you highlight a word and press “, [, {, ( or # it surrounds the word with the respective combination of quotes, brackets, etc… Another missed feature

Wrapping up
It’s probably soon to say it but so far RubyMine has been my missing Ruby IDE. And I’m very happy with it. :)

Comments