What I don't like about IntelliJ IDEA

Although IntelliJ IDEA is a very nice IDE, I hate several things about it, especially comparing to Eclipse.

Horrible font rendering

Not IDEA’s fault, but its font rendering in Linux is horrible. Everyone who recommends IDEA seriously was Mac user, and that might mean something is wrong with Swing. Fortunately, I found a workaround.

Meaningless keymap

The default keymap is not easy to learn & remember. How can I know if Ctrl+F9 means ‘Make project’ and Shift+F6 means ‘Rename’? Ctrl+B and Alt+Shift+R of Eclipse are much easier to remember. I know we can’t do it that way for all shortcuts, but at least we should do the best. Some old IDEs had the similar keymap with IDEA, and in my opinion IDEA looks like it simply followed some bad tradition.

Unstylish color scheme

The default color scheme (i.e. syntax coloring) looks so 80-ish. It makes me feel like working with a very old IDE such as Visual Studio 6.0. Most modern text editors like TextMate and Sublime Text have much more lovely out-of-the-box color schemes.

Personally, I prefer the color scheme of Eclipse, and use the same color scheme in IDEA. If you like Eclipse style, download it here.

No ‘build on save’

There is a plugin called ‘Eclipse Mode’ that emulates this behavior, but it is not in the same league with the native incremental compilation engine that Eclipse ships with, and it doesn’t seem to work with the latest IDEA version.

No way to browse the complete list of errors and warnings of a project

Eclipse has a view called ‘Problems’ which shows all errors, warnings, TODO tags of the project (or the scope you prefer). In combination with the ‘build on save’, the Problems view updates the list of problems almost in real time. In contrast, I have to build the project manually to get or update the list of warnings and errors.

No quick documentation lookup on hover

I have to type CTRL+Q to look up the Javadoc of a class on the current cursor position. Why can’t I simply view the Javadoc by moving my mouse cursor on it instead of moving the text cursor? It does seem like some people doesn’t care about this lack of feature, but without this feature I have to move the text cursor back and forth in the middle of coding session instead of briefly moving the mouse cursor while retaining the current text cursor position.

Also, did you know most applications define CTRL+Q as a shortcut for ‘Quit’?

16 Comments What I don't like about IntelliJ IDEA

  1. Anton Tagunov

    Hi, it immediately struck me where
    Shift-F6 comes from.

    Norton Commander. Idea is built by Eastern Europeans I understand; in Sovient Union my generation were all using (pirated of course!) Norton Commander on our DOS powered PC-s. Today it’s a distinctive trait of Russians to run Far manager – a free present day reincarnation of Norton Commander. Long live F6 to move files! Long live Shift-F6 to rename in the same folder. Agreed – I still find it strange to see this binding in an IDE.

    Re Ctrl-F9 – isn’t that good old Borland Pascal/Borland key-binding for building? Again where I’m from mostly everybody knew these DOS based IDEs.

    Heck since I’m generally using Emacs key-bindings in Eclipse Ctrl-B is taken (same as left arrow) so guess how I build? Ctrl-F9!!

    And that was all from an entirely Eclipse guy 🙂

  2. Trustin Lee

    Good idea!

    Quick doc on hover:
    http://youtrack.jetbrains.net/issue/IDEA-66333

    ‘Build on save’ feature request was rejected long time ago because it can be emulated by binding CTRL+S to Compile, but I don’t think that’s a convincing solution.

    I guess build on save and problem list (maybe quick doc on hover too) can be implemented as a plugin, so I’ll try to make it happen when my time permits.

  3. Anton Arhipov

    Fonts – this must be configurable. All the devs have an own preference about the fonts..

    The keymap might be meaningless for the long time eclipse user. The same way as eclipse shortcuts are meaningless for the IDEA user. As the comment above says – it all comes from Norton Commander / Far Manager analogy – which is quite meaningful 🙂

    Color scheme – a matter of taste.

    ‘Compile on save’ (the holy war topic) is meaningless in IDEA as IDEA autosaves everything. Ctrl+Shif+F9 (or Ctrl+F9) works equally well. Indeed, what is really missing is the real incremental compilation behavior.

    List of errors: Analyze -> Inspect code.

    To move a cursor – you have to grab a mouse, which isn’t really cool 🙂

  4. Trustin Lee

    Yeah, key maps and color schemes are not really a showstopper. I just don’t like it. 🙂

    I want the list of errors updated automatically whenever I make some changes. I don’t want to press a key to update it.

    Grabbing a mouse? If you use a keyboard with no keypads, it’s not a big deal. I use a trackball, so it’s always where I expect it to be. Some people also use trackpoints (the red dot). 🙂

  5. Andrew Fink

    “(pirated of course!)”

    Why express so many scorn?

    There was also famous “Volkov Commander”.
    Nowadays:
    Midnight Commander has same shortcuts.
    Total Comander – very good file manager – has same shortcuts.

  6. Kabir

    I tried IntelliJ for a few days, and apart from being really slowed down due to the unfamiliar mappings (which of course is just habit), I had the same issues with it.

    I switched back to Eclipse, and using m2eclipse 0.13 is a lot more stable than previous m2eclipse versions.

  7. Ceki Gülcü

    I’ve been using IntelliJ IDEA for over a year now and I’ve got exactly the issues as the one you describe. I stick with IDEA because of its better Groovy and Scala language support. I intend to migrate back to Eclipse after Scala IDE reaches maturity.

  8. Trustin Lee

    Eclipse became way too slow after SDT was installed. IntelliJ performs way faster in general. However, Eclipse has much better compiler integration (i.e. problems tab). So, when will we see an ideal IDE for Java and Scala? I only hope it’s before Java becomes new COBOL. 🙂

  9. arno niem

    what about to run the analyze code (after a big initial check of complete project) after each change in the background?

    maybe with some hourglass on the (old) topics in the inspection window to see there is a runnig analyze.

  10. arno niem

    i also miss the feature:

    if my javadoc is not in sync i would like to update all javadoc items in one step.

    just now i can only change each parameter in separate steps (add/remove/update).

  11. arno niem

    i also miss the feature:

    if i have a method

    myObject.thisIsMyMethod().

    now i make a code completion with an other method and go to the dot and writhe thisIsO

    then i select the choice and i get

    myObjects.thisIsOtherMethod()MyMethod()

    i would like to replace the old method completely with the new method and not have a stub with the rest of the old method.

  12. Corrado

    Sorry Anton, but when you say

    List of errors: Analyze -> Inspect code.

    You should have really said

    List of errors: Analyze -> Inspect code -> Wait half an hour…

Comments are closed.