blob: dcc7df2dabb50f89264ed092ff848f44feaa565b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
local disabled = { latex = true, tex = true }
local ft_lang_map = {}
vim.api.nvim_create_autocmd("FileType", {
group = vim.api.nvim_create_augroup("treesitter_highlight_group", { clear = true }),
callback = function(ev)
local buf = ev.buf
if not vim.api.nvim_buf_is_loaded(buf) then return end
local ft = vim.bo[buf].filetype
if disabled[ft] then return end
if ft_lang_map[ft] then
vim.treesitter.language.register(ft_lang_map[ft], ft)
ft_lang_map[ft] = nil
end
local parser = vim.treesitter.get_parser(buf, nil, { error = false })
if parser == nil then
disabled[ft] = true
return
end
if not vim.treesitter.highlighter.active[buf] then
vim.treesitter.highlighter.new(parser)
end
if vim.treesitter.query.get(ft, "folds") then
vim.wo.foldmethod = "expr"
vim.wo.foldexpr = "v:lua.vim.treesitter.foldexpr()"
end
end
})
|