diff --git a/lua/harpoon/buffer.lua b/lua/harpoon/buffer.lua index fd0e05c..494001f 100644 --- a/lua/harpoon/buffer.lua +++ b/lua/harpoon/buffer.lua @@ -24,7 +24,7 @@ end function M.run_toggle_command(key) local harpoon = require("harpoon") harpoon.logger:log("toggle by keymap '" .. key .. "'") - harpoon.ui:select_menu_item() + harpoon.ui:toggle_quick_menu() end ---TODO: I don't know how to do what i want to do, but i want to be able to @@ -63,7 +63,7 @@ function M.setup_autocmds_and_keymaps(bufnr) bufnr, "n", "", - "lua require('harpoon.buffer').run_toggle_command('')", + "lua require('harpoon.buffer').run_toggle_command('Esc')", { silent = true } ) vim.api.nvim_buf_set_keymap( @@ -86,16 +86,17 @@ function M.setup_autocmds_and_keymaps(bufnr) ) end --]] - vim.cmd( - string.format( - "autocmd BufModifiedSet set nomodified", - bufnr - ) - ) + vim.api.nvim_create_autocmd("BufModifiedSet", { + buffer = bufnr, + group = HarpoonGroup, + callback = function() + vim.api.nvim_buf_set_option(bufnr, "modified", false) + end, + }) vim.api.nvim_create_autocmd({ "BufWriteCmd" }, { group = HarpoonGroup, - pattern = "__harpoon*", + buffer = bufnr, callback = function() require("harpoon").ui:save() vim.schedule(function() @@ -107,7 +108,7 @@ function M.setup_autocmds_and_keymaps(bufnr) vim.api.nvim_create_autocmd({ "BufLeave" }, { group = HarpoonGroup, - pattern = "__harpoon*", + buffer = bufnr, callback = function() require("harpoon").logger:log("toggle by BufLeave") require("harpoon").ui:toggle_quick_menu() diff --git a/lua/harpoon/config.lua b/lua/harpoon/config.lua index 260f004..578c785 100644 --- a/lua/harpoon/config.lua +++ b/lua/harpoon/config.lua @@ -117,6 +117,10 @@ function M.get_default_config() set_position = true bufnr = vim.fn.bufnr(list_item.value, true) end + if not vim.api.nvim_buf_is_loaded(bufnr) then + vim.fn.bufload(bufnr) + vim.api.nvim_buf_set_option(bufnr, "buflisted", true) + end if options.vsplit then vim.cmd("vsplit") diff --git a/lua/harpoon/ui.lua b/lua/harpoon/ui.lua index 4cd598e..7360d22 100644 --- a/lua/harpoon/ui.lua +++ b/lua/harpoon/ui.lua @@ -107,7 +107,6 @@ end ---@param list? HarpoonList function HarpoonUI:toggle_quick_menu(list) - if list == nil or self.win_id ~= nil then Logger:log("ui#toggle_quick_menu#closing", list and list.name) if self.settings.save_on_toggle then @@ -154,6 +153,7 @@ function HarpoonUI:save() local list = Buffer.get_contents(self.bufnr) Logger:log("ui#save", list) self.active_list:resolve_displayed(list) + require("harpoon"):sync() end ---@param settings HarpoonSettings