English

ContextModule: Improving Code Completion via Repository-level Contextual Information

Software Engineering 2024-12-12 v1 Artificial Intelligence

Abstract

Large Language Models (LLMs) have demonstrated impressive capabilities in code completion tasks, where they assist developers by predicting and generating new code in real-time. However, existing LLM-based code completion systems primarily rely on the immediate context of the file being edited, often missing valuable repository-level information, user behaviour and edit history that could improve suggestion accuracy. Additionally, challenges such as efficiently retrieving relevant code snippets from large repositories, incorporating user behavior, and balancing accuracy with low-latency requirements in production environments remain unresolved. In this paper, we propose ContextModule, a framework designed to enhance LLM-based code completion by retrieving and integrating three types of contextual information from the repository: user behavior-based code, similar code snippets, and critical symbol definitions. By capturing user interactions across files and leveraging repository-wide static analysis, ContextModule improves the relevance and precision of generated code. We implement performance optimizations, such as index caching, to ensure the system meets the latency constraints of real-world coding environments. Experimental results and industrial practise demonstrate that ContextModule significantly improves code completion accuracy and user acceptance rates.

Keywords

Cite

@article{arxiv.2412.08063,
  title  = {ContextModule: Improving Code Completion via Repository-level Contextual Information},
  author = {Zhanming Guan and Junlin Liu and Jierui Liu and Chao Peng and Dexin Liu and Ningyuan Sun and Bo Jiang and Wenchao Li and Jie Liu and Hang Zhu},
  journal= {arXiv preprint arXiv:2412.08063},
  year   = {2024}
}