mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-05 13:00:08 -04:00
refacto: expose a function to set custom capture for the higlighter
BREAKING: deprecate custom_captures from highlight config. This allows plugin authors to extend the map. It also avoids settings user configuration specific values during the highlighter initialization (SOC). Not sure how much value this brings, and might potentially break a lot of people configurations. This is questionable.
This commit is contained in:
parent
af71c25edc
commit
560e8fb450
4 changed files with 31 additions and 19 deletions
|
|
@ -22,8 +22,9 @@ local is_initialized = false
|
|||
local builtin_modules = {
|
||||
highlight = {
|
||||
module_path = "nvim-treesitter.highlight",
|
||||
enable = false,
|
||||
-- @deprecated: use `highlight.set_custom_captures` instead
|
||||
custom_captures = {},
|
||||
enable = false,
|
||||
is_supported = function(lang)
|
||||
return queries.has_highlights(lang)
|
||||
end,
|
||||
|
|
|
|||
|
|
@ -114,10 +114,6 @@ local function enable_syntax(bufnr)
|
|||
api.nvim_buf_set_option(bufnr, "syntax", "ON")
|
||||
end
|
||||
|
||||
function M.get_config()
|
||||
return configs.get_module "highlight"
|
||||
end
|
||||
|
||||
function M.stop(bufnr)
|
||||
if ts.highlighter.active[bufnr] then
|
||||
ts.highlighter.active[bufnr]:destroy()
|
||||
|
|
@ -126,18 +122,13 @@ end
|
|||
|
||||
function M.start(bufnr, lang)
|
||||
local parser = parsers.get_parser(bufnr, lang)
|
||||
local config = M.get_config()
|
||||
|
||||
for k, v in pairs(config.custom_captures) do
|
||||
hlmap[k] = v
|
||||
end
|
||||
|
||||
ts.highlighter.new(parser, {})
|
||||
end
|
||||
|
||||
function M.attach(bufnr, lang)
|
||||
local config = configs.get_module "highlight"
|
||||
M.start(bufnr, lang)
|
||||
if should_enable_vim_regex(M.get_config(), lang) then
|
||||
if should_enable_vim_regex(config, lang) then
|
||||
enable_syntax(bufnr)
|
||||
end
|
||||
end
|
||||
|
|
@ -147,4 +138,10 @@ function M.detach(bufnr)
|
|||
enable_syntax(bufnr)
|
||||
end
|
||||
|
||||
function M.set_custom_captures(captures)
|
||||
for k, v in pairs(captures) do
|
||||
hlmap[k] = v
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue