diff options
Diffstat (limited to 'lua')
-rw-r--r-- | lua/colorizer.lua | 12 | ||||
-rw-r--r-- | lua/colorizer/buffer_utils.lua | 6 |
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, } |