# 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
true, for example:
``` elisp
(defun dotspacemacs/init ()
"User initialization for Spacemacs. This function is called at the very
startup."
(setq company-mode-use-tab-instead-of-enter t)
)
```
## Maintainer
This contrib layer was written by and should be maintained by @trishume, everyone else is
welcome to contribute.