dotfiles/vim/after/ftplugin/go.vim

50 lines
1.7 KiB
VimL

map <Leader>gb :GoBuild<CR>
map <Leader>i :GoImplements<CR>
map <Leader>^ :GoAlternate<CR>
map <Leader>d :GoDoc<CR>
map <leader>gv <esc>:vsplit<bar>:GoAlternate!<cr>
map <leader>gs <esc>:split<bar>:GoAlternate!<cr>
map <leader>gt <esc>:w <bar> :GoTest<cr>
map <leader>gf <esc>:w <bar> :GoTestFunc<cr>
nnoremap <silent> gd :GoToDefinition
nnoremap <silent> dr :GoDebugBreakpoint<cr>
nnoremap <silent> d! :GoDebugStart<cr>
nnoremap <silent> dc :GoDebugContinue<cr>
nnoremap <silent> dq :GoDebugStop<cr>
nnoremap <silent> dn :GoDebugNext<cr>
nnoremap <silent> ds :GoDebugStep<cr>
" Vim-Go configuration:
let g:go_fmt_autosave = 0
" Vim-Go seems to handle fix-on-save better than ALE:
let g:go_imports_autosave = 1
let g:go_auto_sameids = 0
let g:go_auto_type_info = 0
let g:go_info_mode = "gopls"
let g:go_highlight_functions = 1
let g:go_term_enabled = 0
let g:go_term_close_on_exit = 0
let g:go_gopls_analyses = {
\ 'composites': v:false,
\ }
let g:go_fmt_options = {
\ 'goimports': '-local github.com/sensiblecodeio/cantabular',
\ }
autocmd BufNewFile,BufRead *.gohtml set syntax=gohtmltmpl
autocmd BufNewFile,BufRead *.go nmap <silent> <leader>g6 :GoAlternate!<cr>
iabbrev fmtpl fmt.Println("")<esc>hi
iabbrev fmtpf fmt.Printf("\n")<esc>3hi
iabbrev mk make([]MyType, 0)<esc>9h
iabbrev wr w http.ResponseWriter, r *http.Request
iabbrev fttt <ESC>ccfunc TestSomething(t *testing.T) {<cr>}<esc>k9l
iabbrev ttt t *testing.T
iabbrev errP <esc>ccif err != nil {<cr>panic(err)<cr>}
iabbrev errl <esc>ccif err != nil {<cr>log.Println(err)<cr>}
iabbrev errp <esc>ccif err != nil {<cr>fmt.Println(err)<cr>}
iabbrev errr <esc>ccif err != nil {<cr>return err<cr>}
iabbrev defr <esc>ccdefer func() {<cr><cr>}()<esc>ki