If I loop a table in render function, each time debounce time hit, render function will rerun, which is a waste of cpu, and I'd like to make render function only run when I enter nomal mode, is it possible?
For example, I'd like to only show the severiest diagnostic, so I'm looping a table, as soon as I found one, break the loop. But the debounce time makes the behaviour unable to determine, because maybe when it loops to info, gets a n>0, breaks the loop, so that possible error is ignored
local function get_diagnostic_label()
local icons = {
Error = "",
Warn = "",
Info = "",
Hint = "",
}
local label = {}
for severity, _ in pairs(icons) do
local n = #vim.diagnostic.get(
props.buf,
{ severity = vim.diagnostic.severity[string.upper(severity)] }
)
if n > 0 then
label = {
{ " " }, -- 前缀图标
{
n,
group = "DiagnosticSign" .. severity,
},
}
break
end
end
return label
end
If I loop a table in render function, each time debounce time hit, render function will rerun, which is a waste of cpu, and I'd like to make render function only run when I enter nomal mode, is it possible? For example, I'd like to only show the severiest diagnostic, so I'm looping a table, as soon as I found one, break the loop. But the debounce time makes the behaviour unable to determine, because maybe when it loops to info, gets a n>0, breaks the loop, so that possible error is ignored