12
votes

I personally use CodeRush in Visual Studio 2010 to do refactoring, write code faster with templates and generally navigate my code 10 times faster than stock VS. Recently, I've been working on another Android app and got to thinking...What are the top productivity plugins for Eclipse?

Preferably free. I'm looking for plugins that help write in Java, not PHP or Rails or any of the other languages Eclipse supports.

1
  • A "Dilbert of the day" panel would be nice!
    – user1249
    Nov 1, 2010 at 9:24

6 Answers 6

13
votes

Mylyn is a very widely appreciated plugin for Eclipse, and is available on the main Eclipse site now. It can watch the pieces of code that you work on together (for example, when changing "tax calculation" code, you tend to use the same five files) and then emphasize them the next time you work on the same task. It's a great way to undo the "information overload" you get when working on a large project.

FindBugs for Eclipse will help you save time by analyzing your source code for potential Java bugs. It has a false positive rate, and you wouldn't want to run it each build, but it's a great process to go through.

Eclipse's own refactoring and navigation features will save you time as well. My favorite feature of the JDT is the "Quick Fix." When you have an error in your source code (you can use Control-Period to navigate to it), simply do a Control-1 for the Quick Fix operation. It will give you a list of ways to fix the error. For example, if you write a = foo(s), but a is not declared, one of the Quick Fix options is to "declare a". Eclipse will look at the return type from foo and use that for a, automatically adding any imports. With this style, you will find you write code with errors intentionally, because the Quick Fix route is faster!

My other favorite Eclipse shortcut is "Expand Selection To->Enclosing Element" (Alt+Shift+Up). This takes where your cursor is and then selects the element of the parse tree you are on. When you do it again, you move further up the parse tree. This is great, because you can select an entire expression easily, not having to worry about selecting the code before or after it. That makes it much easier for you to have a valid expression in order to perform the "Extract Local" refactoring.

JUnit is indispensible if you are writing unit tests, and it's well integrated with the environment and process.

If you do any work with GWT, then Google's GWT Eclipse plug-in is nice. You can even use it for working with any Tomcat application, not just a GWT one.

All of these tools are available free.

19
  • 1
    You can disagree, but I don't think it's fair for you to say my answer was not helpful. I also think you should re-read my point: These are not major design errors I'm talking about. I'm talking about when you write new code, much of the bother of imports can be given to Eclipse to organize for you.
    – Macneil
    Oct 30, 2010 at 23:09
  • 2
    @Jas: Sorry if I seem to be not getting your point. Are you saying that writing import java.util.Map; ... Map<String, String> m = foo() is "better design" than writing m = foo()<Control-1; Enter>? Even though the resulting code is the same character-for-character?
    – Macneil
    Oct 31, 2010 at 0:01
  • 3
    "try using Eclipse auto refactoring" I've never had a problem with Eclipse renaming variables/types/methods and producing incorrect. @Jas when was the last time you've used Eclipse, is it recently? And are you talking about the Java editor or the editor for another language? In addition, AFAIK up until recent versions Visual Studio's refactoring options have paled in comparison to Eclipse's.
    – matt b
    Oct 31, 2010 at 3:04
  • 2
    To be fair to Eclipse, if you are using refactoring options within a Rails/Ruby plugin than the inconsistencies may be the fault of the plugin.
    – matt b
    Oct 31, 2010 at 3:56
  • 1
    @Jas It's surely not only me who doesn't get what you mean. Maybe for you the real developer must type each single letter they need?
    – maaartinus
    Mar 20, 2011 at 15:51
6
votes

Clover - A test coverage tool, but outputs the most lovely reports in the world (costs a pretty penny thou.)

Crap4J - Same general data as Clover (that is to say it is a code coverage tool) but simplified and less pretty (free).

Findbugs - Reports on common coding errors (free).

All can be used as either an Eclipse plugin or a stand alone application.

3
votes

I personally turn to Checkstyle to keep my code on the straight and narrow. It helps point out where my design is growing to bloated and I need to step back and refactor. eclipse-cs is one plugin for eclipse for use with Checkstyle.

JUnit, of course, would be the other defacto tool of choice for my development, but then I this is pretty much supported out of the box if you are using eclipse.

3
votes

You may find subclipse a very handy plugin; it makes it very intuitive whether there's changes to be committed or not.

Another suggestion is don't look for more plugins, look into eclipse itself because the features it provides, such as refatoring and source generating, is really very enough for everyday java programming.

I have switched from C++ to Java for around 1 year and really enjoyed the magics eclipse done to me. It's awesome!

3
votes

There are some really helpful plugins to increase productivity, my favourites are:

1
  • @cloudyster if you add "http://" to the last two bullets, they will automatically be hyperlinked. It would make it easier to navigate (I'd edit it in, but don't have the rep yet) Nov 1, 2010 at 14:40
0
votes

I am developing WireframeSketcher Eclipse plug-in. It's a rapid wireframing tool for creating wireframes, mockups and prototypes for all kinds of applications. Notably there are libraries for iPhone and Android apps.

I feel that wireframing should be part of any development process and it's a huge productivity boost. So I put a lot of passion into this plug-in to make it available to every developer. Note that WireframeSketcher also works as a standalone software. This way you can give it to team members that don't use Eclipse.

Not the answer you're looking for? Browse other questions tagged or ask your own question.