Features News

Share Your Stats to Improve Code Completion via Machine Learning

Code completion is, no doubt, one of the most useful features of any IDE. This is why IntelliJ IDEA offers it in so many flavors: Basic Completion, Smart Completion, Second Completion, Second Smart Completion, Statement Completion, and Hippie Completion.

Each of these completion types already uses different algorithms and heuristics, but we’d like take them even further with machine learning, which we believe can be a huge improvement to the completion efficiency. However, to really implement it, we need more data from you.

Here comes the idea of our new plugin: Completion Stats Collector. What this plugin does is it collects data about how you’re using code completion, anonymizes it and sends to us. Again, the plugin doesn’t send any of your personal data or code, just generic info about how code completion is used.

What are the benefits of installing this plugin? Mainly, of course, helping us to improve code completion. Less important, yet nice, you’ll always use the latest and most efficient completion algorithms tuned personally for you. In the beginning you won’t notice any big improvements (the opposite in theory may be possible sometimes). Later, as we keep improving the algorithm, we bet you’ll start noticing the difference.

The downside of using the plugin is a slight outgoing traffic—with the maximum around 20KB/hour, based on how heavily you use code completion. In future we’ll do our best to keep the traffic as low as possible.

Like the idea of helping us improve the completion? Install the plugin! Meanwhile, we’ll be happy to answer questions, get suggestions or feedback.

Develop with Pleasure!

Comments below can no longer be edited.

6 Responses to Share Your Stats to Improve Code Completion via Machine Learning

  1. Avatar

    W says:

    September 19, 2016

    Will this new code completion always require a connection to your servers?

    • Avatar

      Andrey Cheptsov says:

      September 21, 2016

      A connection will be used only for sending data. Code completion will keep working.

  2. Avatar

    aaa says:

    September 20, 2016

    when to suport swift languange on IDEA?

    • Avatar

      Andrey Cheptsov says:

      September 21, 2016

      Currently we support Swift only in AppCode. Partly, support for Swift is available for CLion too.

      • Anastasia Kazakova

        Anastasia Kazakova says:

        September 21, 2016

        I’d like to add here:
        Swift support goes with either Xcode model (then AppCode) or CMake (then CLion). CLion is also a good choice if you’d like to try Swift on Linux.

        If you’d like to have Swift support in IntelliJ IDEA, could you please share which project model do you expect and what’s the use case?

  3. Avatar

    Michael Tharrington says:

    September 20, 2016

    Hey guys,

    This sounds really cool! Can you tell me anything about the machine learning algorithms that you’re using to tailor code completion to a specific user? For instance, these algorithms are able to learn my patterns and form fit to my style… but, I’d like to hear a more in-depth explanation about how this all works.

    Don’t mean to give you guys more work, but this is fascinating and, in my opinion, deserves a longer and more detailed post at some point. Not to say that this post was a bad one, but it kind of only whet my appetite and made me want to know more. 🙂

    – Michael

Discover more