How do I set up semantic completion?

Why do you say TabNine is "simple"?

  1. TabNine works for all programming languages.
  2. TabNine does not require any configuration in order to work.
  3. TabNine does not require any external software (though it can integrate with it).
  4. Since TabNine does not parse your code, it will never stop working because of a mismatched bracket.

My project isn't a Git or Mercurial repository. How can I make TabNine index it?

Add a file named .tabnine_root to the root of your project directory. TabNine respects .tabnineignore, .gitignore, .hgignore, and .ignore files.

How do I disable automatic updates?

Type TabNine::disable_auto_update into your text editor. You should see an autocompletion suggestion confirming that automatic updates are disabled.

I don't like the message in the autocomplete popup telling me that I can upgrade to index more files.

You can disable it by typing TabNine::hide_promotional_message. The popup only exists to ensure users are aware the paid version exists.

Is there a risk that TabNine will leak my source code?

By default, TabNine makes web requests only for the purposes of downloading updates and validating registration keys. In this case your code is not sent anywhere, even to TabNine servers.

You may opt in to TabNine Cloud, which allows you to use TabNine's servers for GPU-accelerated completions powered by a deep learning model. If sending code to a cloud service is not possible, we also offer a self-hosted option. Contact us at enterprise@tabnine.com.

Can I use TabNine on multiple machines?

Licenses are per-user, rather than per-machine, so you can use TabNine on as many computers and operating systems as you wish with your license.

How does TabNine detect file encodings?

All files are decoded as UTF-8. If a file is not valid UTF-8, it will not be indexed.

When I try to open the config panel, it says it couldn't start a web browser.

This issue usually occurs when you are running TabNine on a machine without a GUI. The following options may help:

  • Use port forwarding to view the config panel from your local machine. If your remote machine's address is janedoe@123.45.67.89, and TabNine is listening on port 5555, the following command will do this:

    ssh -L 5555:127.0.0.1:5555 janedoe@123.45.67.89

    You can then access the config panel by copying the URL printed by TabNine into your local web browser. Note that the string of random characters must be included, or else the config panel will hang with a "Loading..." message.

  • Use a web browser that does not require a window manager to access the config panel from the remote machine.
  • Copy a working config file from another machine. You can find the file location by typing TabNine::config_dir and adding tabnine_config.json to the end of the path.

I purchased a one-time license in the past, but I see this is not offered anymore. What will happen to my license?

Your activated copy of TabNine will continue to work without any action required from you.

If you choose to upgrade to TabNine Professional in order to access the new deep learning features, you can apply the full price of your license as a discount to your subscription.

What language is TabNine written in?

TabNine is 14,000 lines of Rust.

In recognition of the fact that TabNine could not exist without the Rust ecosystem, TabNine's paid features are always enabled when completing Rust code.

Why is it called TabNine?

When using the Sublime Text client for TabNine, the keyboard shortcut to select the ninth suggestion is Tab+9.

Here are some other names which were duly considered:

  • TabTab
  • CodeBuddy
  • Say Yes to the Keypress (SYT²KP)
  • Dieter the Autocompleter

What are the special commands that can be given to TabNine?

To enter any of these commands, simply type them into your text editor while TabNine is running.

  • TabNine::config opens the configuration panel.
  • TabNine::version gives the current TabNine version.
  • TabNine::config_dir gives the directory where TabNine stores its configuration.
  • TabNine::active checks whether TabNine has been activated.
  • TabNine::restart restarts TabNine.
  • TabNine::become_beta_tester causes you to receive beta releases of TabNine.
  • TabNine::disable_auto_update disables automatic updates, which are enabled by default.
  • TabNine::enable_auto_update enables automatic updates.
  • TabNine::ignore_semantic causes all semantic completion error messages to be ignored.
  • TabNine::unignore_semantic stops all semantic completion error messages from being ignored.
  • TabNine::sem enables semantic completion for the current language.
  • TabNine::no_sem disables semantic completion for the current language.