At first glance, you might answer: nothing. Indeed, the information needed to complete the source code is primarily in the developer\'s brain. In this poster session we present a code completion system that is able to predict the code you will write. To a certain extent.
Most users of a modern integrated development environment (IDE) 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 the Eclipse IDE, 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, most users of the Eclipse code completion system also noticed that the proposals are always polluted by the 10 methods of \"java.lang.Object\" (for instance equals, notify or wait) and when using an application class, say Mail, it is more likely to call Mail.send() rather than Object.notify(). However, the Eclipse code completion system sorts the recommendations alphabetically, thus, gives Mail.send() as 7th proposal even if Mail.send() would be much more likely than any other method on the list…
Our research addresses this flaw of current IDEs by building intelligent code recommender systems which seamless integrate into the look-and-feel of the IDE used. But building intelligent code completion goes far beyond filtering the methods of java.lang.Object: it is about guessing what the programmer is actually doing next and predicting only those elements that are relevant for a developer for his task at hand.
In this poster session we would like to present our current Eclipse-based prototype to the Eclipse community, gather some feedback from developers about their problems when programming with the Eclipse IDE and use this knowledge to further improve the Eclipse Code Recommender.
Project homepage with screenshots and demo videos: http://www.stg.tu-darmstadt.de/research/core