Eclipse M9
By Adrian Sutton
Eclipse M9 was recently released and I’ve been using it all day today. It seems to work well though it reset a lot of my preferences which I didn’t think previous versions had done. Perhaps they were stored outside of the workspace somewhere… The most noticeable new feature is the code folding which generally I’m not a fan of until I realized it could automatically hide all the import statements at the top of the file. I’ve always hated having to scroll past a screenful of import statements to get to the meaningful code so it’s good not to have to. The other really noticeable change I saw was the ability to have calls to abstract methods shown in a different font/color as well as references to static variable, class variables. While this seemed like a really useful feature when I first saw it, turning it on made my source code overly colorful and really quite difficult to read. I’ve left it off for now though it’s probably possible to be more selective about which things are highlighted and in what colors. I’m not sure it’s really going to be a particularly big productivity gain though. I also noticed somewhat by accident that a little icon appears in the sidebar when a method overrides a super class’s method. That’s really useful to me. I spend vast amounts of time extending classes and overriding methods, mostly to add improvements or fix bugs in features that come with the JRE. It’s very nice to not only see that you’ve got the signature of the method right and that it really is overriding something but also have a very quick way of getting to the super implementation to make sure you’re taking care of all the things the method is supposed to. I’m just now reading the release notes and the mark occurrences feature looks very useful – particularly with it’s ability to highlight exit points of a function. We have a number of complex functions that have multiple exit points but that wind up being much harder to understand when broken up into smaller methods. For performance reasons though (and yes we’ve profiled and know that it’s required) the functions exit as soon as possible and thus have multiple exit points (refactoring to use a single exit point while maintaining performance just complicates the code). Having the exit points show up clearly should help a lot in these cases, particularly since it appears to also highlights points where an exception may be thrown and cause the method to exit. Back to the imports related features. The new ability to keep track of required imports when copying and pasting code looks really cool. Not that I’d ever copy and paste code….. Anyway, lots of cool new stuff to play with in Eclipse M9. The project is really coming a long way – I haven’t tested its speed on OS X yet but I’m hoping it will continue the trend of optimizations there and if my new RAM ever arrives maybe it will even be usable.