TreeRanker: Sistema Rápido y Agnóstico de Modelos para la Clasificación de Sugerencias de Código en 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
Resumen
La finalización de código a nivel de token es una de las características más críticas en los Entornos de Desarrollo Integrados (IDEs) modernos. Asiste a los desarrolladores sugiriendo identificadores y APIs relevantes durante la codificación. Aunque las sugerencias suelen derivarse de análisis estáticos, su utilidad depende en gran medida de cómo se clasifican, ya que las predicciones correctas enterradas en lo profundo de la lista rara vez son vistas por los usuarios. La mayoría de los sistemas actuales dependen de heurísticas diseñadas manualmente o modelos de aprendizaje automático livianos entrenados con registros de usuarios, los cuales pueden mejorarse aún más para capturar información contextual y generalizar entre proyectos y estilos de codificación. En este trabajo, proponemos un nuevo enfoque de puntuación para clasificar las sugerencias estáticas utilizando modelos de lenguaje de manera liviana y agnóstica al modelo. Nuestro método organiza todas las sugerencias válidas en un árbol de prefijos y realiza un único paso de decodificación codicioso para recopilar puntuaciones a nivel de token a lo largo del árbol. Esto permite una clasificación precisa y consciente de los tokens sin necesidad de búsqueda por haz, ingeniería de prompts o adaptaciones del modelo. El enfoque es rápido, agnóstico a la arquitectura y compatible con modelos ya implementados para la finalización de código. Estos hallazgos destacan una vía práctica y efectiva para integrar modelos de lenguaje en herramientas ya existentes dentro de los IDEs, y en última instancia, proporcionar una asistencia más inteligente y receptiva para los desarrolladores.
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.