Context Composing for Full Line Code Completion
Anton Semenkin Yaroslav Sokolov Evgeniia Vu
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.