Better Code Completion For Eclipse
Built On Eclipse

BCC 1.0 Released! 4.19.2011
BCC 1.01: added new ways of navigating API groups; in addition to one-by-one traversal, APIs can be navigated as a group with the arrow keys.

BCC is a research prototype that is meant to improve one of the most commonly-used IDE features: Code Completion. While research efforts in this area so far have produced alternative approaches to improving Code Completion, little has been done to improve the existing infrastructure as we did.

BCC provides two more sorting mechanisms, type-based and use-count-based, for completion proposals in a statically-typed context (like Java). It also provides the ability to selectively remove proposals that are deemed certainly irrelevant in a particular context. Finally, BCC allows users to group APIs logically in the popup pane.

We have evaluated these new strategies of BCC, as well as fourteen of their combinations, with nine small-to-large Java projects that use the Swing/AWT APIs. Our evaluation shows that our alternate sorting mechanisms as well as filtering can statistically significantly reduce the number of APIs a developer must navigate before finding a desired API. Our personal experience shows that grouping APIs helps maintain a programmer's orientation in the API space.

At the most basic level, BCC arranges completion proposals by type-hierarchy order (from a leaf type to the root), then alphabetically, as seen in the above snapshot of a code-complete operation on a Swing JButton instance.

With user configuration, BCC is capable of organizing completion proposals into user-defined groups, as well as filtering out proposals that are otherwise visible, but are not meant to be public API.