From 68a8cb300c75eb1cd2173b2aac70515e99904ef3 Mon Sep 17 00:00:00 2001 From: Andy Stewart Date: Thu, 3 Jun 2021 12:23:58 +0100 Subject: [PATCH] Close preview on escape: only map while preview open This only applies to floating preview windows on Neovim. Handles the following way of closing the floating preview: - - Moving cursor - 2c (where 2 is the floating window's window number) - to move into and out of the floating window Closes #786. --- autoload/gitgutter/hunk.vim | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/autoload/gitgutter/hunk.vim b/autoload/gitgutter/hunk.vim index 1dcb150..28059c0 100644 --- a/autoload/gitgutter/hunk.vim +++ b/autoload/gitgutter/hunk.vim @@ -447,8 +447,14 @@ function! s:open_hunk_preview_window() " Assumes cursor is in original window. autocmd CursorMoved ++once call gitgutter#hunk#close_hunk_preview_window() + if g:gitgutter_close_preview_on_escape + " Map to close the floating preview. nnoremap :call gitgutter#hunk#close_hunk_preview_window() + " Ensure that when the preview window is closed, the map is removed. + autocmd User GitGutterPreviewClosed silent! nunmap + autocmd CursorMoved ++once silent! nunmap + execute "autocmd WinClosed doautocmd" s:nomodeline "User GitGutterPreviewClosed" endif return