if exists("g:go_loaded_gosnippets")
  finish
endif
let g:go_loaded_gosnippets = 1

" by default UltiSnips
if !exists("g:go_snippet_engine")
  let g:go_snippet_engine = "ultisnips"
endif

function! s:GoUltiSnips()
  if globpath(&rtp, 'plugin/UltiSnips.vim') == ""
    return
  endif

  if !exists("g:UltiSnipsSnippetDirectories")
    let g:UltiSnipsSnippetDirectories = ["gosnippets/UltiSnips"]
  else
    let g:UltiSnipsSnippetDirectories += ["gosnippets/UltiSnips"]
  endif
endfunction

function! s:GoNeosnippet()
  if globpath(&rtp, 'plugin/neosnippet.vim') == ""
    return
  endif

  let g:neosnippet#enable_snipmate_compatibility = 1

  let gosnippets_dir = globpath(&rtp, 'gosnippets/snippets')
  if type(g:neosnippet#snippets_directory) == type([])
    let g:neosnippet#snippets_directory += [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 . "," . gosnippets_dir
    else
      let g:neosnippet#snippets_directory = gosnippets_dir
    endif
  endif
endfunction

if g:go_snippet_engine == "ultisnips"
  call s:GoUltiSnips()
elseif g:go_snippet_engine == "neosnippet"
  call s:GoNeosnippet()
endif

" vim: sw=2 ts=2 et
