diff --git a/lua/harpoon/ui.lua b/lua/harpoon/ui.lua index 1f78c69..40aa4af 100644 --- a/lua/harpoon/ui.lua +++ b/lua/harpoon/ui.lua @@ -1,4 +1,3 @@ -local Path = require('plenary.path') local float = require('plenary.window.float') local Marked = require('harpoon.mark') @@ -42,7 +41,6 @@ end M.toggle_quick_menu = function() if win_id ~= nil and vim.api.nvim_win_is_valid(win_id) then - save_changes() vim.api.nvim_win_close(win_id, true) win_id = nil @@ -55,7 +53,7 @@ M.toggle_quick_menu = function() local contents = {} win_id = win_info.win_id - bufh = win_info.bufh + bufh = win_info.bufnr for idx = 1, Marked.get_length() do local file = Marked.get_marked_file(idx) @@ -65,8 +63,17 @@ M.toggle_quick_menu = function() contents[idx] = string.format("%d %s", idx, file) end + vim.api.nvim_buf_set_name(bufh, "harpoon-menu") vim.api.nvim_buf_set_lines(bufh, 0, #contents, false, contents) vim.api.nvim_buf_set_option(bufh, "filetype", "harpoon") + vim.api.nvim_buf_set_option(bufh, "buftype", "acwrite") + vim.api.nvim_buf_set_option(bufh, "bufhidden", "delete") + vim.cmd(string.format("autocmd BufWriteCmd :lua require('harpoon.ui').on_menu_save()", bufh)) + vim.cmd(string.format("autocmd BufModifiedSet set nomodified", bufh)) +end + +M.on_menu_save = function() + save_changes() end M.nav_file = function(id)