553e85cb15
This is because the list of snippet dirs had our ~/.emacs.d/private/snippets at the end so it doesn't guess that. Something must have changed upstream. Also it's better to have our own custom snippets to be first so as to override the default ones if we pleased. |
||
---|---|---|
.. | ||
config.el | ||
funcs.el | ||
packages.el | ||
README.md |
Auto-Completion configuration layer for Spacemacs
Table of Contents
Description
This layer provides auto-completion to Spacemacs.
The following completion engines are supported:
Snippets are supported via yasnippet.
This layer also configures hippie-expand
.
Install
To use this configuration layer add it to your ~/.spacemacs
(setq-default dotspacemacs-configuration-layers '(auto-completion))
Configuration
Key bindings
You can customize the user experience of auto-completion with the following layer variables:
auto-completion-return-key-behavior
set the action to perform when the
RET key is pressed, the possible values are:
complete
completes with the current selectionnil
does nothing
auto-completion-tab-key-behavior
set the action to perform when the
TAB key is pressed, the possible values are:
complete
completes with the current selectioncycle
completes the common prefix and cycle between candidatesnil
does nothing
auto-completion-complete-with-key-sequence
is a string of two characters
denoting a key sequence that will perform a complete
action if the sequence
as been entered quickly enough. If its value is nil
then the feature is
disabled.
The default configuration of the layer is:
(setq-default dotspacemacs-configuration-layers '(
(auto-completion :variables
auto-completion-return-key-behavior complete
auto-completion-tab-key-behavior cycle
auto-completion-complete-with-key-sequence nil)
))
"jk"
is a good candidate for auto-completion-complete-with-key-sequence
if
you don't use it already.
Tooltips
To enable docstring tooltips set auto-completion-enable-help-tooltip
to t
(setq-default dotspacemacs-configuration-layers
'(auto-completion :variables
auto-completion-enable-help-tooltip t))
Sort results by usage
To enable sorting auto-completion results by their usage frequency set
auto-completion-enable-sort-by-usage
to t
.
This feature is provided by the company-statistics package when company
is used.
The variable has no effect when auto-complete
is used.
(setq-default dotspacemacs-configuration-layers
'(auto-completion :variables
auto-completion-enable-sort-by-usage t))
Enable company or auto-complete globally
By default Spacemacs enables auto-completion explicitly for each supported
major-mode, it means that company
and auto-complete
are not enabled
globally, it allows more flexibility to choose an auto-completion engine
for a given mode.
You may want to enable company globally to get auto-completion
everywhere even in the modes which are not configured by Spacemacs. To do
so, you just have to add (global-company-mode)
in the
dotspacemacs/config
function of your dotfile.
Note that if you want to enable auto-complete
globally you will have to
disable company
first, see the next section to do so.
Replacing company by auto-complete
You can disable company
by adding it to the dotspacemacs-excluded-packages
variable, then you are free to enable auto-complete
globally.
Add auto-completion in a layer
Here is an example to add company
auto-completion to python buffer:
In config.el
:
;; Define the buffer local company backend variable
(spacemacs|defvar-company-backends python-mode)
In packages.el
:
;; Add the relevant packages to the layer
(setq python-packages
'(...
company
company-anaconda
...))
;; Configure the packages
(when (configuration-layer/layer-usedp 'auto-completion)
;; Hook company to python-mode
(defun python/post-init-company ()
(spacemacs|add-company-hook python-mode))
;; Add the backend to the major-mode specific backend list
(defun python/init-company-anaconda ()
(use-package company-anaconda
:if (configuration-layer/package-usedp 'company)
:defer t
:init (push 'company-anaconda company-backends-python-mode))))
Key Bindings
Company
Key Binding | 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