function! gitgutter#debug#debug() " Open a scratch buffer vsplit __GitGutter_Debug__ normal! ggdG setlocal buftype=nofile setlocal bufhidden=delete setlocal noswapfile call gitgutter#debug#vim_version() call gitgutter#debug#separator() call gitgutter#debug#git_version() call gitgutter#debug#separator() call gitgutter#debug#option('updatetime') call gitgutter#debug#option('shell') call gitgutter#debug#option('shellcmdflag') call gitgutter#debug#option('shellpipe') call gitgutter#debug#option('shellquote') call gitgutter#debug#option('shellredir') call gitgutter#debug#option('shellslash') call gitgutter#debug#option('shelltemp') call gitgutter#debug#option('shelltype') call gitgutter#debug#option('shellxescape') call gitgutter#debug#option('shellxquote') endfunction function! gitgutter#debug#separator() call gitgutter#debug#output('') endfunction function! gitgutter#debug#vim_version() redir => version_info silent execute 'version' redir END call gitgutter#debug#output(split(version_info, '\n')[0:2]) endfunction function! gitgutter#debug#git_version() let v = system('git --version') call gitgutter#debug#output( substitute(v, '\n$', '', '') ) endfunction function! gitgutter#debug#option(name) if exists('+' . a:name) let v = eval('&' . a:name) call gitgutter#debug#output(a:name . '=' . v) " redir => output " silent execute "verbose set " . a:name . "?" " redir END " call gitgutter#debug#output(a:name . '=' . output) else call gitgutter#debug#output(a:name . ' [n/a]') end endfunction function! gitgutter#debug#output(text) call append(line('$'), a:text) endfunction function! gitgutter#debug#log(message) let msg = type(a:message) == 1 ? split(a:message, '\n') : a:message call writefile(msg, 'gitgutter.log', 'a') endfunction