I broke up with neovim....vim is my best friend now

This commit is contained in:
LinlyBoi
2023-04-30 08:14:07 +03:00
parent 0d185449c5
commit 4a4a6b1e81
5245 changed files with 468325 additions and 25 deletions

View File

@@ -0,0 +1,69 @@
let s:cache = {}
"
" vsnip#source#user_snippet#find.
"
function! vsnip#source#user_snippet#find(bufnr) abort
let l:sources = []
for l:path in s:get_source_paths(a:bufnr)
if !has_key(s:cache, l:path)
let s:cache[l:path] = vsnip#source#create(l:path)
endif
call add(l:sources, s:cache[l:path])
endfor
return l:sources
endfunction
"
" vsnip#source#user_snippet#refresh.
"
function! vsnip#source#user_snippet#refresh(path) abort
if has_key(s:cache, a:path)
unlet s:cache[a:path]
endif
endfunction
function! s:get_source_dirs(bufnr) abort
let l:dirs = []
let l:buf_dir = getbufvar(a:bufnr, 'vsnip_snippet_dir', v:null)
if l:buf_dir isnot v:null
let l:dirs += [l:buf_dir]
endif
let l:dirs += getbufvar(a:bufnr, 'vsnip_snippet_dirs', [])
let l:dirs += [g:vsnip_snippet_dir]
let l:dirs += g:vsnip_snippet_dirs
return l:dirs
endfunction
"
" get_source_paths.
"
function! s:get_source_paths(bufnr) abort
let l:filetypes = vsnip#source#filetypes(a:bufnr)
let l:paths = []
for l:dir in s:get_source_dirs(a:bufnr)
for l:filetype in l:filetypes
let l:path = resolve(expand(printf('%s/%s.json', l:dir, l:filetype)))
if has_key(s:cache, l:path) || filereadable(l:path)
call add(l:paths, l:path)
endif
endfor
endfor
return l:paths
endfunction
"
" vsnip#source#user_snippet#dirs
"
fun! vsnip#source#user_snippet#dirs(...) abort
return s:get_source_dirs(a:0 ? a:1 : bufnr(''))
endfun
"
" vsnip#source#user_snippet#paths
"
fun! vsnip#source#user_snippet#paths(...) abort
return s:get_source_paths(a:0 ? a:1 : bufnr(''))
endfun