diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2020-09-21 10:37:28 +0200 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2020-10-10 15:16:45 +0200 |
commit | 0b615dae073c14078c0a92b8aaed1da24575afcf (patch) | |
tree | d46cec554e489a92ed0d81ea6c5780d9c27dd87e /runtime/lua/vim/treesitter/highlighter.lua | |
parent | 11ec53e558b547bbe49c93d206a8e4ab4247511b (diff) | |
download | rneovim-0b615dae073c14078c0a92b8aaed1da24575afcf.tar.gz rneovim-0b615dae073c14078c0a92b8aaed1da24575afcf.tar.bz2 rneovim-0b615dae073c14078c0a92b8aaed1da24575afcf.zip |
api: multiple decoration providers at once
Diffstat (limited to 'runtime/lua/vim/treesitter/highlighter.lua')
-rw-r--r-- | runtime/lua/vim/treesitter/highlighter.lua | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/runtime/lua/vim/treesitter/highlighter.lua b/runtime/lua/vim/treesitter/highlighter.lua index 5b964a6020..0f497fe434 100644 --- a/runtime/lua/vim/treesitter/highlighter.lua +++ b/runtime/lua/vim/treesitter/highlighter.lua @@ -6,6 +6,8 @@ TSHighlighter.__index = TSHighlighter TSHighlighter.active = TSHighlighter.active or {} +local ns = a.nvim_create_namespace("treesitter/highlighter") + -- These are conventions defined by tree-sitter, though it -- needs to be user extensible also. TSHighlighter.hl_map = { @@ -158,7 +160,11 @@ function TSHighlighter._on_line(_, _win, buf, line) local start_row, start_col, end_row, end_col = node:range() local hl = self.hl_cache[capture] if hl and end_row >= line then - a.nvim__put_attr(start_row, start_col, { end_line = end_row, end_col = end_col, hl_group = hl }) + a.nvim_buf_set_extmark(buf, ns, start_row, start_col, + { end_line = end_row, end_col = end_col, + hl_group = hl, + ephemeral = true + }) end if start_row > line then self.nextrow = start_row @@ -166,7 +172,7 @@ function TSHighlighter._on_line(_, _win, buf, line) end end -function TSHighlighter._on_start(_, buf, _tick) +function TSHighlighter._on_buf(_, buf) local self = TSHighlighter.active[buf] if self then local tree = self.parser:parse() @@ -187,10 +193,10 @@ function TSHighlighter._on_win(_, _win, buf, _topline, botline) return true end -a.nvim__set_luahl { - on_start = TSHighlighter._on_start; +a.nvim_set_decoration_provider(ns, { + on_buf = TSHighlighter._on_buf; on_win = TSHighlighter._on_win; on_line = TSHighlighter._on_line; -} +}) return TSHighlighter |