Ivie: Lightweight Anchored Explanations of Just-Generated Code
Litao Yan, Alyssa Hwang, Zhiyuan Wu, Andrew Head
TL;DR
Ivie tackles the problem of understanding AI-generated code by introducing anchored, lightweight explanations that appear in-situ next to code in the editor. It is implemented as a VS Code extension and uses an LLM to segment code into expressions and blocks, producing brief explanations that are easy to access and dismiss. An in-lab study comparing Ivie to a chat-based AI baseline shows Ivie improves comprehension (accuracy and speed) while reducing perceived workload and distraction, with users valuing it as a complementary tool. The work highlights design implications for instructive copilots and suggests extensions to expandable, adaptable, and controllable explanations beyond the code editor.
Abstract
Programming assistants have reshaped the experience of programming into one where programmers spend less time writing and more time critically examining code. In this paper, we explore how programming assistants can be extended to accelerate the inspection of generated code. We introduce an extension to the programming assistant called Ivie, or instantly visible in-situ explanations. When using Ivie, a programmer's generated code is instantly accompanied by explanations positioned just adjacent to the code. Our design was optimized for extremely low-cost invocation and dismissal. Explanations are compact and informative. They describe meaningful expressions, from individual variables to entire blocks of code. We present an implementation of Ivie that forks VS Code, applying a modern LLM for timely segmentation and explanation of generated code. In a lab study, we compared Ivie to a contemporary baseline tool for code understanding. Ivie improved understanding of generated code, and was received by programmers as a highly useful, low distraction, desirable complement to the programming assistant.
