CLAIPLSEMar 22, 2023

RepoCoder: Repository-Level Code Completion Through Iterative Retrieval and Generation

arXiv:2303.12570v3473 citationsh-index: 62Has Code
Originality Incremental advance
AI Analysis

This addresses the problem of incomplete code context for developers by providing a more effective automated completion tool, though it is incremental as it builds on existing retrieval-augmented methods.

The paper tackles repository-level code completion by proposing RepoCoder, a framework that uses iterative retrieval and generation to utilize scattered repository information, resulting in over 10% improvement over baselines across various completion scenarios.

The task of repository-level code completion is to continue writing the unfinished code based on a broader context of the repository. While for automated code completion tools, it is difficult to utilize the useful information scattered in different files. We propose RepoCoder, a simple, generic, and effective framework to address the challenge. It streamlines the repository-level code completion process by incorporating a similarity-based retriever and a pre-trained code language model in an iterative retrieval-generation pipeline. RepoCoder makes effective utilization of repository-level information for code completion and has the ability to generate code at various levels of granularity. Moreover, we propose a new benchmark RepoEval, which consists of the latest and high-quality real-world repositories covering line, API invocation, and function body completion scenarios. Experimental results indicate that RepoCoder significantly improves the In-File completion baseline by over 10% in all settings and consistently outperforms the vanilla retrieval-augmented code completion approach. Furthermore, we validate the effectiveness of RepoCoder through comprehensive analysis, providing valuable insights for future research. Our source code and benchmark are publicly available: https://github.com/microsoft/CodeT/tree/main/RepoCoder

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes