@@ -2,6 +2,8 @@ local popup = require("plenary.popup")
2
2
local utils = require (" clipper.utils" )
3
3
4
4
local M = {}
5
+ M .clipper_win_id = nil
6
+ M .clipper_bufh = nil
5
7
6
8
local function get_displaied_vs_actual_hashmap (displayable , actual )
7
9
local hashmap = {}
@@ -46,16 +48,21 @@ local function create_window(yank_history, config, callback)
46
48
end
47
49
48
50
function M .toggle_quick_menu (yank_history , config , callback )
51
+ if M .clipper_win_id and vim .api .nvim_win_is_valid (M .clipper_win_id ) then
52
+ vim .api .nvim_win_close (M .clipper_win_id , true )
53
+ M .clipper_win_id = nil
54
+ return
55
+ end
49
56
local win_info = create_window (yank_history , config , callback )
50
- local clipper_win_id = win_info .win_id
51
- local clipper_bufh = win_info .bufnr
57
+ M . clipper_win_id = win_info .win_id
58
+ M . clipper_bufh = win_info .bufnr
52
59
53
- vim .api .nvim_win_set_option (clipper_win_id , " number" , true )
54
- vim .api .nvim_buf_set_keymap (clipper_bufh , " n" , " q" ,
55
- string.format (" :lua vim.api.nvim_win_close(%d, true)<CR>" , clipper_win_id ), { noremap = true , silent = true }
60
+ vim .api .nvim_win_set_option (M . clipper_win_id , " number" , true )
61
+ vim .api .nvim_buf_set_keymap (M . clipper_bufh , " n" , " q" ,
62
+ string.format (" :lua vim.api.nvim_win_close(%d, true)<CR>" , M . clipper_win_id ), { noremap = true , silent = true }
56
63
)
57
- vim .api .nvim_buf_set_keymap (clipper_bufh , " n" , " <ESC>" ,
58
- string.format (" :lua vim.api.nvim_win_close(%d, true)<CR>" , clipper_win_id ), { noremap = true , silent = true }
64
+ vim .api .nvim_buf_set_keymap (M . clipper_bufh , " n" , " <ESC>" ,
65
+ string.format (" :lua vim.api.nvim_win_close(%d, true)<CR>" , M . clipper_win_id ), { noremap = true , silent = true }
59
66
)
60
67
end
61
68
0 commit comments