# Company Mode
This contrib layer switches spacemacs to use company-mode for autocompletion.
It automatically uninstalls all auto-complete-mode related packages when you include it.
## Clang Fanciness
In `funcs.el` there are some fancy improvements to `company-clang`.
It includes a hook to load a projects `.clang_complete` file, which is just a text
file with one clang flag per line, a format also used by other text editor clang plugins.
Not only does this allow proper autocomplete on projects with extra includes and flags,
but I also hooked it into flycheck so that the error messages don't complain about missing
header files and skip the actual problems.
Basically, Spacemacs now has better Clang/C++ than any other Emacs config.
## Key Bindings
No Debug | Description
---------------------|------------------------------------------------------------
C-j | go down in company dropdown menu
C-k | go up in company dropdown menu
C-/ | search in company dropdown
C-M-/ | filter the company dropdown menu
C-d | open minibuffer with documentation of thing at point in company dropdown
## Settings
To use tab instead of enter to complete your selection, `dotspacemacs/init` set `company-mode/use-tab-instead-of-enter-to-complete` to true, for example:
```
(defun dotspacemacs/init ()
"User initialization for Spacemacs. This function is called at the very
startup."
(setq company-mode/use-tab-instead-of-enter-to-complete t)
)
```
## Maintainer
This contrib layer was written by and should be maintained by @trishume, everyone else is
welcome to contribute.