12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- if exists("g:go_loaded_gosnippets")
- finish
- endif
- let g:go_loaded_gosnippets = 1
- function! s:GoUltiSnips() abort
- if get(g:, 'did_plugin_ultisnips') isnot 1
- return
- endif
- if !exists("g:UltiSnipsSnippetDirectories")
- let g:UltiSnipsSnippetDirectories = ["gosnippets/UltiSnips"]
- else
- let g:UltiSnipsSnippetDirectories += ["gosnippets/UltiSnips"]
- endif
- endfunction
- function! s:GoNeosnippet() abort
- if get(g:, 'loaded_neosnippet') isnot 1
- return
- endif
- let g:neosnippet#enable_snipmate_compatibility = 1
- let l:gosnippets_dir = globpath(&rtp, 'gosnippets/snippets')
- if type(g:neosnippet#snippets_directory) == type([])
- let g:neosnippet#snippets_directory += [l:gosnippets_dir]
- elseif type(g:neosnippet#snippets_directory) == type("")
- if strlen(g:neosnippet#snippets_directory) > 0
- let g:neosnippet#snippets_directory = g:neosnippet#snippets_directory . "," . l:gosnippets_dir
- else
- let g:neosnippet#snippets_directory = l:gosnippets_dir
- endif
- endif
- endfunction
- function! s:GoMinisnip() abort
- if get(g:, 'loaded_minisnip') isnot 1
- return
- endif
- if exists('g:minisnip_dir')
- let g:minisnip_dir .= go#util#PathListSep() . globpath(&rtp, 'gosnippets/minisnip')
- else
- let g:minisnip_dir = globpath(&rtp, 'gosnippets/minisnip')
- endif
- endfunction
- let s:engine = get(g:, 'go_snippet_engine', 'automatic')
- if s:engine is? "automatic"
- if get(g:, 'did_plugin_ultisnips') is 1
- call s:GoUltiSnips()
- elseif get(g:, 'loaded_neosnippet') is 1
- call s:GoNeosnippet()
- elseif get(g:, 'loaded_minisnip') is 1
- call s:GoMinisnip()
- endif
- elseif s:engine is? "ultisnips"
- call s:GoUltiSnips()
- elseif s:engine is? "neosnippet"
- call s:GoNeosnippet()
- elseif s:engine is? "minisnip"
- call s:GoMinisnip()
- endif
- " vim: sw=2 ts=2 et
|