Alternative UX Extensions and Their Trade-offs for Code Completion in Pharo
2026-07-27 • Software Engineering
Software Engineering
AI summaryⓘ
The authors improved Complishon, a smart code helper in the Pharo programming environment, by making it better at understanding what a programmer wants even with small typing mistakes or shorthand. They added features like typo tolerance, easier ways to handle common prefixes, grouping completion suggestions, and matching camel-case shortcuts. These updates help programmers find the right code suggestions more quickly without breaking how Complishon was originally built. The paper explains how these features work and their design choices.
Pharocode completionAbstract Syntax Tree (AST)typo toleranceprefix matchingcamel-case matchinglazy candidate generationcontext-aware completionsoftware usability
Authors
Mehdi Elkolei, Omar Abedelkader, Stéphane Ducasse
Abstract
Complishon is Pharo's context-aware code completion engine, built on AST analysis, lazy candidate generation, and filter-based candidate selection. Its existing design already provides strong semantic completion, but several practical limits remain. Strict prefix matching is sensitive to small typing errors, framework prefixes often force redundant input, large completion menus are difficult to scan, and prefix-only matching does not support common camel-case abbreviations. This paper presents four extensions that address these limits: typo tolerance, implicit prefix expansion, grouped completion entries, and camel-case matching. For each extension, we describe the implementation, discuss alternative designs, and explain the trade-offs involved. The main contribution of the paper is to show that these improvements can be integrated into Complishon while preserving its modular architecture and predictable behavior.