Add GitGutterDiffOrig command

Closes #827.
This commit is contained in:
Andy Stewart
2022-04-15 14:13:51 +01:00
parent 18d12985ea
commit d5bae10403
4 changed files with 39 additions and 0 deletions

View File

@@ -238,6 +238,11 @@ Finally, you can force vim-gitgutter to update its signs across all visible buff
See the customisation section below for how to change the defaults. See the customisation section below for how to change the defaults.
### Vimdiff
Use the `GitGutterDiffOrig` command to open a vimdiff view of the current buffer, respecting `g:gitgutter_diff_relative_to` and `:gitgutter_diff_base`.
### Folding ### Folding
Use the `GitGutterFold` command to fold all unchanged lines, leaving just the hunks visible. Use `zr` to unfold 3 lines of context above and below a hunk. Use the `GitGutterFold` command to fold all unchanged lines, leaving just the hunks visible. Use `zr` to unfold 3 lines of context above and below a hunk.

View File

@@ -233,3 +233,29 @@ function! gitgutter#quickfix(current_file)
call setloclist(0, locations) call setloclist(0, locations)
endif endif
endfunction endfunction
function! gitgutter#difforig()
let bufnr = bufnr('')
let path = gitgutter#utility#repo_path(bufnr, 1)
vertical new
set buftype=nofile
if g:gitgutter_diff_relative_to ==# 'index'
let index_name = gitgutter#utility#get_diff_base(bufnr).':'.path
let cmd = gitgutter#utility#cd_cmd(bufnr,
\ g:gitgutter_git_executable.' '.g:gitgutter_git_args.' --no-pager show '.index_name
\ )
" NOTE: this uses &shell to execute cmd. Perhaps we should use instead
" gitgutter#utility's use_known_shell() / restore_shell() functions.
silent! execute "read ++edit !" cmd
else
silent! execute "read ++edit" path
endif
0d_
diffthis
wincmd p
diffthis
endfunction

View File

@@ -221,6 +221,12 @@ Commands for folds:~
:GitGutterFold Fold all unchanged lines. Execute again to undo. :GitGutterFold Fold all unchanged lines. Execute again to undo.
Other commands:~
*gitgutter-:GitGutterDiffOrig*
:GitGutterDiffOrig Similar to |:DiffOrig| but shows gitgutter's diff.
=============================================================================== ===============================================================================
AUTOCOMMANDS *gitgutter-autocommands* AUTOCOMMANDS *gitgutter-autocommands*

View File

@@ -134,6 +134,8 @@ command! -bar GitGutterBufferToggle call gitgutter#buffer_toggle()
command! -bar GitGutterQuickFix call gitgutter#quickfix(0) command! -bar GitGutterQuickFix call gitgutter#quickfix(0)
command! -bar GitGutterQuickFixCurrentFile call gitgutter#quickfix(1) command! -bar GitGutterQuickFixCurrentFile call gitgutter#quickfix(1)
command! -bar GitGutterDiffOrig call gitgutter#difforig()
" }}} " }}}
" Line highlights {{{ " Line highlights {{{