ChatPaper.aiChatPaper

TreeRanker: Sistema Rapido e Modello-Agnostico per il Ranking di Suggerimenti di Codice negli IDE

TreeRanker: Fast and Model-agnostic Ranking System for Code Suggestions in IDEs

August 4, 2025
Autori: Daniele Cipollone, Egor Bogomolov, Arie van Deursen, Maliheh Izadi
cs.AI

Abstract

Il completamento del codice a livello di token è una delle funzionalità più cruciali nei moderni Ambienti di Sviluppo Integrati (IDE). Assiste gli sviluppatori suggerendo identificatori e API rilevanti durante la scrittura del codice. Sebbene i completamenti siano tipicamente derivati da analisi statiche, la loro utilità dipende fortemente da come vengono classificati, poiché le previsioni corrette sepolte in fondo alla lista raramente vengono notate dagli utenti. La maggior parte dei sistemi attuali si basa su euristiche manuali o modelli di machine learning leggeri addestrati sui log degli utenti, che possono essere ulteriormente migliorati per catturare informazioni contestuali e generalizzare tra progetti e stili di codifica. In questo lavoro, proponiamo un nuovo approccio di punteggio per classificare i completamenti statici utilizzando modelli linguistici in modo leggero e indipendente dal modello. Il nostro metodo organizza tutti i completamenti validi in un albero prefisso ed esegue un singolo passaggio di decodifica greedy per raccogliere i punteggi a livello di token lungo l'albero. Ciò consente una classificazione precisa e consapevole dei token senza la necessità di beam search, prompt engineering o adattamenti del modello. L'approccio è veloce, indipendente dall'architettura e compatibile con i modelli già implementati per il completamento del codice. Questi risultati evidenziano un percorso pratico ed efficace per integrare modelli linguistici negli strumenti già esistenti all'interno degli IDE, fornendo infine un'assistenza agli sviluppatori più intelligente e reattiva.
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.
PDF32August 6, 2025