dotfiles/vim/vim.xdg.symlink/autoload/asyncomplete/sources/ultisnips.vim

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