diff --git a/lua/neominimap/buffer/internal.lua b/lua/neominimap/buffer/internal.lua index d479b93..97bd151 100644 --- a/lua/neominimap/buffer/internal.lua +++ b/lua/neominimap/buffer/internal.lua @@ -86,6 +86,9 @@ M.internal_render_co = function(bufnr) end co.defer_co() + if not api.nvim_buf_is_valid(bufnr) then + return + end local tabwidth = vim.bo[bufnr].tabstop @@ -94,6 +97,9 @@ M.internal_render_co = function(bufnr) local minimap = text.gen_co(lines, tabwidth) co.defer_co() + if not api.nvim_buf_is_valid(bufnr) then + return + end vim.bo[mbufnr_].modifiable = true @@ -104,6 +110,9 @@ M.internal_render_co = function(bufnr) vim.bo[mbufnr_].modifiable = false co.defer_co() + if not api.nvim_buf_is_valid(bufnr) then + return + end vim.api.nvim_exec_autocmds("User", { group = "Neominimap", @@ -119,6 +128,9 @@ M.internal_render_co = function(bufnr) local highlights = treesitter.extract_highlights_co(bufnr) co.defer_co() + if not api.nvim_buf_is_valid(bufnr) then + return + end treesitter.apply_co(mbufnr_, highlights) logger.log.trace("Treesitter diagnostics for buffer %d generated successfully", bufnr) diff --git a/lua/neominimap/map/treesitter.lua b/lua/neominimap/map/treesitter.lua index 9f78e92..fac0876 100644 --- a/lua/neominimap/map/treesitter.lua +++ b/lua/neominimap/map/treesitter.lua @@ -170,6 +170,9 @@ M.extract_highlights_co = function(bufnr) highlights[row] = line end) co.defer_co() + if not api.nvim_buf_is_valid(bufnr) then + return {} + end local fold = require("neominimap.map.fold") local coord = require("neominimap.map.coord") @@ -204,6 +207,9 @@ M.extract_highlights_co = function(bufnr) end end) co.defer_co() + if not api.nvim_buf_is_valid(bufnr) then + return {} + end co.for_co(1, minimap_height, 1, 5000, function(y) for x = 1, minimap_width do @@ -211,6 +217,9 @@ M.extract_highlights_co = function(bufnr) end end) co.defer_co() + if not api.nvim_buf_is_valid(bufnr) then + return {} + end ---@type Neominimap.MinimapHighlight[] local ret = {}