aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api
diff options
context:
space:
mode:
authorLuuk van Baal <luukvbaal@gmail.com>2024-11-24 14:46:20 +0100
committerluukvbaal <luukvbaal@gmail.com>2025-02-25 13:09:01 +0100
commit8ba047e33fe3a10765c593c810d54b5e3bb906e9 (patch)
treea31efbda695dcae1e1d31c738b72fec5669bf32f /src/nvim/api
parentf58e7d5fac1c4f63f0ba3e59134591239182910e (diff)
downloadrneovim-8ba047e33fe3a10765c593c810d54b5e3bb906e9.tar.gz
rneovim-8ba047e33fe3a10765c593c810d54b5e3bb906e9.tar.bz2
rneovim-8ba047e33fe3a10765c593c810d54b5e3bb906e9.zip
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.
Diffstat (limited to 'src/nvim/api')
-rw-r--r--src/nvim/api/extmark.c1
-rw-r--r--src/nvim/api/keysets_defs.h1
2 files changed, 2 insertions, 0 deletions
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 {