52 lines
1.4 KiB
VimL
Executable file
52 lines
1.4 KiB
VimL
Executable file
" don't spam the user when Vim is started in Vi compatibility mode
|
|
let s:cpo_save = &cpo
|
|
set cpo&vim
|
|
|
|
let s:templatepath = go#util#Join(expand('<sfile>:p:h:h:h'), '.github', 'ISSUE_TEMPLATE.md')
|
|
|
|
function! go#issue#New() abort
|
|
let body = go#uri#Encode(s:issuebody())
|
|
let url = "https://github.com/fatih/vim-go/issues/new?body=" . l:body
|
|
call go#util#OpenBrowser(l:url)
|
|
endfunction
|
|
|
|
function! s:issuebody() abort
|
|
let lines = readfile(s:templatepath)
|
|
|
|
let rtrimpat = '[[:space:]]\+$'
|
|
let body = []
|
|
for l in lines
|
|
let body = add(body, l)
|
|
|
|
if l =~ '^<!-- :version'
|
|
redir => out
|
|
silent version
|
|
redir END
|
|
let body = extend(body, split(out, "\n")[0:2])
|
|
elseif l =~ '^<!-- go version -->'
|
|
let [out, err] = go#util#Exec(['go', 'version'])
|
|
let body = add(body, substitute(l:out, rtrimpat, '', ''))
|
|
elseif l =~ '^<!-- go env -->'
|
|
let [out, err] = go#util#Exec(['go', 'env'])
|
|
let body = add(body, substitute(l:out, rtrimpat, '', ''))
|
|
endif
|
|
endfor
|
|
|
|
let body = add(body, "#### vim-go configuration:\n<details><summary>vim-go configuration</summary><br><pre>")
|
|
|
|
for k in keys(g:)
|
|
if k =~ '^go_'
|
|
let body = add(body, 'g:' . k . ' = ' . string(get(g:, k)))
|
|
endif
|
|
endfor
|
|
|
|
let body = add(body, '</pre></details>')
|
|
|
|
return join(body, "\n")
|
|
endfunction
|
|
|
|
" restore Vi compatibility settings
|
|
let &cpo = s:cpo_save
|
|
unlet s:cpo_save
|
|
|
|
" vim: sw=2 ts=2 et
|