From 3b629754420919575a9e5758027d6e1831dbf2aa Mon Sep 17 00:00:00 2001 From: Luuk van Baal Date: Sat, 23 Dec 2023 16:44:31 +0100 Subject: [PATCH] fix: avoid sign_hl_group nil index --- lua/statuscol.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lua/statuscol.lua b/lua/statuscol.lua index 73af4c9..e99e189 100644 --- a/lua/statuscol.lua +++ b/lua/statuscol.lua @@ -44,12 +44,13 @@ local function update_sign_defined(win, ext, reassign) local signs = ext or f.sign_getdefined() for i = 1, #signs do local s = ext and signs[i][4] or signs[i] - local name = ext and s.sign_text and s.sign_text..s.sign_hl_group or s.name + local name = s.name or s.sign_text if s.sign_text or s.text then if ext then s.text = s.sign_text if not idmap[s.ns_id] then update_nsidmap() end s.ns = idmap[s.ns_id] + if s.sign_hl_group then name = name..s.sign_hl_group end end s.wtext = s.text:gsub("%s", "") s.texthl = ext and s.sign_hl_group or s.texthl or "NoTexthl" @@ -183,8 +184,9 @@ end local function place_signs(win, signs, ext) for i = 1, #signs do local s = ext and signs[i][4] or signs[i] - local name = ext and s.sign_text and s.sign_text..s.sign_hl_group or s.name - if ext and not name then goto nextsign end + local name = s.name or s.sign_text + if not name then goto nextsign end + if ext and s.sign_hl_group then name = name..s.sign_hl_group end if not sign_cache[name] then update_sign_defined(win, ext and signs) end local sign = sign_cache[name] if not sign or not sign.segment then goto nextsign end