TreeRanker: Snel en model-onafhankelijk rangschikkingssysteem voor code-suggesties in IDE's
TreeRanker: Fast and Model-agnostic Ranking System for Code Suggestions in IDEs
August 4, 2025
Auteurs: Daniele Cipollone, Egor Bogomolov, Arie van Deursen, Maliheh Izadi
cs.AI
Samenvatting
Token-level code completion is een van de meest cruciale functies in moderne Integrated Development Environments (IDE's). Het ondersteunt ontwikkelaars door relevante identifiers en API's voor te stellen tijdens het programmeren. Hoewel suggesties doorgaans worden afgeleid uit statische analyse, hangt hun bruikbaarheid sterk af van hoe ze worden gerangschikt, omdat correcte voorspellingen die diep in de lijst staan zelden door gebruikers worden gezien. De meeste huidige systemen vertrouwen op handmatig gemaakte heuristieken of lichtgewicht machine learning-modellen die zijn getraind op gebruikerslogboeken, wat verder kan worden verbeterd om contextinformatie vast te leggen en te generaliseren over projecten en programmeerstijlen heen. In dit werk stellen we een nieuwe scoringsmethode voor om statische suggesties te rangschikken met behulp van taalmodelen op een lichtgewicht en model-agnostische manier. Onze methode organiseert alle geldige suggesties in een prefixboom en voert een enkele gretige decodering uit om token-level scores over de boom te verzamelen. Dit maakt een precieze token-aware rangschikking mogelijk zonder beam search, prompt engineering of modelaanpassingen. De aanpak is snel, architectuur-agnostisch en compatibel met reeds geïmplementeerde modellen voor code completion. Deze bevindingen benadrukken een praktische en effectieve weg voor het integreren van taalmodelen in reeds bestaande tools binnen IDE's, en uiteindelijk het bieden van slimmere en responsievere ontwikkelaarsondersteuning.
English
Token-level code completion is one of the most critical features in modern
Integrated Development Environments (IDEs). It assists developers by suggesting
relevant identifiers and APIs during coding. While completions are typically
derived from static analysis, their usefulness depends heavily on how they are
ranked, as correct predictions buried deep in the list are rarely seen by
users. Most current systems rely on hand-crafted heuristics or lightweight
machine learning models trained on user logs, which can be further improved to
capture context information and generalize across projects and coding styles.
In this work, we propose a new scoring approach to ranking static completions
using language models in a lightweight and model-agnostic way. Our method
organizes all valid completions into a prefix tree and performs a single greedy
decoding pass to collect token-level scores across the tree. This enables a
precise token-aware ranking without needing beam search, prompt engineering, or
model adaptations. The approach is fast, architecture-agnostic, and compatible
with already deployed models for code completion. These findings highlight a
practical and effective pathway for integrating language models into already
existing tools within IDEs, and ultimately providing smarter and more
responsive developer assistance.