1
0
Fork 0
mirror of synced 2024-11-26 18:55:34 -05:00
ultimate-vim/sources_non_forked/vim-go/autoload/go/template.vim

62 lines
2 KiB
VimL
Raw Normal View History

2018-12-17 06:28:27 -05:00
" don't spam the user when Vim is started in Vi compatibility mode
let s:cpo_save = &cpo
set cpo&vim
2016-07-03 07:53:59 -04:00
let s:current_file = expand("<sfile>")
2016-12-27 09:46:49 -05:00
function! go#template#create() abort
2018-06-14 06:31:12 -04:00
let l:go_template_use_pkg = go#config#TemplateUsePkg()
2016-07-03 07:53:59 -04:00
let l:root_dir = fnamemodify(s:current_file, ':h:h:h')
2019-01-08 05:11:54 -05:00
let l:package_name = go#tool#PackageName()
" if we can't figure out any package name (i.e. no Go files in the directory)
" from the directory create the template or use the directory as the name.
if l:package_name == -1
if l:go_template_use_pkg == 1
let l:path = fnamemodify(expand('%:p:h'), ':t')
let l:content = printf("package %s", l:path)
call append(0, l:content)
2017-07-06 08:57:35 -04:00
else
2019-01-08 05:11:54 -05:00
let l:filename = expand('%:t')
if l:filename =~ "_test.go$"
let l:template_file = go#config#TemplateTestFile()
else
let l:template_file = go#config#TemplateFile()
endif
2019-08-22 11:36:17 -04:00
" If template_file is an absolute path, use it as-is. This is to support
" overrides pointing to templates outside of the vim-go plugin dir
if fnamemodify(l:template_file, ':p') != l:template_file
let l:template_file = go#util#Join(l:root_dir, "templates", l:template_file)
endif
silent exe 'keepalt 0r ' . fnameescape(l:template_file)
2017-07-06 08:57:35 -04:00
endif
2016-08-02 08:48:32 -04:00
else
2016-07-03 07:53:59 -04:00
let l:content = printf("package %s", l:package_name)
call append(0, l:content)
endif
2019-01-08 05:11:54 -05:00
" checking that the last line is empty shouldn't be necessary, but for some
" reason the last line isn't the expected empty line when run via tests.
if getline('$') is ''
$delete _
endif
2016-07-03 07:53:59 -04:00
endfunction
2016-12-27 09:46:49 -05:00
function! go#template#ToggleAutoCreate() abort
2018-06-14 06:31:12 -04:00
if go#config#TemplateAutocreate()
call go#config#SetTemplateAutocreate(0)
2016-08-02 08:48:32 -04:00
call go#util#EchoProgress("auto template create disabled")
return
end
2018-06-14 06:31:12 -04:00
call go#config#SetTemplateAutocreate(1)
2016-08-02 08:48:32 -04:00
call go#util#EchoProgress("auto template create enabled")
endfunction
2018-12-17 06:28:27 -05:00
" restore Vi compatibility settings
let &cpo = s:cpo_save
unlet s:cpo_save
2016-07-03 07:53:59 -04:00
" vim: sw=2 ts=2 et