From 6641174ed030a0d7f305ce860f21097c28560fb9 Mon Sep 17 00:00:00 2001 From: Shawon Date: Sat, 31 Aug 2024 15:17:51 +0600 Subject: [PATCH] fix: Fixed a bug causing callbacks to not work. --- lua/markview.lua | 14 ++++++++++++-- plugin/markview.lua | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lua/markview.lua b/lua/markview.lua index 9631dbe..8107491 100644 --- a/lua/markview.lua +++ b/lua/markview.lua @@ -1505,6 +1505,7 @@ markview.splitView = { close = function (self) pcall(vim.api.nvim_win_close, self.window, true); + self.augroup = vim.api.nvim_create_augroup("markview_splitview", { clear = true }); self.attached_buffer = nil; self.window = nil; @@ -1561,7 +1562,7 @@ markview.splitView = { pcall(markview.configuration.callbacks.on_enable, self.buf, self.window); local cursor = vim.api.nvim_win_get_cursor(windows[1]); - vim.api.nvim_win_set_cursor(self.window, cursor); + pcall(vim.api.nvim_win_set_cursor, self.window, cursor); local parsed_content; @@ -1591,7 +1592,7 @@ markview.splitView = { callback = vim.schedule_wrap(function () -- Set cursor cursor = vim.api.nvim_win_get_cursor(windows[1]); - vim.api.nvim_win_set_cursor(self.window, cursor); + pcall(vim.api.nvim_win_set_cursor, self.window, cursor); end) }); @@ -1604,6 +1605,15 @@ markview.splitView = { self:close(); end) }); + vim.api.nvim_create_autocmd({ + "BufHidden" + }, { + group = self.augroup, + buffer = self.buffer, + callback = vim.schedule_wrap(function () + markview.commands.splitDisable(self.attached_buffer); + end) + }); vim.api.nvim_create_autocmd({ "TextChanged", "TextChangedI" diff --git a/plugin/markview.lua b/plugin/markview.lua index c8770b3..103a0ce 100644 --- a/plugin/markview.lua +++ b/plugin/markview.lua @@ -114,7 +114,7 @@ local redraw_autocmd = function (augroup, buffer) end -- Only on mode change or if the mode changed due to text changed - if event.buffer and event.buffer == buffer and mode ~= cached_mode or event.event == "ModeChanged" then + if mode ~= cached_mode or event.event == "ModeChanged" then -- Call the on_mode_change callback before exiting if not markview.configuration.callbacks or not markview.configuration.callbacks.on_mode_change then goto noCallbacks;