Active Code Completion

Author(s): Cyrus Omar, YeoungSeok Yoon, Thomas D. LaToza, Brad A. Myers
Venue: 34th International Conference on Software Engineering
Date: 2012

Type of Experiement: Controlled Experiment
Sample Size: 473
Class/Experience Level: Graduate Student, Other
Participant Selection: Programming-related discussion forum hosted on
Data Collection Method: Survey


This paper discusses an architecture that allows library developers to introduce interactive and highly-specialized code generation interfaces directly into an IDE. Many software developers today are heavily reliant on code completion support found in many IDEs. This support is generally offered in the form of a floating menu containing contextually-relevant variables, fields, methods, types and other code snippets, allowing developers to avoid many common spelling and logic errors, eliminate unnecessary keystrokes and explore unfamiliar APIs.

The study was performed using a survey. Participants were asked about their familiarity with specific object-oriented programming languages and IDEs. They were also asked about what types of active code completion tools they would use and to give simple ratings for different mockups.

The usefulness of active code completion as a generalization of conventional code completion was validated by a number of use cases and developing gernal design constraints for such tools. These findings were used to develop Graphite, an active code completion architecture that makes several novel design decisions which ease development, deployment and discovery of user-defined active code completion tools.