From c67b202e08135be26095b8b98fb3e38acbe7a140 Mon Sep 17 00:00:00 2001 From: Nicolas Brunie Date: Tue, 28 Nov 2017 22:29:13 +0100 Subject: [PATCH 1/2] Extending magit#jump_to with new window command arg Details: * + Adding a newwin_cmd parameter to magit#jump_to function to * allow selection of the window opening mode if the buffer to * jump to is not available * + fixing magit#jump_to calls in mapping definition --- autoload/magit/mapping.vim | 2 +- plugin/magit.vim | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/autoload/magit/mapping.vim b/autoload/magit/mapping.vim index 6bffbf8..59979df 100644 --- a/autoload/magit/mapping.vim +++ b/autoload/magit/mapping.vim @@ -128,7 +128,7 @@ function! magit#mapping#set_default() call s:mg_set_mapping('n', g:magit_ignore_mapping, \ "magit#ignore_file()", '\<\%(un\)\?staged\>') call s:mg_set_mapping('n', g:magit_edit_mapping, - \ "magit#jump_to()", '\<\%(un\)\?staged\>') + \ "magit#jump_to('rightbelow vnew')", '\<\%(un\)\?staged\>') call s:mg_set_mapping('n', g:magit_reload_mapping, \ "magit#update_buffer()") diff --git a/plugin/magit.vim b/plugin/magit.vim index 6bfc681..fa2d455 100644 --- a/plugin/magit.vim +++ b/plugin/magit.vim @@ -1216,7 +1216,8 @@ endfunction " hunk " if this file is already displayed in a window, jump to the window, if not, " jump to last window and open buffer, at the beginning of the hunk -function! magit#jump_to() +" param[in] newwin_cmd: vim command to execute to open the new window +function! magit#jump_to(newwin_cmd) let section=magit#helper#get_section() let filename=fnameescape(magit#git#top_dir() . magit#helper#get_filename()) let header_line_nb=magit#helper#get_hunkheader_line_nb() @@ -1234,7 +1235,7 @@ function! magit#jump_to() let buf_win = magit#utils#search_buffer_in_windows(filename) let buf_win = ( buf_win == 0 ) ? last_win : buf_win if ( buf_win == 0 || winnr('$') == 1 ) - rightbelow vnew + execute a:newwin_cmd else execute buf_win."wincmd w" endif From 34245d319fc3fd852dc05f0679c3365459d1e7f3 Mon Sep 17 00:00:00 2001 From: Nicolas Brunie Date: Tue, 28 Nov 2017 22:31:50 +0100 Subject: [PATCH 2/2] Adding new mapping 'j': "jump to" hsplit Details: * + same behavior as "J" (from nomodifiable branch) or "E" in * current next branch: jump to the buffer corresponding to the current * hunk, but if the buffer has not been open yet, opens it as on horyzontal * split --- autoload/magit/mapping.vim | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/autoload/magit/mapping.vim b/autoload/magit/mapping.vim index 59979df..1b16d92 100644 --- a/autoload/magit/mapping.vim +++ b/autoload/magit/mapping.vim @@ -9,6 +9,7 @@ let g:magit_commit_fixup_mapping = get(g:, 'magit_commit_fixup_mapping', let g:magit_close_commit_mapping = get(g:, 'magit_close_commit_mapping', 'CU' ) let g:magit_reload_mapping = get(g:, 'magit_reload_mapping', 'R' ) let g:magit_edit_mapping = get(g:, 'magit_edit_mapping', 'E' ) +let g:magit_edit_horyzontal_mapping= get(g:, 'magit_edit_horyzontal_mapping', 'j' ) let g:magit_jump_next_hunk = get(g:, 'magit_jump_next_hunk', '') let g:magit_jump_prev_hunk = get(g:, 'magit_jump_prev_hunk', '') @@ -129,6 +130,8 @@ function! magit#mapping#set_default() \ "magit#ignore_file()", '\<\%(un\)\?staged\>') call s:mg_set_mapping('n', g:magit_edit_mapping, \ "magit#jump_to('rightbelow vnew')", '\<\%(un\)\?staged\>') + call s:mg_set_mapping('n', g:magit_edit_horyzontal_mapping, + \ "magit#jump_to('rightbelow new')", '\<\%(un\)\?staged\>') call s:mg_set_mapping('n', g:magit_reload_mapping, \ "magit#update_buffer()") @@ -186,6 +189,8 @@ function! magit#mapping#set_default() \.' if cursor on filename header or hunk, unstage whole file', \g:magit_edit_mapping \.' edit, jump cursor to file containing this hunk', +\g:magit_edit_horyzontal_mapping +\.' edit, jump cursor to file containing this hunk (horyzontal split if buffer not opened)', \g:magit_jump_next_hunk.','.g:magit_jump_prev_hunk \. ' move to Next/Previous hunk in magit buffer', \],