# Auto-Completion configuration layer for Spacemacs
**Table of Contents**
- [Colors contribution layer for Spacemacs](#colors-contribution-layer-for-spacemacs)
- [Description](#description)
- [Install](#install)
- [Enable rainbow-identifiers](#enable-rainbow-identifiers)
- [Enable Nyan cat](#enable-nyan-cat)
- [Key bindings](#key-bindings)
- [Rainbow Identifiers](#rainbow-identifiers)
- [Rainbow Mode](#rainbow-mode)
## Description
This layer provides auto-completion to Spacemacs.
The following front-ends are supported:
- [company][]
- [auto-complete][]
**Notes***
- `company` is the most supported and preferred front-end in Spacemacs.
- For a given language, Spacemacs supports one and only one front-end.
## Install
To use this contribution add it to your `~/.spacemacs`
```elisp
(setq-default dotspacemacs-configuration-layers '(auto-completion))
```
### Company variables
To use tab instead of enter to complete your selection,
`dotspacemacs/init` set `auto-completion-use-tab-instead-of-enter` to
`t`, for example:
``` elisp
(setq-default dotspacemacs-configuration-layers
'(auto-completion :variables
auto-completion-use-tab-instead-of-enter t))
```
To enable docstring tooltips set `auto-completion-enable-company-help-tooltip`
to `t`
``` elisp
(setq-default dotspacemacs-configuration-layers
'(auto-completion :variables
auto-completion-enable-company-help-tooltip t))
```
## Key Bindings
### Company
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
### Auto-complete
Key Binding | Description
-------------------|------------------------------------------------------------
C-j | select next candidate
C-k | select previous candidate
TAB | expand selection or select next candidate
S-TAB | select previous candidate
return | complete word, if word is already completed insert a carriage return