PreprintCited by 8Software Engineering ResearchSoftware Engineering Techniques and PracticesSoftware Testing and Debugging Techniques

Full Line Code Completion: Bringing AI to Desktop

Open access
Semenkin, Anton, Bibaev, Vitaliy, Sokolov, Yaroslav, Krylov, Kirill, Kalina, Alexey, Khannanova, Anna, Savenkov, Danila, Rovdo, Darya +9 more·2024·arXiv

Abstract

In recent years, several industrial solutions for the problem of multi-token code completion appeared, each making a great advance in the area but mostly focusing on cloud-based runtime and avoiding working on the end user's device. In this work, we describe our approach for building a multi-token code completion feature for the JetBrains' IntelliJ Platform, which we call Full Line Code Completion. The feature suggests only syntactically correct code and works fully locally, i.e., data querying and the generation of suggestions happens on the end user's machine. We share important time and memory-consumption restrictions, as well as design principles that a code completion engine should satisfy. Working entirely on the end user's device, our code completion engine enriches user experience while being not only fast and compact but also secure. We share a number of useful techniques to meet the stated development constraints and also describe offline and online evaluation pipelines that allowed us to make better decisions. Our online evaluation shows that the usage of the tool leads to 1.3 times more Python code in the IDE being produced by code completion. The described solution was initially started with a help of researchers and was then bundled into all JetBrains IDEs where it is now used by millions of users. Thus, we believe that this work is useful for bridging academia and industry, providing researchers with the knowledge of what happens when complex research-based solutions are integrated into real products.

Integrity signals

Registry

DataCite · 10.48550/arxiv.2405.08704

Cites

42 of 42 references verified0 citation errors · 0 not checkable

Statistics

Nothing to recompute.

Claims the paper makes

