I have been using editors in one form or another for about 23 years. And now I am using IntelliJ IDEA. Man, is it impressive or is it impressive. As Photoshop is to doing graphics, IntelliJ IDEA is to cutting Java code.
The most impressive thing is the overall usability. It has been designed and built with the developer in mind. Attention to detail is unreal. It is feature rich, but not bloated. I reckon that one could run an entire course on usability using this product as the case study.
As Alex Moffat comments about the product
I would imagine that IntelliJ is written using IntelliJ, and I think this must account for some of its success. Whatever is an annoyance to IntelliJ's users will be an annoyance to its developers first, whatever makes developing the product hard or slow will make using the product hard or slow, and conversely whatever makes development easier and faster will make use easier and faster. If you can arrange it so that your software developers are also your first software users it can certainly help your product.
The keyboard customisation is fantastic. You can assign a keystroke to almost any action. The best bit is being able to assign keystrokes to a particular Ant task. So with one keystroke you can build your classes and deploy to the web container. What I thought was really useful is the way you assign an Ant task to a hotkey. Simply right click the Ant task and select the assign short key button, and Bob's your uncle.
The refactoring, which I have only started to use, is impressive.
Paste in a snippet of code that refers to an package/class that you don't have an import statement for yet, and it will prompt you to add the import statement and then do it.
Favourite features? The tight integration of Ant. The built in change control which tracks any changes you have made. The diff facility reminds me of the Apple Developer Tools difference utility. The ability to run on Win and Mac. The way it highlights variables that have been declared but not used. The ability to close all edit windows except for the one that you are currently working in.
A concept also implemented in Eclipse is the vertical bar (next to the scroll bar) that is a visual representation of the total file size. Any errors or warnings are highlighted on it showing the relative position of the error or warning in the file.