|
| | | Version: 0.2.3 Support Eclipse Version: 3.4, 3.5 License: Free EPL Development Status: Alpha Company: Software Technology Group/Darmstadt University of Technology
| |  | Home Page |  | Plugin Support |  | Discussion Forum | |
|
| Update Site URL: http://cage.st.informatik.tu-darmstadt.de/frameworks/core/ |
How much can an IDE predict what you will write in the next seconds?
At first glance, you might answer: nothing. Indeed, the information needed to complete the source code is primarily in the developer's brain. Yet we present a code completion system that is able to predict the code you *will* write in the near future. To a certain extent ;)
Eclipse users know code completion. When writing source code, a widget can propose you a list of code snippets to be inserted in the current source file. For instance, when writing Java software with Eclipse, pressing Ctrl+Space gives you all the methods callable on an instance x according to its declared type. This feature really increase the speed of writing code, especially when the results are filtered by the first characters of the method name.
However, we all noticed that the Eclipse code assist proposals are always polluted by a bunch of irrelevant or rarely used methods. For instance every proposal contains all 10 methods of "java.lang.Object" (for instance equals, notify or wait). But when using an application class, say an SWT Button, it is more likely to call Button.setText() rather than Object.notify(). However, the Eclipse code completion system sorts the recommendations alphabetically, which means that Button.setText() can be found far below notify() even if it would be much more likely than any other method call.
To make things more complicated: Did you notice that the public interface of SWT Button consists of more the 120 methods? Finding the appropriate methods in such a long list of proposals is sometimes really complicated and especially unexperienced developers run frequently into trouble here. Consequently, learning how to use a framework like SWT is much more complicated than it needs to be (in our opinion :) ).
Because of these issues we started a new Eclipse project which aims to build an intelligent code recommender system which (i) seamless integrates into the look-and-feel of Eclipse' Code Assist, and (ii) predicts only those method calls that are likely to be used by a developer in his current (code) situation. Now, we have finalized our first prototype of such a code recommender engine cabable to predict method calls for instances of the Eclipse SWT & Eclipse JFace framework, i.e., objects like SWT Buttons, Labels, Texts etc. as well JFace Wizards, WizardPages, PreferencePages, and many more.
Visit the project home for screencasts and screenshots showing the Eclipse Code Recommender in action!
Update
Since version 0.2.0 Eclipse Code Recommenders additionally provides support for extending white-box frameworks like JFace. It recommends methods that are likely to be overridden by subclasses and recommends methods to be called within these overridden methods. Furthermore, we have created an extended Javadoc View which integrates subclassing relevant information like methods to override, methods to call & commone subclassing patterns (i.e., which set of methods is typically overridden by subclasses) to the developer. Additionally, on the method level we give hints whether a framework method should be extended rather then being re-implemented from scratch or vice versa.
Added on: 11-Mar-2009 | Updated: 23-Nov-2009