3 of 24 cited sources checked · 1 supported · 0 flagged · accuracy not yet measured

  • Findingown data

    Knowledge distillation does not provide any quality improvement for their model sizes.

    “Unlike in many similar circumstances, we do not employ knowledge distillation [56], because we discovered that for our sizes of the models, this technique does not provide any quality improvement.”
    Quote in the paperSubstantial claim1 of 1 sources checked
    • cites [56] 56. V. Sanh, L. Debut, J. Chaumond, and T. Wolf, "DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter," arXiv preprint arXiv:1910.01108, 2019. source
  • Findingreasoning

    Quantization from FP32 to INT4 decreases the model size several times with negligible quality loss.

    “This transformation decreases the size of the model several times, trading it off to a negligible quality loss.”
    Quote in the paperSubstantial claim
  • Findingnone given

    FLCC works fully locally, with data querying and suggestion generation on the end user's machine.

    “The feature suggests only syntactically correct code and works fully locally, i.e., data querying and the generation of suggestions happens on the end user's machine.”
    • Also stated in: § I. INTRODUCTION · plain
      “It works fully locally, i.e. all computations, from code completion invocation to the showing of suggestion, happen on the end user's device.”
    Quote in the paperSubstantial claim
  • Findingown data

    The cache is used in over 90% of completion events.

    “According to our observation, the cache is used in over 90% of completion events”
    Quote in the paperSubstantial claim
  • Findingown data

    Usage of FLCC leads to 1.3 times more Python code in the IDE being produced by code completion compared to standard code completion only.

    “Our online evaluation shows that the usage of the tool leads to 1.3 times more Python code in the IDE being produced by code completion.”
    • Also stated in: § I. INTRODUCTION · plain
      “Our experiments showed that the ratio of completed code (i.e., the percentage of code symbols written with code completion among all written code) increased 1.3 times for Python users with Full Line Code Completion compared to users with standard code completion only.”
    Quote in the paperSubstantial claim
  • Classified as probably not a substantial claim. 19
  • May combine two claims. 19
  • The quote only partly states this claim. 1
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Premisecitation

    The Stack dataset encompasses over 6TB of code in 358 languages and is extensively used for training large language models due to permissive licensing and wide coverage.

    “This dataset, encompassing over 6TB of code in 358 languages, is extensively used for training large language models due to its permissive licensing and wide coverage.”
    Quote in the paperNot a substantial claim2 of 3 sources checked
    • cites [8] 8. M. Chen, J. Tworek, H. Jun, Q. Yuan, H. P. d. O. Pinto, J. Kaplan, H. Edwards, Y. Burda, N. Joseph, G. Brockman et al., "Evaluating large language models trained on code," arXiv preprint arXiv:2107.03374, 2021. source

      The Data Collection section (p. 4) describes a different training dataset: 159 GB of filtered Python files from GitHub. Searches for The Stack, 6 TB, 358 languages, and permissive licensing found no passage in our copy addressing those claims or the dataset’s purported use for training. (LLM, conf=0.78)

      Experimental — accuracy not yet measured
    • cites [37] 37. D. Kocetkov, R. Li, L. B. Allal, J. Li, C. Mou, C. M. Ferrandis, Y. Jernite, M. Mitchell, S. Hughes, T. Wolf et al., "The Stack: 3 TB of permissively licensed source code," arXiv preprint arXiv:2211.15533, 2022. source

      The Abstract (p. 1) describes The Stack as permissively licensed code intended to support research on code language models, but gives its size as 3.1 TB across 30 languages—not over 6 TB across 358. Appendix B (p. 19) reports 370 languages for the updated v1.1 dataset. The paper reports training its own models on subsets; it does not establish that The Stack was extensively used to train large language models. (LLM, conf=0.88)

      Experimental — accuracy not yet measured
    • cites [38] 38. HuggingFace, "The Stack," [Accessed 01.01.2025]. [Online]. Available: https://huggingface.co/datasets/bigcode/the-stack

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • May combine two claims.

    Findingcitation

    FLCC is a multi-token code completion engine that utilizes a Transformer-based neural network in its core.

    “At JetBrains, we built the Full Line Code Completion (FLCC) feature [18] -a multi-token code completion engine that utilizes a Transformer-based neural network in its core and suggests only syntactically correct code.”
    Quote in the paperSubstantial claim0 of 1 sources checked
    • cites [18] 18. JetBrains, "Full Line Code Completion," [Accessed 01.01.2025]. [Online]. Available: https://plugins.jetbrains.com/plugin/14823-full-line- code-completion

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • May combine two claims.

    Findingreasoning

    The caching approach significantly increases model inference speed in over 90% of real-world scenarios while keeping quality at almost the same level.

    “According to our observations, this allows to significantly increase model inference speed in over 90% of the real-world scenarios, while keeping the quality at almost the same level.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Findingown data

    The train-validation-test proportions for the Python model were 80%-5%-15%, totaling slightly more than 50 GB.

    “For the training of the Python model, the corresponding proportions of the train-validation-test sets of the data were 80%-5%-15%, adding up to slightly more than 50 GB of data.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingreasoning

    The quantized model runs 2 times faster than the full precision model on M2 CPU on MacOS and 4 times faster on Intel i9 CPU on Linux.

    “Secondly, llama.cppallows us to shorten the CPU inference time due to more efficient usage of the registers for INT4 data: e.g., the quantized model runs 2 times faster compared to full precision model on M2 CPU on MacOS and 4 times faster on Intel i9 CPU on Linux.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Findingcitation

    FLCC is bundled into all JetBrains IDEs and enabled by default for various programming languages.

    “The feature is implemented in the form of a plugin for the IntelliJ Platform [19], [20] (an open-source platform for building IDEs), and is bundled into all JetBrains IDEs: IntelliJ IDEA [21], PyCharm Pro [22], WebStorm [23], and others, where it is enabled by default for various programming languages.”
    Quote in the paperNot a substantial claim0 of 3 sources checked
    • cites [19] 19. --, "IntelliJ Platform," JetBrains, [Accessed 01.01.2025]. [Online]. Available: https://www.jetbrains.com/opensource/idea/

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

    • cites [20] 20. Z. Kurbatova, Y. Golubev, V. Kovalenko, and T. Bryksin, "The IntelliJ platform: A framework for building plugins and mining software data," in 2021 36th IEEE/ACM International Conference on Automated Software Engineering Workshops (ASEW), 2021, pp. 14-17. source
    • cites [21] 21. JetBrains, "IntelliJ IDEA," JetBrains, [Accessed 01.01.2025]. [Online]. Available: https://www.jetbrains.com/idea/

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Findingnone given

    FLCC has been available for Python since version 2023.3 and for other languages in 2024.1 and 2024.2, serving millions of users.

    “The feature has been available for Python since version 2023.3 and then became available for other languages too in 2024.1 and 2024.2, now serving millions of users.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S4 (based).

    Findingnone given

    The resulting implementation has proven its efficiency during A/B testing on real users.

    “The resulting implementation has proven its efficiency during A/B testing on real users”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing), S4 (based).

    Findingnone given

    The feature's performance is significantly different for different languages.

    “Additionally, the feature's performance is significantly different for different languages”
    Quote in the paperNot a substantial claim
  • Classified as probably not a substantial claim.

    Findingnone given

    The scope of the implemented feature is limited to a single line of code.

    “Also, the scope of the implemented feature is limited to a single line of code.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Findingnone given

    The implementation was bundled into 2024.1 and 2024.2 releases of IntelliJ-based IDEs.

    “was bundled into 2024.1 & 2024.2 releases of IntelliJ-based IDEs.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S4 (based). May combine two claims.

    Interpretationreasoning

    The overall approach covers all restrictions and design principles, and the resulting feature is local-based, fast, compact, and properly integrated into the IDE.

    “Overall, our approach to implementing Full Line Code Completion allows us to cover all restrictions and design principles described at the beginning of this section, meaning that the resulting feature is local-based, fast, compact, and properly integrated into the IDE.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Premisecitation

    Code completion is among the most attractive features in IDEs because it helps developers avoid wasting time on manually typing code and speeds up software engineering activity.

    “Code completion is among the most attractive features in integrated development environments (IDEs) [1], [2], since it helps developers to avoid wasting time on manually typing all of the code characters and thus speeds up any software engineering activity.”
    Quote in the paperNot a substantial claim0 of 2 sources checked
    • cites [1] 1. G. Murphy, M. Kersten, and L. Findlater, "How are Java software developers using the Elipse IDE?" IEEE Software, vol. 23, no. 4, pp. 76-83, 2006. source
    • cites [2] 2. S. Amann, S. Proksch, S. Nadi, and M. Mezini, "A study of Visual Studio usage in practice," in 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), vol. 1, 2016, pp. 124-134. source
  • May combine two claims.

    Study design and conductcitation

    All comparisons provided in Table I are statistically significant, measured by per-user bootstrap.

    “All the provided comparisons are statistically significant, measured by employing per-user bootstrap [65].”
    Quote in the paperSubstantial claim0 of 1 sources checked
    • cites [65] 65. B. Efron, "Bootstrap methods: another look at the Jackknife," in Breakthroughs in statistics: Methodology and distribution. Springer, 1992, pp. 569-593. source
  • May combine two claims.

    Premisecitation

    TabNine and aiXcoder support fully local models and data querying but lack integration features and do not implement code correctness checks.

    “While TabNine and aiXcoder support fully local models and data querying, they lack integration features and do not implement code correctness checks.”
    Quote in the paperSubstantial claim0 of 2 sources checked
    • cites [4] 4. TabNine, "TabNine," [Accessed 01.01.2025]. [Online]. Available: https://www.tabnine.com/

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

    • cites [7] 7. aiXcoder, "aiXcoder," [Online. Accessed 01.01.2025]. [Online]. Available: https://www.aixcoder.com/en/#/

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • Classified as probably not a substantial claim.

    Interpretationnone given

    Token healing resolves generation issues from mid-token positions by reverting to one token prior and constraining the initial generation to the incomplete token.

    “This method, called token healing, resolves generation issues from mid-token positions by reverting to one token prior and constraining the initial generation to the incomplete token.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Premisecitation

    GitHub Copilot shows an acceptance rate of about 30% for both single-line and multi-line suggestions combined.

    “For comparison, GitHub Copilot shows an acceptance rate of about 30% [66] for both single-line and multi-line suggestions combined.”
    Quote in the paperNot a substantial claim0 of 1 sources checked
    • cites [66] 66. GitHub, "Quantifying GitHub Copilot's impact in the enterprise with accenture," 2024, [Accessed 01.01.2025]. [Online]. Avail- able: https://github.blog/news-insights/research/research-quantifying- github-copilots-impact-in-the-enterprise-with-accenture/

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Premisecitation

    150 ms is perfect for the user's visual perception.

    “which is perfect for the user's visual perception [67].”
    Quote in the paperNot a substantial claim0 of 1 sources checked
    • cites [67] 67. R. J. Kosinski, "A literature review on reaction time," Clemson University, vol. 10, no. 1, pp. 337-344, 2008.

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • May combine two claims.

    Interpretationown data

    FLCC is more effective than the standard single-token approach, offering faster coding and potentially reduced cognitive load for developers.

    “The feature, as evidenced by our A/B tests, proves more effective than the standard singletoken approach, offering faster coding and potentially reduced cognitive load for developers.”
    Quote in the paperSubstantial claim
  • Classified as probably not a substantial claim. May combine two claims.

    Study design and conductnone given

    EAP releases were used as a platform for A/B testing, and EAPs of versions 2023.3, 2024.1, and 2024.2 were used for online evaluation of FLCC.

    “EAP releases are also used as a platform for A/B testing.The EAPs of versions 2023.3,2024.1, and 2024.2 were used to conduct the online evaluation for Full Line Code Completion.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Study design and conductcitation

    The processes required for the training pipeline and the plugin are implemented to be as similar to each other as possible.

    “Thus, we ensure that the processes required for both stages are implemented to be as similar to each other as possible [58].”
    Quote in the paperNot a substantial claim0 of 1 sources checked
    • cites [58] 58. M. Zinkevich, "Rules of ML," [Accessed 01.01.2025]. [Online]. Available: https://developers.google.com/machine-learning/guides/rules-of-ml

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • The quote only partly states this claim.

    Interpretationown data

    Forcing only ASCII symbols in the vocabulary and merging non-ASCII sequences into a single <UNK> token improves the model's ability to suggest proper tokens.

    “This observation led us to force only ASCII symbols to be used for the vocabulary while leaving other symbols as <UNK> tokens and merging sequences of them into a single <UNK> token.”
    • Also stated in: § 1) Tokenization: · plain
      “Insight 5: Even without the comments, raw code also contains characters that can hinder the model's ability to suggest proper tokens.To combat this, we focused on the ASCII symbols.”
    Quote in the paperSubstantial claim
  • May combine two claims.

    Interpretationreasoning

    Removing leading indentations and substituting them with special tokens <SCOPE_IN> and <SCOPE_OUT> saves space in the BPE vocabulary and better handles token healing.

    “Such an approach allows not only to save space in the BPE vocabulary but also to better handle the token healing problem that is described further in Section III-D1.”
    Quote in the paperSubstantial claim
  • May combine two claims.

    Interpretationreasoning

    Open-source models like InCoder, StarCoder, CodeLLaMA, etc., are not suitable for local code completion engines like FLCC because they are too big, have restrictive licenses, and only specific architectures have fast inference engines.

    “Despite the fact that the models are open-source, they are not suitable for local code completion engines like FLCC for several reasons.First of all, they are usually too big to ship to users and do not meet the memory footprint restrictions for desktop applications like IDEs.Secondly, the license for the model's weights might not be permissive for commercial use.Last but not least, only specific”
    Quote in the paperSubstantial claim
  • Classified as probably not a substantial claim.

    Study design and conductreasoning

    All forks of a given repository were placed in the same data segment to avoid potential data leaks.

    “Additionally, to avoid potential data leaks, we ensure that all the forks of the given repository are placed in the same data segment.”
    Quote in the paperSubstantial claim
  • May combine two claims.

    Interpretationreasoning

    A vocabulary size of 16,384 tokens allows decent model quality while maintaining an acceptable memory footprint.

    “We chose the vocabulary size of 16,384 tokens because it allows for a decent model quality while maintaining an acceptable memory footprint: for our sizes of models, a significant part of the model's weights depends on the vocabulary size.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing), S4 (based). May combine two claims.

    Study design and conductnone given

    EAP participants typically have a deeper understanding and engagement with the IDE's features, and their usage patterns may differ from average users.

    “EAP participants typically have a deeper understanding and engagement with the IDE's features, and their usage patterns may differ from average users.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S4 (based). May combine two claims.

    Interpretationnone given

    Full Line Code Completion is available for a wide range of users, including those with limited internet access and those with privacy concerns.

    “being available for a wide range of users, including those with limited internet access and those with privacy concerns.”
    Quote in the paperNot a substantial claim
    • Rests on an assumption: There is a need for local-based multi-token code completion among users with limited internet access or privacy concerns.
  • May combine two claims.

    Study design and conductown data

    The offline evaluation dataset remains limited in size and might not represent all code well enough.

    “our dataset for offline evaluation remains limited in terms of size and might not represent all the code well enough.”
    Quote in the paperNot a substantial claim
  • Classified as probably not a substantial claim.

    Interpretationnone given

    Full Line Code Completion fills a niche of local-based multi-token code completion engines.

    “The feature fills a niche of local-based multi-token code completion engines”
    Quote in the paperSubstantial claim
    • Rests on an assumption: There is a need for local-based multi-token code completion among users with limited internet access or privacy concerns.
