From 4845ae07996a8fb2d583c3bcdd6bc88889e20d0b Mon Sep 17 00:00:00 2001 From: Jerome Reybert <jreybert@gmail.com> Date: Thu, 13 Oct 2016 00:25:07 +0200 Subject: [PATCH] plugin/magit.vim: enlarge or shrink hunks fix #97 --- README.md | 3 +++ autoload/magit/git.vim | 4 ++-- doc/vimagit.txt | 7 +++++++ plugin/magit.vim | 18 ++++++++++++++++++ 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9a2500b..40ffafc 100644 --- a/README.md +++ b/README.md @@ -224,6 +224,9 @@ E means 'edit'. ##### R * Refresh magit buffer +##### -,+ + * Shrink,enlarge diff context + ##### q * Close the magit buffer diff --git a/autoload/magit/git.vim b/autoload/magit/git.vim index 55e122f..d86cdfb 100644 --- a/autoload/magit/git.vim +++ b/autoload/magit/git.vim @@ -117,8 +117,8 @@ function! magit#git#git_diff(filename, status, mode) let dev_null = ( a:status == '?' ) ? "/dev/null " : "" let staged_flag = ( a:mode == 'staged' ) ? "--staged" : "" let git_cmd=g:magit_git_cmd . " diff --no-ext-diff " . staged_flag . - \ " --no-color -p -- " . dev_null . " " - \ . a:filename + \ " --no-color -p -U" . b:magit_diff_context . + \ " -- " . dev_null . " " . a:filename silent let diff_list=magit#utils#systemlist(git_cmd) if ( a:status != '?' && v:shell_error != 0 ) echohl WarningMsg diff --git a/doc/vimagit.txt b/doc/vimagit.txt index 6f024ad..1db0bc0 100644 --- a/doc/vimagit.txt +++ b/doc/vimagit.txt @@ -265,6 +265,13 @@ Following mappings are set locally, for magit buffer only, in normal mode. *vimagit-q* *vimagit-g:magit_close_mapping* + + *vimagit--* *magit#update_diff()* + *vimagit-+* + *vimagit-g:magit_diff_shrink* + *vimagit-g:magit_diff_enlarge* + -,+ Shrink,enlarge diff context + q close magit buffer. *vimagit-?* *magit#toggle_help()* diff --git a/plugin/magit.vim b/plugin/magit.vim index a06208a..49cefa2 100644 --- a/plugin/magit.vim +++ b/plugin/magit.vim @@ -36,6 +36,9 @@ let g:magit_ignore_mapping = get(g:, 'magit_ignore_mapping', let g:magit_close_mapping = get(g:, 'magit_close_mapping', 'q' ) let g:magit_toggle_help_mapping = get(g:, 'magit_toggle_help_mapping', '?' ) +let g:magit_diff_shrink = get(g:, 'magit_diff_shrink', '-' ) +let g:magit_diff_enlarge = get(g:, 'magit_diff_enlarge', '+' ) + let g:magit_folding_toggle_mapping = get(g:, 'magit_folding_toggle_mapping', [ '<CR>' ]) let g:magit_folding_open_mapping = get(g:, 'magit_folding_open_mapping', [ 'zo', 'zO' ]) let g:magit_folding_close_mapping = get(g:, 'magit_folding_close_mapping', [ 'zc', 'zC' ]) @@ -114,6 +117,8 @@ let s:magit_inline_help = { \. ' commit undo, cancel and close current commit message', \g:magit_reload_mapping \.' refresh magit buffer', +\g:magit_diff_shrink.','.g:magit_diff_enlarge +\. ' shrink,enlarge diff context', \g:magit_close_mapping \.' close magit buffer', \g:magit_toggle_help_mapping @@ -788,6 +793,8 @@ function! magit#show_magit(display, ...) let b:magit_current_commit_mode='' let b:magit_commit_newly_open=0 + let b:magit_diff_context=3 + call magit#utils#setbufnr(bufnr(buffer_name)) call magit#sign#init() @@ -802,6 +809,8 @@ function! magit#show_magit(display, ...) execute "nnoremap <buffer> <silent> " . g:magit_close_commit_mapping . " :call magit#close_commit()<cr>" execute "nnoremap <buffer> <silent> " . g:magit_ignore_mapping . " :call magit#ignore_file()<cr>" execute "nnoremap <buffer> <silent> " . g:magit_close_mapping . " :call magit#close_magit()<cr>" + execute "nnoremap <buffer> <silent> " . g:magit_diff_shrink . " :call magit#update_diff('-')<cr>" + execute "nnoremap <buffer> <silent> " . g:magit_diff_enlarge . " :call magit#update_diff('+')<cr>" execute "nnoremap <buffer> <silent> " . g:magit_toggle_help_mapping . " :call magit#toggle_help()<cr>" execute "nnoremap <buffer> <silent> " . g:magit_stage_line_mapping . " :call magit#stage_vselect()<cr>" @@ -1173,6 +1182,15 @@ function! magit#jump_to() execute "edit " . "+" . line . " " filename endfunction +function! magit#update_diff(way) + if ( a:way == "+" ) + let b:magit_diff_context+=1 + elseif ( b:magit_diff_context > 1 ) + let b:magit_diff_context-=1 + endif + call magit#update_buffer() +endfunction + function! magit#show_version() return g:vimagit_version[0] . "." . \ g:vimagit_version[1] . "." . -- GitLab