diff --git a/autoload/gitgutter.vim b/autoload/gitgutter.vim index c8f9e21..0daa906 100644 --- a/autoload/gitgutter.vim +++ b/autoload/gitgutter.vim @@ -179,7 +179,7 @@ endfunction " - this runs synchronously " - it ignores unsaved changes in buffers " - it does not change to the repo root -function! gitgutter#quickfix() +function! gitgutter#quickfix(current_file) let cmd = g:gitgutter_git_executable.' '.g:gitgutter_git_args.' rev-parse --show-cdup' let path_to_repo = get(systemlist(cmd), 0, '') if !empty(path_to_repo) && path_to_repo[-1:] != '/' @@ -191,6 +191,9 @@ function! gitgutter#quickfix() \ ' diff --no-ext-diff --no-color -U0'. \ ' --src-prefix=a/'.path_to_repo.' --dst-prefix=b/'.path_to_repo.' '. \ g:gitgutter_diff_args. ' '. g:gitgutter_diff_base + if a:current_file + let cmd = cmd.' -- '.expand('%:p') + endif let diff = systemlist(cmd) let lnum = 0 for line in diff diff --git a/doc/gitgutter.txt b/doc/gitgutter.txt index 56a9633..7da0b49 100644 --- a/doc/gitgutter.txt +++ b/doc/gitgutter.txt @@ -158,6 +158,11 @@ Commands for jumping between hunks:~ > command! Gqf GitGutterQuickFix | copen < + *gitgutter-:GitGutterQuickFixCurrentFile* +:GitGutterQuickFixCurrentFile Same as :GitGutterQuickFix, but only load hunks for + the file in the focused buffer. This has the same + functionality as :GitGutterQuickFix when the focused + buffer is empty. Commands for operating on a hunk:~ diff --git a/plugin/gitgutter.vim b/plugin/gitgutter.vim index 2c82955..ef5c8e6 100644 --- a/plugin/gitgutter.vim +++ b/plugin/gitgutter.vim @@ -118,7 +118,8 @@ command! -bar GitGutterBufferDisable call gitgutter#buffer_disable() command! -bar GitGutterBufferEnable call gitgutter#buffer_enable() command! -bar GitGutterBufferToggle call gitgutter#buffer_toggle() -command! -bar GitGutterQuickFix call gitgutter#quickfix() +command! -bar GitGutterQuickFix call gitgutter#quickfix(v:false) +command! -bar GitGutterQuickFixCurrentFile call gitgutter#quickfix(v:true) " }}}