Context Composing for Full Line Code Completion
This work addresses the need for efficient and non-distracting full-line code completion for software developers, representing an incremental improvement in a domain-specific tool.
The paper tackles the problem of improving code completion in IDEs by developing a context composing approach for a Transformer model, which was successfully deployed in PyCharm Pro and shown to be useful in A/B testing with hundreds of real Python users.
Code Completion is one of the most used Integrated Development Environment (IDE) features, which affects the everyday life of a software developer. Modern code completion approaches moved from the composition of several static analysis-based contributors to pipelines that involve neural networks. This change allows the proposal of longer code suggestions while maintaining the relatively short time spent on generation itself. At JetBrains, we put a lot of effort into perfecting the code completion workflow so it can be both helpful and non-distracting for a programmer. We managed to ship the Full Line Code Completion feature to PyCharm Pro IDE and proved its usefulness in A/B testing on hundreds of real Python users. The paper describes our approach to context composing for the Transformer model that is a core of the feature's implementation. In addition to that, we share our next steps to improve the feature and emphasize the importance of several research aspects in the area.