From df9050d40f0d8183d9031ecc28243c569864cef0 Mon Sep 17 00:00:00 2001 From: Brandon Conway Date: Sun, 14 Mar 2021 21:52:08 -0700 Subject: [PATCH] Save changes when closing menu --- lua/harpoon/mark.lua | 6 ++++++ lua/harpoon/ui.lua | 20 ++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/lua/harpoon/mark.lua b/lua/harpoon/mark.lua index 5abb927..8ce8a47 100644 --- a/lua/harpoon/mark.lua +++ b/lua/harpoon/mark.lua @@ -202,6 +202,12 @@ M.to_quickfix_list = function() vim.fn.setqflist(qf_list) end +M.set_mark_list = function(new_list) + local config = harpoon.get_mark_config() + + config.marks = new_list +end + M.to_quickfix_list() return M diff --git a/lua/harpoon/ui.lua b/lua/harpoon/ui.lua index 21bc2ea..1e61860 100644 --- a/lua/harpoon/ui.lua +++ b/lua/harpoon/ui.lua @@ -21,8 +21,28 @@ function create_window() return win_info end +function get_menu_items() + local lines = vim.api.nvim_buf_get_lines(bufh, 0, -1, true) + local indices = {} + + for idx = 1, #lines do + local space_location = string.find(lines[idx], ' ') + + if space_location ~= nil then + table.insert(indices, string.sub(lines[idx], space_location + 1)) + end + end + + return indices +end + +local save_changes = function() + Marked.set_mark_list(get_menu_items()) +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