30 of 30
  • The paper relies on this without support.

    Built-in completion engines usually only work in a single-token mode, generating only one identifier.

    “In any case, built-in completion engines usually only work in a single-token mode, i.e., only one identifier is generated (e.g., a variable or a method name).”
  • The paper relies on this without support.

    Developers often write code first and add imports later.

    “Developers often write code first and add imports later, a process facilitated by the auto-import feature in IntelliJ-based IDEs -it automatically recognizes code from external libraries and adds the necessary imports.”
  • The paper relies on this without support.

    The auto-import feature in IntelliJ-based IDEs automatically recognizes code from external libraries and adds necessary imports.

    “Developers often write code first and add imports later, a process facilitated by the auto-import feature in IntelliJ-based IDEs -it automatically recognizes code from external libraries and adds the necessary imports.”
  • The paper relies on this without support.

    The user expects a code-suggesting tool to show finished constructions.

    “Moreover, the user expects a code-suggesting tool to show finished constructions.”
  • The paper relies on this without support.

    None of the multi-token completion solutions have a common API for inline completion.

    “Moreover, none of these solutions have a common API for inline completion, which makes them conflict with others and requires re-implementing the same functionality, which leads to poor UX and many confirmed bugs.”
  • The paper relies on this without support.

    There is a need for local-based multi-token code completion among users with limited internet access or privacy concerns.

    “being available for a wide range of users, including those with limited internet access and those with privacy concerns.”
