How IntelliJ IDEA Won Me Over
It’s almost a year since I stopped using
IntelliJ differentiates between test and main folders
This is in my opinion one of the biggest advantages of IntelliJ, because it means I can search for references to a class/method within the testing scope or within the production code. Why is this useful? Let me give you two examples:
- Imagine you want to find out if a method is actually used in production code. Sure, it might be used 1000 times in testing, but is it actually used in production code? Go and figure out from those 1000 references whether any comes from production code.
- Imagine you want to figure out how to test a particular class. With IntelliJ, you can find references to that class only within the test code, giving you a clear view of how this class might get tested. With Eclipse, if the class is used plenty of times in the production code, separating between testing and production code can be a PITA.
IntelliJ supports running individual test methods better
Eclipse used to drive me nuts whenever I want to execute a particular test method. First of all, it wasn’t intuitive, you had to go to the class overview panel to be able to do so. On the contrary, with IntelliJ you can do so directly from the class code which is much easier. But the most annoying thing about Eclipse was when you wanted to run individual test methods that are defined in super classes. Eclipse could not do this. If you went to parent class and selected the method, it would try to instantiate the parent class but not the child. IntelliJ does this very well, allowing to select the class and then the test method in the run configuration. Eclipse, at least a year ago, was not able to do so.
IntelliJ is the king of refactoring
Refactoring in IntelliJ is taken to limits where Eclipse has never reached. For example with Eclipse, whenever I renamed a test class, I always had to go and change the run configuration. Not any more with IntelliJ.
IntelliJ can shelve changes
A year ago I was not fully using Git yet, and so finding the ability of shelve changes on Subversion projects was really useful. Eclipse could not do this. With Git now,
With IntelliJ you can define default VM parameters for all tests
In Eclipse, this is not possible. The only thing you can really do is define default parameters at JRE level, which can be too far reaching if you’re running different type of applications from the IDE.
IntelliJ provides plugins via a central repository
IntelliJ has always had a single place from which you install plugins, which makes it nice, easy and quick to install plugins. This might be a bit outdated now but with Eclipse, in the past at least, you had to go and set up individual plugin update sites in order to install plugins, and this used to be quite a PITA.
Tagged as eclipse, intellij + Categorized as Random