mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-26 11:14:08 +00:00
65 lines
2.2 KiB
VimL
65 lines
2.2 KiB
VimL
" go
|
|
" vim-go
|
|
" run :GoBuild or :GoTestCompile based on the go file
|
|
function! s:build_go_files()
|
|
let l:file = expand('%')
|
|
if l:file =~# '^\f\+_test\.go$'
|
|
call go#test#Test(0, 1)
|
|
elseif l:file =~# '^\f\+\.go$'
|
|
call go#cmd#Build(0)
|
|
endif
|
|
endfunction
|
|
|
|
let g:go_list_type = "quickfix"
|
|
let g:go_fmt_command = "goimports"
|
|
let g:go_fmt_fail_silently = 1
|
|
|
|
let g:go_highlight_types = 1
|
|
let g:go_highlight_fields = 1
|
|
let g:go_highlight_functions = 1
|
|
let g:go_highlight_methods = 1
|
|
let g:go_highlight_operators = 1
|
|
let g:go_highlight_build_constraints = 1
|
|
let g:go_highlight_structs = 1
|
|
let g:go_highlight_generate_tags = 1
|
|
let g:go_highlight_space_tab_error = 0
|
|
let g:go_highlight_array_whitespace_error = 0
|
|
let g:go_highlight_trailing_whitespace_error = 0
|
|
let g:go_highlight_extra_types = 1
|
|
|
|
autocmd BufNewFile,BufRead *.go setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=4
|
|
|
|
augroup completion_preview_close
|
|
autocmd!
|
|
if v:version > 703 || v:version == 703 && has('patch598')
|
|
autocmd CompleteDone * if !&previewwindow && &completeopt =~ 'preview' | silent! pclose | endif
|
|
endif
|
|
augroup END
|
|
|
|
" for go files
|
|
augroup go
|
|
au!
|
|
au Filetype go command! -bang A call go#alternate#Switch(<bang>0, 'edit')
|
|
au Filetype go command! -bang AV call go#alternate#Switch(<bang>0, 'vsplit')
|
|
au Filetype go command! -bang AS call go#alternate#Switch(<bang>0, 'split')
|
|
au Filetype go command! -bang AT call go#alternate#Switch(<bang>0, 'tabe')
|
|
|
|
au FileType go nmap <Leader>dd <Plug>(go-def-vertical)
|
|
au FileType go nmap <Leader>dv <Plug>(go-doc-vertical)
|
|
au FileType go nmap <Leader>db <Plug>(go-doc-browser)
|
|
|
|
au FileType go nmap <leader>r <Plug>(go-run)
|
|
au FileType go nmap <leader>t <Plug>(go-test)
|
|
au FileType go nmap <Leader>gt <Plug>(go-coverage-toggle)
|
|
au FileType go nmap <Leader>i <Plug>(go-info)
|
|
au FileType go nmap <silent> <Leader>l <Plug>(go-metalinter)
|
|
au FileType go nmap <C-g> :GoDecls<cr>
|
|
au FileType go nmap <leader>dr :GoDeclsDir<cr>
|
|
au FileType go imap <C-g> <esc>:<C-u>GoDecls<cr>
|
|
au FileType go imap <leader>dr <esc>:<C-u>GoDeclsDir<cr>
|
|
au FileType go nmap <leader>rb :<C-u>call <SID>build_go_files()<CR>
|
|
augroup END
|
|
|
|
"" ale
|
|
:call extend(g:ale_linters, {"go": [ 'golint', 'go vet' ]})
|