diff --git a/autoload/gitgutter/hunk.vim b/autoload/gitgutter/hunk.vim index fc4328f..68517d0 100644 --- a/autoload/gitgutter/hunk.vim +++ b/autoload/gitgutter/hunk.vim @@ -64,7 +64,7 @@ function! gitgutter#hunk#next_hunk(count) abort if g:gitgutter_show_msg_on_hunk_jumping redraw | echo printf('Hunk %d of %d', index(hunks, hunk) + 1, len(hunks)) endif - if s:is_preview_window_open() + if gitgutter#hunk#is_preview_window_open() call gitgutter#hunk#preview() endif return @@ -95,7 +95,7 @@ function! gitgutter#hunk#prev_hunk(count) abort if g:gitgutter_show_msg_on_hunk_jumping redraw | echo printf('Hunk %d of %d', index(hunks, hunk) + 1, len(hunks)) endif - if s:is_preview_window_open() + if gitgutter#hunk#is_preview_window_open() call gitgutter#hunk#preview() endif return @@ -249,7 +249,7 @@ function! s:hunk_op(op, ...) let hunk_diff = join(hunk_header + hunk_body, "\n")."\n" call s:goto_original_window() - call s:close_hunk_preview_window() + call gitgutter#hunk#close_hunk_preview_window() call s:stage(hunk_diff) endif @@ -427,7 +427,7 @@ endfunction function! s:open_hunk_preview_window() if g:gitgutter_preview_win_floating if exists('*nvim_open_win') - call s:close_hunk_preview_window() + call gitgutter#hunk#close_hunk_preview_window() let buf = nvim_create_buf(v:false, v:false) " Set default width and height for now. @@ -446,9 +446,9 @@ function! s:open_hunk_preview_window() call nvim_buf_set_name(buf, 'gitgutter://hunk-preview') " Assumes cursor is in original window. - autocmd CursorMoved ++once call s:close_hunk_preview_window() + autocmd CursorMoved ++once call gitgutter#hunk#close_hunk_preview_window() if g:gitgutter_close_preview_on_escape - nnoremap :call close_hunk_preview_window() + nnoremap :call gitgutter#hunk#close_hunk_preview_window() endif return @@ -584,7 +584,7 @@ function! s:goto_original_window() endfunction -function! s:close_hunk_preview_window() +function! gitgutter#hunk#close_hunk_preview_window() let bufnr = s:winid != 0 ? winbufnr(s:winid) : s:preview_bufnr call setbufvar(bufnr, '&modified', 0) @@ -602,7 +602,7 @@ endfunction " Only makes sense for traditional, non-floating preview window. -function s:is_preview_window_open() +function gitgutter#hunk#is_preview_window_open() for i in range(1, winnr('$')) if getwinvar(i, '&previewwindow') return 1 diff --git a/doc/gitgutter.txt b/doc/gitgutter.txt index 05bd2ce..233ede3 100644 --- a/doc/gitgutter.txt +++ b/doc/gitgutter.txt @@ -190,6 +190,12 @@ Commands for operating on a hunk:~ the original window with |CTRL-W_p|. Alternatively set |g:gitgutter_close_preview_on_escape| and use . + Two functions are available for your own logic: +> + gitgutter#hunk#is_preview_window_open() + gitgutter#hunk#close_hunk_preview_window() +< + Commands for folds:~ *gitgutter-:GitGutterFold*