Some completion engines are disabled in this package. But you can still use them
with some additional work.

List of supported semantic code completion engines in this package:

| Language       | Engine                 | Status                     |
|----------------|------------------------|----------------------------|
| C/C++          | libclang1              | Supported out of the box   |
| Python 2       | JediHTTP, python-jedi  | Supported out of the box   |
| Python 3       | JediHTTP, python3-jedi | See Python 3 completion    |
| TypeScript     | node-typescript        | Supported out of the box   |
| Go             | gocode and godef       | See Go completion          |
| Rust           | racerd                 | See Rust completion        |
| C#             | OmniSharp              | See C# completion          |
| JavaScript     | node-tern              | See JavaScript completion  |


Python 3 completion
-------------------

Python 2 completion is supported out of box, and ycmd started using JediHTTP
wrapper for Python 3 semantic code completion. You need to install following
packages for python3 completion:

  * python3-waitress
  * python3-jedi
  * python3-bottle
  * python3-requests

And set "python_binary_path": "/usr/bin/python3" in
/usr/lib/ycmd/ycmd/default_settings.json to enable python3 semantic code
completion engine.



Go completion
-------------

golang semantic code completion is disabled since ycmd (0+20160303+git206efaf).
ycmd started using godef along with gocode for go completion, and godef is not
available in Debian. You can still use go completion by compiling godef. First
install gocode package and get godef and build it. Set "gocode_binary_path" and
"godef_binary_path" in /usr/lib/ycmd/ycmd/default_settings.json to enable
golang semantic completion engine.



Rust completion
---------------

You can use rust completion by installing racerd and Rust source. Get racerd
and build it with cargo, and set "rust_src_path" and "racerd_binary_path"
in /usr/lib/ycmd/ycmd/default_settings.json



C# completion
-------------

You need mono to build omnisharp-server. Get omnisharp-server from
https://github.com/OmniSharp/omnisharp-server and build it with mono. Put
OmniSharp.exe into /usr/local/bin directory.



JavaScript completion
---------------------

ycmd patched in this package to provide easy JavaScript semantic completion.
Install npm package and install tern package with npm:

  $ npm install tern

This command will install tern package into $HOME/node_modules/tern directory.
ycmd will use this directory for tern based JavaScript semantic code
completion.
