vim-signify/autoload/sy/debug.vim

77 lines
1.9 KiB
VimL

" vim: et sw=2 sts=2
scriptencoding utf-8
" Function: #list_active_buffers {{{1
function! sy#debug#list_active_buffers() abort
for b in range(1, bufnr('$'))
if !buflisted(b) || empty(getbufvar(b, 'sy'))
continue
endif
let sy = copy(getbufvar(b, 'sy'))
let path = remove(sy, 'path')
echo "\n". path ."\n". repeat('=', strlen(path))
for k in ['active', 'buffer', 'type', 'stats', 'id_top']
if k == 'stats'
echo printf("%10s = %d added, %d changed, %d removed\n",
\ k,
\ sy.stats[0],
\ sy.stats[1],
\ sy.stats[2])
else
echo printf("%10s = %s\n", k, sy[k])
endif
endfor
if empty(sy.hunks)
echo printf("%10s = %s\n", 'hunks', '[]')
else
for i in range(len(sy.hunks))
if i == 0
echo printf("%10s = start: %d, end: %d, IDs: %s\n",
\ 'hunks',
\ sy.hunks[i].start,
\ sy.hunks[i].end,
\ string(sy.hunks[i].ids))
else
echo printf("%20s: %d, %s: %d, %s: %s\n",
\ 'start', sy.hunks[i].start,
\ 'end', sy.hunks[i].end,
\ 'IDs', string(sy.hunks[i].ids))
endif
endfor
endif
endfor
endfunction
" Function #verbose_diff_cmd {{{1
function! sy#debug#verbose_diff_cmd() abort
if exists('b:sy') && b:sy.type != 'unknown'
let output = sy#repo#get_diff_{b:sy.type}()[1]
echohl Statement
echo 'Command: '. b:sy_info.cmd
echohl NONE
if empty(output)
echo 'Output: []'
else
echo 'Output:'
for line in split(output, '\n')
if line[0] == '+'
echohl DiffAdd
elseif line[0] == '-'
echohl DiffDelete
else
echohl NONE
endif
echo line
echohl NONE
endfor
endif
else
echo 'signify: I cannot detect any changes!'
endif
endfunction