1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-24 02:20:03 +08:00
SpaceVim/docs/layers/autocomplete.md
2017-12-02 23:23:58 +08:00

4.7 KiB
Raw Blame History

title description
SpaceVim autocomplete layer This layer provides auto-completion to SpaceVim

SpaceVim Layers: autocomplete

Description

This layer provides auto-completion to SpaceVim.

The following completion engines are supported:

Snippets are supported via neosnippet.

Install

To use this configuration layer, add it to your custom configuration file.

call SpaceVim#layers#load('autocomplete')

Configuration

Key bindings

You can customize the user experience of auto-completion with the following layer variables:

  1. auto-completion-return-key-behavior set the action to perform when the Return/Enter key is pressed, the possible values are:
  • complete completes with the current selection
  • smart completes with current selection and expand snippet or argvs
  • nil
  1. auto-completion-tab-key-behavior set the action to perform when the TAB key is pressed, the possible values are:
  • smart cycle candidates, expand snippets, jump parameters
  • complete completes with the current selection
  • cycle completes the common prefix and cycle between candidates
  • nil insert a carriage return
  1. 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.
  2. auto-completion-complete-with-key-sequence-delay is the number of seconds to wait for the auto-completion key sequence to be entered. The default value is 0.1 seconds.

The default configuration of the layer is:

call SpaceVim#layers#load('autocomplete', {
        \ 'auto-completion-return-key-behavior' : 'nil',
        \ 'auto-completion-tab-key-behavior' : 'smart',
        \ 'auto-completion-complete-with-key-sequence' : 'nil',
        \ 'auto-completion-complete-with-key-sequence-delay' : 0.1,
        \ })

jk is a good candidate for auto-completion-complete-with-key-sequence if you dont use it already.

Snippets directories

The following snippets or directories are added by default:

  • Shougo/neosnippet-snippets : neosnippet's default snippets.
  • honza/vim-snippets : extra snippets
  • ~/.SpaceVim/snippets/ : SpaceVim runtime snippets.
  • ~/.SpaceVim.d/snippets/ : custom global snippets.
  • ./.SpaceVim.d/snippets/ : custom local snippets (project's snippets)

You can provide additional directories by setting the variable g:neosnippet#snippets_directory which can take a string in case of a single path or a list of paths.

Show snippets in auto-completion popup

By default, snippets are shown in the auto-completion popup. To disable this feature, set the variable auto-completion-enable-snippets-in-popup to 0.

call SpaceVim#layers#load('autocomplete', {
        \ 'auto-completion-enable-snippets-in-popup' : 0
        \ })

LSP supported

Key bindings

auto-complete

Key bindings Description
<C-n> select next candidate
<C-p> select previous candidate
<Tab> base on auto-completion-tab-key-behavior
<S-Tab> select previous candidate
<Return> base on auto-completion-return-key-behavior

Neosnippet

Key Binding Description
M-/ Expand a snippet if text before point is a prefix of a snippet
SPC i s List all current yasnippets for inserting