diff --git a/README.md b/README.md index 9a2500b925d2572945abf61822f34f76c1969b58..40ffafcaa7bb7cb4adad8ffabbc72724ec1650d4 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 55e122f6704eab93ce6ba67f74ed83fdbdb067bf..d86cdfbf3bc45f48cd98c109ff3b79e38594df0f 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 6f024ad533b3f6fe91012ef3f93822e79fb3cd0e..1db0bc0d68a317a638ad346004db6cac4bfd4fa8 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 a06208a0881d6bfb3f073ea801283018c238c482..49cefa20281576c6dca1162a1ecd0d6dc10e57ca 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] . "." .