aboutsummaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/colorizer.lua12
-rw-r--r--lua/colorizer/buffer_utils.lua6
2 files changed, 17 insertions, 1 deletions
diff --git a/lua/colorizer.lua b/lua/colorizer.lua
index 93d21db..f9010c4 100644
--- a/lua/colorizer.lua
+++ b/lua/colorizer.lua
@@ -65,6 +65,7 @@ local buffer_utils = require "colorizer.buffer_utils"
local DEFAULT_NAMESPACE = buffer_utils.DEFAULT_NAMESPACE
local HIGHLIGHT_MODE_NAMES = buffer_utils.HIGHLIGHT_MODE_NAMES
+local clear_hl_cache = buffer_utils.clear_hl_cache
local rehighlight_buffer = buffer_utils.rehighlight_buffer
---Highlight the buffer region
@@ -166,7 +167,12 @@ end
local function is_buffer_attached(buf)
if buf == 0 or buf == nil then
buf = current_buf()
+ else
+ if not api.nvim_buf_is_valid(buf) then
+ return
+ end
end
+
local au = api.nvim_get_autocmds {
group = AUGROUP_ID,
event = { "WinScrolled", "TextChanged", "TextChangedI", "TextChangedP" },
@@ -214,6 +220,10 @@ end
local function attach_to_buffer(buf, options, typ)
if buf == 0 or buf == nil then
buf = current_buf()
+ else
+ if not api.nvim_buf_is_valid(buf) then
+ return
+ end
end
if not options then
@@ -448,7 +458,7 @@ end
--- Clear the highlight cache and reload all buffers.
local function clear_highlight_cache()
- HIGHLIGHT_CACHE = {}
+ clear_hl_cache()
vim.schedule(reload_all_buffers)
end
diff --git a/lua/colorizer/buffer_utils.lua b/lua/colorizer/buffer_utils.lua
index 2f31a2b..a3b3da7 100644
--- a/lua/colorizer/buffer_utils.lua
+++ b/lua/colorizer/buffer_utils.lua
@@ -30,6 +30,11 @@ local HIGHLIGHT_MODE_NAMES = {
}
local HIGHLIGHT_CACHE = {}
+--- Clean the highlight cache
+local function clear_hl_cache()
+ HIGHLIGHT_CACHE = {}
+end
+
--- Make a deterministic name for a highlight given these attributes
local function make_highlight_name(rgb, mode)
return table.concat({ HIGHLIGHT_NAME_PREFIX, HIGHLIGHT_MODE_NAMES[mode], rgb }, "_")
@@ -333,6 +338,7 @@ end
return {
DEFAULT_NAMESPACE = DEFAULT_NAMESPACE,
HIGHLIGHT_MODE_NAMES = HIGHLIGHT_MODE_NAMES,
+ clear_hl_cache = clear_hl_cache,
rehighlight_buffer = rehighlight_buffer,
highlight_buffer = highlight_buffer,
}