Five Features Eclipse Should Copy From IntelliJ IDEA

DZone 's Guide to

Five Features Eclipse Should Copy From IntelliJ IDEA

Tired of using Eclipse for your Java applications? Check out this post on the best features on the new IntelliJ IDEA that should be applied in Eclipse.

· Java Zone ·
Free Resource

The Eclipse Photon was released a few days ago, and I decided to do yet another comparison with IntelliJ IDEA. Last time, I explained why I still prefer Eclipse. But, because my current project had problems with Java 9 in Eclipse initially, I’ve been using IntelliJ IDEA in the past few months. (I would like to note that I am still using Eclipse for everything else, partly, because of the lack of “multiple projects in one workspace” in IDEA).

This time, the comparison will be the other way around. I will discuss the IntelliJ IDEA features that I would really like to have in Eclipse; features that make the work much easier and efficient. 

Isn’t that a departure from my stance, “Eclipse is better”? No – I don’t believe there’s a perfect IDE (or perfect anything, for that matter). Any product can try to get the best aspects of the competition. Here, I’ll focus on five features of IDEA where Eclipse lags behind.

Find in Path

FirstI will explore the “Find in path” dialogue. In regards to the interactivity of the dialogue, the fact that you can see all the results while typing and being able to navigate the results with the arrows is huge. When you compare that to Eclipse’s clunky search dialog, it has a million tabs that are rarely focused on the one you need. Then, you actually click “Search” to get a list of results in a search panel. The place where you double-click to see the context is not nearly as easy and efficient when compared to IDEA.

Static Imports

Second is suggesting static imports. Static imports are not used too often, except in tests. Mockito, Hamcrest, test utility methods – in every class you need dozens of static imports. And, Eclipse feels miserable with those. You will manually go and import the methods you need. Then, you will need to organize imports until suddenly you need another one. The  .*  you naively added has been changed to particular imports. Once again, you have to go and manually import it. In contrast, the IntelliJ IDEA simply suggests the most relevant static import in the autocomplete pop-up and handles that for you.


Third is autocomplete. The IntelliJ IDEA autocomplete triggers automatically when you start typing. In Eclipse, it only triggers after a dot. Otherwise, you have to CTRL+space. And, yes, I know there’s auto-activation setting where you can configure symbols that trigger the auto-complete. But, as I’ve previously complained about IDEA’s defaults, it’s Eclipse’s turn. And, it’s not even a checkbox — you have to actively type the entire alphabet, including lower and upper case, to get it working. That’s just bad design. In what scenario would I need autocomplete on a,b, and c but not on d, e, and f?

Lambda Simplification

Fourth is lambda simplification. You sometimes end up with a pretty long chain of calls on a stream, and they may not be the best way to express what you want. IntelliJ IDEA can suggest improvements that make it more readable and easier to understand, achieving the same result. As a bonus, you can eventually start doing these simplifications yourself.

Parameter Labels

Lastly, we will discuss parameter labels. When you call a method foo.bar("Some string", 0, true), the parameters are not very obvious. And, while you can rightly argue that this is a bad method signature, primitive (+String) parameters that you just pass a value can happen every now and then. It’s useful to see the name of the parameter at the point of method invocation. IntelliJ IDEA nicely demonstrates that.

There are certainly more things that each of the IDEAs can copy from one another. Hopefully, this competition will continue and result in the improvement of both.

eclipse, eclipse photon, ide, idea, intellij, java

Published at DZone with permission of Bozhidar Bozhanov , DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}