From 8ba047e33fe3a10765c593c810d54b5e3bb906e9 Mon Sep 17 00:00:00 2001 From: Luuk van Baal Date: Sun, 24 Nov 2024 14:46:20 +0100 Subject: feat(treesitter): vertical conceal support for highlighter TSHighlighter now places marks for conceal_lines metadata. A new internal decor provider callback _on_conceal_line was added that instructs the highlighter to place conceal_lines marks whenever the editor needs to know whether a line is concealed. The bundled markdown queries use conceal_lines metadata to conceal code block fence lines. --- src/nvim/api/extmark.c | 1 + src/nvim/api/keysets_defs.h | 1 + 2 files changed, 2 insertions(+) (limited to 'src/nvim/api') diff --git a/src/nvim/api/extmark.c b/src/nvim/api/extmark.c index e4bb9d6953..a6aadc2430 100644 --- a/src/nvim/api/extmark.c +++ b/src/nvim/api/extmark.c @@ -1049,6 +1049,7 @@ void nvim_set_decoration_provider(Integer ns_id, Dict(set_decoration_provider) * { "on_end", &opts->on_end, &p->redraw_end }, { "_on_hl_def", &opts->_on_hl_def, &p->hl_def }, { "_on_spell_nav", &opts->_on_spell_nav, &p->spell_nav }, + { "_on_conceal_line", &opts->_on_conceal_line, &p->conceal_line }, { NULL, NULL, NULL }, }; diff --git a/src/nvim/api/keysets_defs.h b/src/nvim/api/keysets_defs.h index b9bd8ea286..1ab1fe340f 100644 --- a/src/nvim/api/keysets_defs.h +++ b/src/nvim/api/keysets_defs.h @@ -21,6 +21,7 @@ typedef struct { LuaRefOf(("end" _, Integer tick)) on_end; LuaRefOf(("hl_def" _)) _on_hl_def; LuaRefOf(("spell_nav" _)) _on_spell_nav; + LuaRefOf(("conceal_line" _)) _on_conceal_line; } Dict(set_decoration_provider); typedef struct { -- cgit