2019-12-15 2 min read

    I’m a heavy Visual Studio Code user and one of my favorite plugins has been TabNine. I use VS Code to hack around across a variety of languages in addition to note-taking and TabNine makes me significantly more productive. It’s a language-agnostic autocompleter that relies on machine learning rather than predefined heuristics and analyzes whatever you type in order to offer you a variety of suggestions. It’s similar to GMail’s new autocomplete functionality but in your editor.

    For example, I write this blog in Jekyll which has the following standard header:

    Blogpost header TabNine suggestions

    As soon as I start typing I get the following suggestions from TabNine:

    Blogpost header TabNine suggestions Blogpost header TabNine suggestions

    The suggestions aren’t based on any rules or an actual understanding of my intent but are instead trained through my usage. I didn’t have to do anything to configure it and it’s been working right out of the box. It’s not perfect and the lack of context around my intent limits the potential. Despite that, it has enough training data that it’s able to offer some surprisingly accurate predictions. I suspect we’ll see more and more full featured IDEs adopt a similar approach that’s less based on rules and heuristics and instead based on actual usage and behavior. Imagine being able to train not on just your own code but also what every other engineer had typed - for example generating predictions based on the content in StackOverlfow.