--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/cal Wed Mar 13 13:33:42 2019 -0400
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+ncal -Mb "$@"
--- a/vim/vimrc Tue Mar 12 12:24:28 2019 -0400
+++ b/vim/vimrc Wed Mar 13 13:33:42 2019 -0400
@@ -1404,11 +1404,33 @@
" }}}
" Go {{{
+function! GetGoFold(lnum)
+ let line = getline(a:lnum)
+ let prev = getline(a:lnum-1)
+
+ if line =~# '\v^//'
+ if prev =~# '\v^//'
+ return '1'
+ else
+ return '>1'
+ endif
+ elseif line =~# '\v^\S.*[{(]$'
+ return '>1'
+ elseif line =~#'\v^[})]$'
+ return '1'
+ elseif line == "" && prev =~#'\v^[})]$'
+ return '<1'
+ else
+ return '='
+ endif
+endfunction
+
augroup ft_go
au!
au FileType go setlocal shiftwidth=8
- au FileType go setlocal foldmethod=syntax
+ au FileType go setlocal foldmethod=expr
+ au FileType go setlocal foldexpr=GetGoFold(v:lnum)
au FileType go nnoremap <buffer> <silent> M :GoDoc<cr>
au FileType go nnoremap <buffer> <localleader>t :GoInfo<cr>
au FileType go nnoremap <buffer> <localleader>h :GoDocBrowser<cr>
@@ -1416,6 +1438,7 @@
" this language is incredible
au FileType go iabbrev <buffer> ernil if err != nil {<cr>return nil, err<esc>jA
+ au FileType go iabbrev <buffer> erpan if err != nil {<cr>panic(err)<esc>jA
augroup END
" }}}