Things that bug me about IntelliJ

For the last few years, I’ve been saying that IntelliJ is the best Java IDE on the market, but that Eclipse is pretty close. I’ve also been using Eclipse that whole time (having used IntelliJ before that), because my then-employer didn’t like to shell out money if they didn’t have to.

Well, I’m at a different company, and everyone here uses IntelliJ (bought-and-paid -for, even!). And I’m finding that IntelliJ is as good as I remember, but there are a lot of things that are bugging me with it. Enough that I wonder if it’s worth using.

Here’s my list:

  • Adding support for custom Ant tasks in the Ant editor is really really lame. You have to copy the jars into the IntelliJ install directory! WTF? Along with all the dependant jars, but there’s no warnings to indicate what those may be.
  • I really miss the Eclipse “Problem” view. Being able to see all the syntax errors in my application greatly assists manual refactorings. It also flows better with my TDD-style, where you deliberately introduce compile errors (while writing by intention), then come back later and correct.
  • Hitting Shift-Ctrl-F10 to run the current test method is nice, but having to key around to get outside of the method to run the entire class is shitty.
  • Why can’t I re-run the last thing I ran with a single key stroke? Instead, I have to mouse over to the run window and push the button there.
  • I miss the “Compile on Save” option.
  • Compilation is slow.
  • I really liked the CVS support in Eclipse, particularly the changeset view when synchronising. By comparison, the IntelliJ support is really primitive.
  • IntelliJ modules don’t seem as powerful as Eclipse projects for organising related code; mind you, that may just be a feature of how we use it here.
  • Why can’t the bloody docked tabs keep their size consistent? I’m sick of seeing my editor window resize every time one of the tabs pop up.
  • I miss my “favourite” test & debug options; Eclipse lets you place certain run/debug configurations as fixed favourites in the menus, which makes them easy to invoke. Nothing like that for IntelliJ.
  • When I create a new class, I need to be at the right place in the filesystem to do it. This means that when I create a new test class, for example, I have to go to the right package in the test source tree. By contrast, Eclipse lets me change the source tree and the package name in the dialog (very smoothly at that)
  • I can’t drag-and-drop methods around in the Structure window (IntelliJ’s equivalent of Eclipse’s Outline view) to re-organise my source code.

These are the biggest issues. I’ve got lots of minor gripes as well, but they simply reflect the fact that I’ve been using Eclipse solidly for the last two years and know it very well; I don’t have that level of familiarity with IntelliJ yet. The above points, however, seem to me to be fundamental limitations of the tool (though if I’m wrong, please correct me!)

Advertisements

Author: Robert Watkins

My name is Robert Watkins. I am a software developer and have been for over 18 years now. I currently work for people, but my opinions here are in no way endorsed by them (which is cool; their opinions aren’t endorsed by me either). My main professional interests are in Java development, using Agile methods, with a historical focus on building web based applications. I’m also a Mac-fan and love my iPhone, which I’m currently learning how to code for. I live and work in Brisbane, Australia, but I grew up in the Northern Territory, and still find Brisbane too cold (after 16 years here). I’m married, with two children and one cat. My politics are socialist in tendency, my religious affiliation is atheist (aka “none of the above”), my attitude is condescending and my moral standing is lying down.

8 thoughts on “Things that bug me about IntelliJ”

  1. Why can’t I re-run the last thing I ran with a single key stroke? Instead, I have to mouse over to the run window and push the button there.

    shift-f10?

  2. Thanks… I didn’t notice the “Display settings before running” option. Much better.

    I’ve also since had the drop down for the “most recently run configurations”, so that’s that gripe taken care of too.

    Okay, that’s two down. 10 to go. Keep the tips coming. 🙂

  3. CVS Commit project — seems to me this does a pretty good job of showing what changes you have made since the last commit. (I have mapped this to ctrl-alt-k)

    Structure editing —
    The code folding support might help —
    ctrl shift minus to collapse the current file, then ctrl-x ctrl-v to cut and paste stuff round.

    ctrl-shift- plus to reexpand the file

    ant support — would using a different ant help? — right click on the build file in the ant-build section, and you can switch the ant version, and play with the various settings.

    window sizing —

    shift-f12 and ctrl-shift-f12 are your friends

    shift-f12 restores the defaul layout which you can save using the window menu.

    Creating a new class — tis true you do need to be close to the right spot.
    2 suggestions
    1) if you create it in the packages view (not the project view) you get the option to choose which directory to put it in if you have two parrallel package structures stored in different directories.
    2) f6 just after creating the file will give you a pretty dialogue for moving it. then alt-r will let you choose a different source folder if necessary.

    To speed up compiling — you can always drop in Jikes.

    Another nice feature that might help get some of the eclipse ways of doing things in is the macros. They can have hot-keys assigned to them. I have had a macro to write a “It’s time for lunch” failing test in a single keystroke.

  4. The synchronise support in Eclipse is actually about seeing what changes you’ll bring down when you do an update, not on what’s changed locally. Big difference. 🙂

    The code-folding thing might work; I’ll give it a go.

    Window-sizing is more that I don’t want the windows resizing all the time: getting them to be the same size is a nuisance. Restoring them may help, and thatnks for that.

    Hmmm… package view; that’s probably what I need.

    Thanks for the tips.

  5. ahh… cvs status and comparing with the latest repository version might be closer to what you want. Not sure about the magic that eclipse brings though.

    Might be coming close to your eclipse wish list :).

  6. Replying to the first comment, try ALT-4 to put the Run tab in focus and then CTRL-F5 to execute the last tests. You’ll find that ALT-*number* will put the tab with the corresponding number in focus. Use CTRL-F5 to perform the last command performed in the tab.

    The ANT tab is an interesting one though, it has no number, but try CTRL-SHIFT-A.

  7. There are a lot of other things in addition to the list above that makes working on IntelliJ a horror !!

    You can only have one project in IntelliJ at a time.

    If you have IntelliJ open, with some task running like compiling or test case running and switch to another window, the IntelliJ IDE keeps getting the focus back to itself. This particular feature is so very irritating. I know when to get back to the editor instead of the editor changing the focus to itself each time.

    There is no equivalent of eclispe’s Heirarchy view in IntelliJ.

    There is no way to highlight a particular word in the editor. This is particularly useful when you want to see where all a method/variable is being used in a method without having to do a ctrl + F

    Is there some hot key available to switch between the different tabs ?

    The default color for HTML tags in javadocs is nasty. If you want to change them, only a standard set of 7-8 colors are present. Couldn’t it be better to have the HTML tags italicised like in Eclipse.

    There might be workaround or solutions to the points that I mentioned above, and I might be ignorant of those, but overall I personally feel, Intellij is not something worth buying with your money when you can get a better product like eclipse for free !!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s