🤖 AI Summary
This work addresses several usability limitations of the Pharo code completion engine Complishon, including its sensitivity to typographical errors, the need for repetitive framework prefix input, overly long completion menus, and lack of support for camelCase abbreviation matching. The paper presents the first systematic integration of four user experience enhancements: spelling tolerance, implicit prefix expansion, grouped completion candidates, and camelCase-aware matching. Leveraging AST-based analysis, lazy candidate generation with selective filtering, and strategies for prefix augmentation and interaction refinement, these mechanisms substantially improve the robustness, conciseness, and navigability of code completions. Crucially, they achieve these gains while preserving Complishon’s modular architecture and behavioral predictability, thereby demonstrating both the effectiveness and compatibility of the proposed approach.
📝 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.