Add :SignifyDebugUnknown
This commit is contained in:
parent
a58fbe93df
commit
a05b780c33
@ -47,7 +47,7 @@ function! sy#debug#list_active_buffers() abort
|
|||||||
endfor
|
endfor
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Function #verbose_diff_cmd {{{1
|
" Function: #verbose_diff_cmd {{{1
|
||||||
function! sy#debug#verbose_diff_cmd() abort
|
function! sy#debug#verbose_diff_cmd() abort
|
||||||
if exists('b:sy') && b:sy.type != 'unknown'
|
if exists('b:sy') && b:sy.type != 'unknown'
|
||||||
let output = sy#repo#get_diff_{b:sy.type}()[1]
|
let output = sy#repo#get_diff_{b:sy.type}()[1]
|
||||||
|
@ -27,61 +27,61 @@ endfunction
|
|||||||
|
|
||||||
" Function: #get_diff_git {{{1
|
" Function: #get_diff_git {{{1
|
||||||
function! sy#repo#get_diff_git() abort
|
function! sy#repo#get_diff_git() abort
|
||||||
let diff = s:run(s:diffcmds.git, b:sy_info.file, 1)
|
let diff = s:run(s:vcs_cmds.git, b:sy_info.file, 1)
|
||||||
return v:shell_error ? [0, ''] : [1, diff]
|
return v:shell_error ? [0, ''] : [1, diff]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Function: #get_diff_hg {{{1
|
" Function: #get_diff_hg {{{1
|
||||||
function! sy#repo#get_diff_hg() abort
|
function! sy#repo#get_diff_hg() abort
|
||||||
let diff = s:run(s:diffcmds.hg, b:sy_info.path, 1)
|
let diff = s:run(s:vcs_cmds.hg, b:sy_info.path, 1)
|
||||||
return v:shell_error ? [0, ''] : [1, diff]
|
return v:shell_error ? [0, ''] : [1, diff]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Function: #get_diff_svn {{{1
|
" Function: #get_diff_svn {{{1
|
||||||
function! sy#repo#get_diff_svn() abort
|
function! sy#repo#get_diff_svn() abort
|
||||||
let diff = s:run(s:diffcmds.svn, b:sy_info.path, 0)
|
let diff = s:run(s:vcs_cmds.svn, b:sy_info.path, 0)
|
||||||
return v:shell_error ? [0, ''] : [1, diff]
|
return v:shell_error ? [0, ''] : [1, diff]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Function: #get_diff_bzr {{{1
|
" Function: #get_diff_bzr {{{1
|
||||||
function! sy#repo#get_diff_bzr() abort
|
function! sy#repo#get_diff_bzr() abort
|
||||||
let diff = s:run(s:diffcmds.bzr, b:sy_info.path, 0)
|
let diff = s:run(s:vcs_cmds.bzr, b:sy_info.path, 0)
|
||||||
return (v:shell_error =~ '[012]') ? [1, diff] : [0, '']
|
return (v:shell_error =~ '[012]') ? [1, diff] : [0, '']
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Function: #get_diff_darcs {{{1
|
" Function: #get_diff_darcs {{{1
|
||||||
function! sy#repo#get_diff_darcs() abort
|
function! sy#repo#get_diff_darcs() abort
|
||||||
let diff = s:run(s:diffcmds.darcs, b:sy_info.path, 1)
|
let diff = s:run(s:vcs_cmds.darcs, b:sy_info.path, 1)
|
||||||
return v:shell_error ? [0, ''] : [1, diff]
|
return v:shell_error ? [0, ''] : [1, diff]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Function: #get_diff_fossil {{{1
|
" Function: #get_diff_fossil {{{1
|
||||||
function! sy#repo#get_diff_fossil() abort
|
function! sy#repo#get_diff_fossil() abort
|
||||||
let diff = s:run(s:diffcmds.fossil, b:sy_info.path, 1)
|
let diff = s:run(s:vcs_cmds.fossil, b:sy_info.path, 1)
|
||||||
return v:shell_error ? [0, ''] : [1, diff]
|
return v:shell_error ? [0, ''] : [1, diff]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Function: #get_diff_cvs {{{1
|
" Function: #get_diff_cvs {{{1
|
||||||
function! sy#repo#get_diff_cvs() abort
|
function! sy#repo#get_diff_cvs() abort
|
||||||
let diff = s:run(s:diffcmds.cvs, b:sy_info.file, 1)
|
let diff = s:run(s:vcs_cmds.cvs, b:sy_info.file, 1)
|
||||||
return ((v:shell_error == 1) && (diff =~ '+++')) ? [1, diff] : [0, '']
|
return ((v:shell_error == 1) && (diff =~ '+++')) ? [1, diff] : [0, '']
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Function: #get_diff_rcs {{{1
|
" Function: #get_diff_rcs {{{1
|
||||||
function! sy#repo#get_diff_rcs() abort
|
function! sy#repo#get_diff_rcs() abort
|
||||||
let diff = s:run(s:diffcmds.rcs, b:sy_info.path, 0)
|
let diff = s:run(s:vcs_cmds.rcs, b:sy_info.path, 0)
|
||||||
return v:shell_error ? [0, ''] : [1, diff]
|
return v:shell_error ? [0, ''] : [1, diff]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Function: #get_diff_accurev {{{1
|
" Function: #get_diff_accurev {{{1
|
||||||
function! sy#repo#get_diff_accurev() abort
|
function! sy#repo#get_diff_accurev() abort
|
||||||
let diff = s:run(s:diffcmds.accurev, b:sy_info.file, 1)
|
let diff = s:run(s:vcs_cmds.accurev, b:sy_info.file, 1)
|
||||||
return (v:shell_error != 1) ? [0, ''] : [1, diff]
|
return (v:shell_error != 1) ? [0, ''] : [1, diff]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Function: #get_diff_perforce {{{1
|
" Function: #get_diff_perforce {{{1
|
||||||
function! sy#repo#get_diff_perforce() abort
|
function! sy#repo#get_diff_perforce() abort
|
||||||
let diff = s:run(s:diffcmds.perforce, b:sy_info.path, 0)
|
let diff = s:run(s:vcs_cmds.perforce, b:sy_info.path, 0)
|
||||||
return v:shell_error ? [0, ''] : [1, diff]
|
return v:shell_error ? [0, ''] : [1, diff]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@ -94,13 +94,57 @@ function! sy#repo#get_stats() abort
|
|||||||
return b:sy.stats
|
return b:sy.stats
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
" Function: #debug_detection {{{1
|
||||||
|
function! sy#repo#debug_detection()
|
||||||
|
if !exists('b:sy')
|
||||||
|
echomsg 'signify: I cannot detect any changes!'
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
" Function: s:run {{{1
|
let vcs_args = {
|
||||||
function! s:run(cmd, path, do_switch_dir) abort
|
\ 'git': [s:vcs_cmds.git, b:sy_info.file, 1],
|
||||||
|
\ 'hg': [s:vcs_cmds.hg, b:sy_info.path, 1],
|
||||||
|
\ 'svn': [s:vcs_cmds.svn, b:sy_info.path, 0],
|
||||||
|
\ 'darcs': [s:vcs_cmds.darcs, b:sy_info.path, 1],
|
||||||
|
\ 'bzr': [s:vcs_cmds.bzr, b:sy_info.path, 0],
|
||||||
|
\ 'fossil': [s:vcs_cmds.fossil, b:sy_info.path, 1],
|
||||||
|
\ 'cvs': [s:vcs_cmds.cvs, b:sy_info.file, 1],
|
||||||
|
\ 'rcs': [s:vcs_cmds.rcs, b:sy_info.path, 0],
|
||||||
|
\ 'accurev': [s:vcs_cmds.accurev, b:sy_info.file, 1],
|
||||||
|
\ 'perforce': [s:vcs_cmds.perforce, b:sy_info.path, 0],
|
||||||
|
\ }
|
||||||
|
|
||||||
|
for vcs in s:vcs_list
|
||||||
|
let cmd = s:expand_cmd(vcs_args[vcs][0], vcs_args[vcs][1])
|
||||||
|
echohl Statement
|
||||||
|
echo cmd
|
||||||
|
echo repeat('=', len(cmd))
|
||||||
|
echohl NONE
|
||||||
|
|
||||||
|
let diff = call('s:run', vcs_args[vcs])
|
||||||
|
if v:shell_error
|
||||||
|
echohl ErrorMsg
|
||||||
|
echo diff
|
||||||
|
echohl NONE
|
||||||
|
else
|
||||||
|
echo empty(diff) ? "<none>" : diff
|
||||||
|
endif
|
||||||
|
echo "\n"
|
||||||
|
endfor
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:expand_cmd {{{1
|
||||||
|
function! s:expand_cmd(cmd, path) abort
|
||||||
let cmd = substitute(a:cmd, '%f', a:path, '')
|
let cmd = substitute(a:cmd, '%f', a:path, '')
|
||||||
let cmd = substitute(cmd, '%d', s:difftool, '')
|
let cmd = substitute(cmd, '%d', s:difftool, '')
|
||||||
let cmd = substitute(cmd, '%n', s:devnull, '')
|
let cmd = substitute(cmd, '%n', s:devnull, '')
|
||||||
let b:sy_info.cmd = cmd
|
let b:sy_info.cmd = cmd
|
||||||
|
return cmd
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Function: s:run {{{1
|
||||||
|
function! s:run(cmd, path, do_switch_dir)
|
||||||
|
let cmd = s:expand_cmd(a:cmd, a:path)
|
||||||
|
|
||||||
if a:do_switch_dir
|
if a:do_switch_dir
|
||||||
try
|
try
|
||||||
@ -147,7 +191,7 @@ if empty(s:vcs_list)
|
|||||||
let s:vcs_list = keys(filter(s:vcs_dict, 'executable(v:val)'))
|
let s:vcs_list = keys(filter(s:vcs_dict, 'executable(v:val)'))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let s:diffcmds = {
|
let s:vcs_cmds = {
|
||||||
\ 'git': 'git diff --no-color --no-ext-diff -U0 -- %f',
|
\ 'git': 'git diff --no-color --no-ext-diff -U0 -- %f',
|
||||||
\ 'hg': 'hg diff --config extensions.color=! --config defaults.diff= --nodates -U0 -- %f',
|
\ 'hg': 'hg diff --config extensions.color=! --config defaults.diff= --nodates -U0 -- %f',
|
||||||
\ 'svn': 'svn diff --diff-cmd %d -x -U0 -- %f',
|
\ 'svn': 'svn diff --diff-cmd %d -x -U0 -- %f',
|
||||||
@ -161,7 +205,7 @@ let s:diffcmds = {
|
|||||||
\ }
|
\ }
|
||||||
|
|
||||||
if exists('g:signify_vcs_cmds')
|
if exists('g:signify_vcs_cmds')
|
||||||
call extend(s:diffcmds, g:signify_vcs_cmds)
|
call extend(s:vcs_cmds, g:signify_vcs_cmds)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let s:difftool = sy#util#escape(s:difftool)
|
let s:difftool = sy#util#escape(s:difftool)
|
||||||
|
@ -315,6 +315,17 @@ Outputs debug info for all managed buffers.
|
|||||||
<
|
<
|
||||||
Print the diff command for the current buffer and its output.
|
Print the diff command for the current buffer and its output.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
*signify-:SignifyDebugUnknown*
|
||||||
|
>
|
||||||
|
:SignifyDebugUnknown
|
||||||
|
<
|
||||||
|
In case no signs are shown, although the buffer contains a file controlled by
|
||||||
|
a supported VCS, use this command.
|
||||||
|
|
||||||
|
It will show all tried commands and its output. Errors will be highlighted via
|
||||||
|
|hl-ErrorMsg|.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
MAPPINGS *signify-mappings*
|
MAPPINGS *signify-mappings*
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@ augroup END
|
|||||||
|
|
||||||
command! -nargs=0 -bar SignifyDebug call sy#debug#list_active_buffers()
|
command! -nargs=0 -bar SignifyDebug call sy#debug#list_active_buffers()
|
||||||
command! -nargs=0 -bar SignifyDebugDiff call sy#debug#verbose_diff_cmd()
|
command! -nargs=0 -bar SignifyDebugDiff call sy#debug#verbose_diff_cmd()
|
||||||
|
command! -nargs=0 -bar SignifyDebugUnknown call sy#repo#debug_detection()
|
||||||
command! -nargs=0 -bar SignifyRefresh call sy#util#refresh_windows()
|
command! -nargs=0 -bar SignifyRefresh call sy#util#refresh_windows()
|
||||||
command! -nargs=0 -bar SignifyToggle call sy#toggle()
|
command! -nargs=0 -bar SignifyToggle call sy#toggle()
|
||||||
command! -nargs=0 -bar SignifyToggleHighlight call sy#highlight#line_toggle()
|
command! -nargs=0 -bar SignifyToggleHighlight call sy#highlight#line_toggle()
|
||||||
|
Loading…
Reference in New Issue
Block a user