Package-Aware Approach for Repository-Level Code Completion in Pharo

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Abedelkader, Omar, Ducasse, Stéphane, Zaitsev, Oleksandr, Robbes, Romain, Polito, Guillermo
Format: Preprint
Published: 2026
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866915718624182272
author Abedelkader, Omar
Ducasse, Stéphane
Zaitsev, Oleksandr
Robbes, Romain
Polito, Guillermo
author_facet Abedelkader, Omar
Ducasse, Stéphane
Zaitsev, Oleksandr
Robbes, Romain
Polito, Guillermo
contents Pharo offers a sophisticated completion engine based on semantic heuristics, which coordinates specific fetchers within a lazy architecture. These heuristics can be recomposed to support various activities (e.g., live programming or history usage navigation). While this system is powerful, it does not account for the repository structure when suggesting global names such as class names, class variables, or global variables. As a result, it does not prioritize classes within the same package or project, treating all global names equally. In this paper, we present a new heuristic that addresses this limitation. Our approach searches variable names in a structured manner: it begins with the package of the requesting class, then expands to other packages within the same repository, and finally considers the global namespace. We describe the logic behind this heuristic and evaluate it against the default semantic heuristic and one that directly queries the global namespace. Preliminary results indicate that the Mean Reciprocal Rank (MRR) improves, confirming that package-awareness completions deliver more accurate and relevant suggestions than the previous flat global approach.
format Preprint
id arxiv_https___arxiv_org_abs_2601_05617
institution arXiv
publishDate 2026
record_format arxiv
spellingShingle Package-Aware Approach for Repository-Level Code Completion in Pharo
Abedelkader, Omar
Ducasse, Stéphane
Zaitsev, Oleksandr
Robbes, Romain
Polito, Guillermo
Software Engineering
Pharo offers a sophisticated completion engine based on semantic heuristics, which coordinates specific fetchers within a lazy architecture. These heuristics can be recomposed to support various activities (e.g., live programming or history usage navigation). While this system is powerful, it does not account for the repository structure when suggesting global names such as class names, class variables, or global variables. As a result, it does not prioritize classes within the same package or project, treating all global names equally. In this paper, we present a new heuristic that addresses this limitation. Our approach searches variable names in a structured manner: it begins with the package of the requesting class, then expands to other packages within the same repository, and finally considers the global namespace. We describe the logic behind this heuristic and evaluate it against the default semantic heuristic and one that directly queries the global namespace. Preliminary results indicate that the Mean Reciprocal Rank (MRR) improves, confirming that package-awareness completions deliver more accurate and relevant suggestions than the previous flat global approach.
title Package-Aware Approach for Repository-Level Code Completion in Pharo
topic Software Engineering
url https://arxiv.org/abs/2601.05617