mirror of
https://github.com/ThePrimeagen/harpoon.git
synced 2025-07-14 01:50:27 +00:00
fix(ui): comprehensive UI fixes
- fix: sync on UI save (#377) - fix: ensure buf is loaded on select (#383) - fix: remove angle brackets from Escape mapping rhs (#379, #385) - fix: incorrect function call in run_toggle_command (#379) - refactor: use buf-local autocmds - refactor: use Lua API to create BufModifiedSet autocmd fixes #383, #385, #379, #377, #358
This commit is contained in:
parent
70703d6ce1
commit
515bdd0058
@ -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",
|
||||
"<ESC>",
|
||||
"<Cmd>lua require('harpoon.buffer').run_toggle_command('<ESC>')<CR>",
|
||||
"<Cmd>lua require('harpoon.buffer').run_toggle_command('Esc')<CR>",
|
||||
{ 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 <buffer=%s> 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()
|
||||
|
@ -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")
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user