Eclipse is probably the best Java editor available (Netbeans is supposed to be good too, but I haven't tried it). The refactoring features are all 100% semantics-preserving, and the autocompletion has some limited static code-flow analysis which is pretty cool. For example, you can do this:
if (shit instanceof Lol) {
shit.
// ^^^^^
// If you put the cursor here and press Ctrl+Space, the editor
// knows you're dealing with an instance of Lol, shows you
// methods from Lol, and auto-inserts the cast for you if
// you choose one.
}
However, installing several different packaged features (for example, Java and Haskell and Ruby) into the same copy of Eclipse is always a huge nightmare. Even if the dependencies match, you still end up having menus clogged with choices, high heap usage, etc.
Also, asking for C++ auto completion is like asking for an infinite loop detector