IDE thoughts

I’m a huge advocate of no mouse. The mouse is extremely slow and cuts my productivity by large amounts. I’m also a heavy IDE user and therefore my IDE has to allow me to get as much work done without the mouse as possible. I’ll be comparing IntelliJ and Eclipse right now and when I get free time I’ll go back in and add NetBeans.

NOTE: This is NOT a comparison of features/plugins/downloads at all. I refuse to get caught up in the mess of IDE features/plugins/downloads at all.

Let’s get started:

Text editing

There are a handfull of commonly used text editing commands that will help not have to use the mouse.

Jump over words (camel case is a plus)

Select words

Delete words

Jump to next method

Jump to next error

Select line

Copy, cut, paste line

Delete line without putting it on the clipboard

Multiple clipboards and pasting support for them

Select page-up and page-down

Contextualize newlines (if you are in a comment and hit enter it ensures correct comment formatting)

How do the IDEs stack up for editing?

Eclipse

Supports: 1, 2, 3, 4, 5, 6, 7, 8, 10, 11
Eclipse’s support for 1 doesn’t support camel case in other languages unless those editors support it. It also doesn’t treat certain characters like single quote as words, which is slightly annoying because it forces you to hit the arrow key without ctrl a few extra times to select a String constant.

Eclipse’s support for 4 only works with Java code and other languages that have added this feature.

Eclipse doesn’t appear to support multiple clipboards from what I could tell.

Eclipse’s support for 10 is strange. When you hit page-down it sometimes scrolls so that the selected region is completely off the screen making it difficult to visually determine if you have selected anything.

Eclipse’s support for 11 is broken if the Java file you are working it has compile errors.

IntelliJ

Supports: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
IntelliJ supports all of these features but has very little support for other languages.

IntelliJ’s support to 10 is nice because it leaves a single line of selection at the top of the page that let’s you know you have selected something.

Searching

Here are the main search and replace tasks:

Find in file

Incremental find in file

Replace in file

Replace all in file

Find in project

Find in workspace

Replace in project

Replace in workspace

Full regex

Highlight code element in file

Find usages in project

Find usages in workspace

Eclipse

Eclipse supports 1, 2, 3, 4, 6, 8, 9, 10, 12

The way eclipse does 2 is really annoying because there is only a single visual change when you enter incremental search mode and that is in the status bar on the bottom of the screen. Then as you type your characters appear in this location as well. This is pretty cumbersome to use.

I also couldn’t figure out how to make Eclipse locate things in just the current project. I’d assume it is there, but I didn’t go digging. Highlighting in the current file is simple because if the cursor is on something, that word is highlighted in the file. Pretty slick. A little annoying, but not bad. I also think ctrl-shift-u works, but there are three options ‘identifier, throwing exception, implementing methods’ which I haven’t figured out.

IntelliJ

IntelliJ supports all of these with the keyboard. Everything requires a keystroke, unlike Eclipse’s auto-highlight. Not sure if that is a good or bad thing yet.

Navigation in code

Here are the main quick features that allow you to jump around code quickly.

Next open file (tab order because last viewed order is covered via the back command below)

Previous open file (tab order)

Back

Forward

Goto method

Goto method implementation

Goto class

Goto parent class

List and goto implementations of interface

List and goto implementations of method

Eclipse

Eclipse supports 3, 4, 5, 7, not 1,2, 10, 6

IntelliJ

IntelliJ supports all of these with simple keystrokes. IntelliJ doesn’t support moving between editors in a most recently viewed order.