TreeRanker: Sistema Rápido e Independente de Modelo para Classificação de Sugestões de Código em IDEs
TreeRanker: Fast and Model-agnostic Ranking System for Code Suggestions in IDEs
August 4, 2025
Autores: Daniele Cipollone, Egor Bogomolov, Arie van Deursen, Maliheh Izadi
cs.AI
Resumo
A conclusão de código em nível de token é uma das funcionalidades mais críticas nos Ambientes de Desenvolvimento Integrado (IDEs) modernos. Ela auxilia os desenvolvedores ao sugerir identificadores e APIs relevantes durante a codificação. Embora as conclusões sejam tipicamente derivadas de análises estáticas, sua utilidade depende fortemente de como são classificadas, já que previsões corretas enterradas profundamente na lista raramente são vistas pelos usuários. A maioria dos sistemas atuais depende de heurísticas manuais ou modelos de aprendizado de máquina leves treinados em logs de usuários, que podem ser aprimorados para capturar informações de contexto e generalizar entre projetos e estilos de codificação. Neste trabalho, propomos uma nova abordagem de pontuação para classificar conclusões estáticas usando modelos de linguagem de forma leve e independente de modelo. Nosso método organiza todas as conclusões válidas em uma árvore de prefixos e realiza uma única passagem de decodificação gananciosa para coletar pontuações em nível de token ao longo da árvore. Isso permite uma classificação precisa e consciente dos tokens sem a necessidade de busca em feixe, engenharia de prompt ou adaptações do modelo. A abordagem é rápida, independente de arquitetura e compatível com modelos já implantados para conclusão de código. Esses achados destacam um caminho prático e eficaz para integrar modelos de linguagem em ferramentas já existentes dentro de IDEs e, por fim, fornecer uma assistência mais inteligente e responsiva aos desenvolvedores.
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.