24 lines
788 B
VimL
24 lines
788 B
VimL
function! asyncomplete#sources#ultisnips#get_source_options(opts)
|
|
let l:defaults={
|
|
\ 'name': 'ultisnips',
|
|
\ 'completor': function('asyncomplete#sources#ultisnips#completor'),
|
|
\ 'allowlist': ['*']
|
|
\ }
|
|
return extend(l:defaults, a:opts)
|
|
endfunction
|
|
|
|
function! asyncomplete#sources#ultisnips#completor(opt, ctx)
|
|
let l:snips = UltiSnips#SnippetsInCurrentScope()
|
|
|
|
let l:matches = []
|
|
|
|
let l:col = a:ctx['col']
|
|
let l:typed = a:ctx['typed']
|
|
|
|
let l:kwlen = len(l:typed)
|
|
|
|
let l:matches = map(keys(l:snips),'{"word":v:val,"dup":1,"icase":1,"menu": "Snips: " . l:snips[v:val]}')
|
|
let l:startcol = l:col - l:kwlen
|
|
|
|
call asyncomplete#complete(a:opt['name'], a:ctx, l:startcol, l:matches)
|
|
endfunction
|