fix: handle E976 in binary file

Close #6
This commit is contained in:
wongxy
2023-10-29 21:18:57 +08:00
parent cd9485d64a
commit 441cb5ff8b
+9 -1
View File
@@ -37,6 +37,14 @@ local function parse_items(cc)
return items return items
end end
---@param line string
---@param col integer byte 0-indexed
---@return boolean
local function is_empty_at_col(line, col)
local ok, char = pcall(fn.strpart, line, col, 1)
return ok and char == ' '
end
local function _refresh() local function _refresh()
local curbuf = api.nvim_get_current_buf() local curbuf = api.nvim_get_current_buf()
if not api.nvim_buf_is_loaded(curbuf) then return end if not api.nvim_buf_is_loaded(curbuf) then return end
@@ -79,7 +87,7 @@ local function _refresh()
strwidth = api.nvim_strwidth(line) strwidth = api.nvim_strwidth(line)
api.nvim_buf_clear_namespace(curbuf, NS, lnum, lnum + 1) api.nvim_buf_clear_namespace(curbuf, NS, lnum, lnum + 1)
for _, item in ipairs(items) do for _, item in ipairs(items) do
if strwidth < item or fn.strpart(line, item - 1, 1) == ' ' then if strwidth < item or is_empty_at_col(line, item - 1) then
api.nvim_buf_set_extmark(curbuf, NS, lnum, 0, { api.nvim_buf_set_extmark(curbuf, NS, lnum, 0, {
virt_text = { { char, 'VirtColumn' } }, virt_text = { { char, 'VirtColumn' } },
hl_mode = 'combine', hl_mode = 'combine',