-
-
Notifications
You must be signed in to change notification settings - Fork 959
Create custom source
Qiming zhao edited this page Jun 16, 2018
·
14 revisions
Custom vim completion source could be created with simple steps.
Assume foo
as the source name.
-
Create folder
autoload/coc/source
in any of your vimruntimepath
, the default user runtimepath of neovim is$XDG_CONFIG_HOME/nvim
-
Create a file name
foo.vim
in folderautoload/coc/source
-
Add content:
function! coc#source#foo#init() abort " options of current source return { \'shortcut': 'foo', \'priority': 3, \} endfunction function! coc#source#foo#complete(opt, cb) abort let items = [{ \ "word": "foo" \}, { \ "word": "bar" \}] call a:cb(items) endfunction
That's all you need to get a basic custom completion source works.
The options are returned by coc#source#{name}#init
function, available options are:
-
shortcut
: used by menu, use source name if omitted. -
priority
: a number for adjust sort results completion items, should be number of 0-99, default is1
. -
filetypes
: array of filetype names this source should be triggered, available for all filetypes if ommited. -
firstMatch
: if not falsy, only the completion item that have first letter matched with user input would be shown.
all options are optional.
id: number // unqiue number
bufnr: number // current buffer number
line: string // current line string
col: number // the start column number of input
input: string // the input string
filetype: string // filetype of current buffer
filepath: string // fullpath of current buffer
changedtick: number // b:changedtick when start completion
triggerCharacter: string // the trigger character, could be empty string of single character
colnr: number // column number of cursor
linenr: number // line number of cursor