Code completion (CC), the unsung hero of modern programming, has become a norm, an expectation, even a reliance of developers. Modern IDEs and code editors are equipped with sophisticated CC systems that assist developers in writing better code, quicker. From humble beginnings as glorified spell-checkers to today’s AI-driven assistants, completion tools have made programming faster, smoother, and a bit more magical. It guesses, suggests, and sometimes seems to read our minds, providing context-aware suggestions directly at the cursor’s location. But what if completion itself could be a little more… indirect?

This talk invites you to think outside that box, or more precisely, outside that cursor and explore our proposed concept of Indirect Code Completion (ICC). ICC challenges the long-held unwritten assumption that suggestions must strictly be tied to the point of initiation. Instead, ICC allows completions to occur elsewhere in the code, in related, dependent, or contextually linked locations.

By examining ICC through the lens of object-oriented languages, we identify key properties that characterise ICC and distinguish it from traditional direct completion. We also outline a taxonomy that captures over twenty different ICC patterns. These patterns reveal the diverse ways in which indirect completions can manifest, providing a rich framework for understanding and implementing ICC in real-world coding environments.

Beyond convenience, ICC hints at a deeper idea where code is not just static text that can only advance right at the cursor, but a living system where changes can ripple intelligently through related constructs, adapting to the developer’s intent. For programming language researchers and tool-smiths, ICC opens an unfamiliar new frontier to explore, where only few have ventured.

Fri 28 Nov

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

09:30 - 10:30
Reflections and Rediscoveries in Programming Language HistoryPLNL 2025 at CWI L017 - Ada
09:30
15m
Talk
What Can We Learn from the History of Programming Languages
PLNL 2025
Vadim Zaytsev University of Twente
File Attached
09:45
15m
Talk
Once Upon a Cursor: A Tale of Indirect Code Completion
PLNL 2025
Nhat University of Twente, Vadim Zaytsev University of Twente
10:00
15m
Talk
The Amsterdam Plot: a big mistake?
PLNL 2025
Hans-Dieter Hiep Netherlands Defence Academy
File Attached
10:15
15m
Talk
On the Phenomenon of Fourth Generation Languages
PLNL 2025
Ömer Faruk Sayilir University of Twente, Vadim Zaytsev University of Twente