From ff764eed4ca67cff8016d971f07de696cfbc3ff4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Cepl?= Date: Wed, 30 Sep 2026 13:12:14 +0200 Subject: support feature detection for vis ui styling API In builds of vis packaged without a git tree (such as openSUSE OBS RPM builds), vis.API defaults to 0. Checking `vis.API > 3215` therefore fails even when the new vis.ui styling API is present. Check for the existence of `vis.ui.style_define` and `vis.ui.style_push` directly, and accept an optional window object in util.style_define for backward compatibility with older versions. --- init.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'init.lua') diff --git a/init.lua b/init.lua index 8002e62..6f46895 100644 --- a/init.lua +++ b/init.lua @@ -594,7 +594,7 @@ end local function lspc_highlight_server_diagnostics(win, server_diagnostics, style) if not style then if not lspc.diagnostic_style_id then - if vis.API and vis.API > 3215 then + if (vis.API and vis.API > 3215) or (vis.ui and vis.ui.style_push) then lspc.diagnostic_style_id = vis.ui:style_push() else lspc.diagnostic_style_id = win.STYLE_LEXER_MAX @@ -612,7 +612,7 @@ local function lspc_highlight_server_diagnostics(win, server_diagnostics, style) for _, diagnostic in ipairs(server_diagnostics) do local diagnostic_style = level_mapping[diagnostic.severity] or level_mapping[1] - assert(util.style_define(style, diagnostic_style)) + assert(util.style_define(style, diagnostic_style, win)) if lspc.highlight_diagnostics == 'range' then local range = diagnostic.vis_range -- cgit v1.2.3