6 of 6

Cites

Flagged first, then by citations

32 of the 74 references couldn’t be matched to a known paper.

Research works printed but not linked: 3

  1. [14]14. A. Radford, J. Wu, R. Child, D. Luan, D. Amodei, I. Sutskever et al., "Language models are unsupervised multitask learners," OpenAI blog, vol. 1, no. 8, p. 9, 2019.
  2. [17]17. V. J. Hellendoorn, C. Sutton, R. Singh, P. Maniatis, and D. Bieber, "Global relational models of source code," in International conference on learning representations, 2019.
  3. [67]67. R. J. Kosinski, "A literature review on reaction time," Clemson University, vol. 10, no. 1, pp. 337-344, 2008.

Cited by

Sorted by citations

Authors
Semenkin, A., Bibaev, V., Sokolov, Y., Krylov, K., Kalina, A., Khannanova, A., Savenkov, D., Rovdo, D., Davidenko, I., Karnaukhov, K., Vakhrushev, M., Kostyukov, M., Podvitskii, M., Surkov, P., Golubev, Y., Povarov, N., & Bryksin, T.
Venue
arXiv
Publisher
arXiv
Published
2024
Pages
563-574
OpenAlex
W4413360205
Cited by
8
References
74
Citations by year
2026: 3 · 2025: 3 · 2024: 2
FWCI
7.16
Type
conference paper
Language
en
Open access
Locations
  • IEEE/ACM International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP) (publishedVersion)
  • arXiv (Cornell University) (submittedVersion)
  • arXiv (Cornell University)
Topics
  • Physical Sciences › Computer Science › Information Systems › Software Engineering Research
  • Physical Sciences › Computer Science › Information Systems › Software Engineering Techniques and Practices
  • Physical Sciences › Computer Science › Software › Software Testing and Debugging Techniques
Keywords
offline evaluation, online assessment, Python code generation

About these checks

Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.

Claims read by deepseek-v4.1-flash under definition version 3 (extract-v3) on 2026-10-11.

Classified by jev-1.13-20260917 (gold-guideline-v0.2) on 2026-10-11.

Cited sources are checked by gpt-6-sol.

Statistics and arithmetic are recomputed, not judged.

Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.

What counts as a claim ›How we measure confidence ›How we check this ›

Are you an author, or do you see a problem with this page? Request a review