blob: 1fb4503d717049fea182f483fb7a0eda37db99cf (
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
34
35
36
37
38
39
40
41
42
|
local disabled = {}
local ft_lang_map = {}
vim.api.nvim_create_autocmd("FileType", {
group = vim.api.nvim_create_augroup("treesitter_highlight_augroup", {clear = true}),
callback = function(ev)
local buf = ev.buf
if vim.api.nvim_buf_is_loaded(buf) then
local ft = vim.bo[buf].filetype
if not disabled[ft] then
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
else
if not vim.treesitter.highlighter.active[buf] then
vim.treesitter.highlighter.new(parser)
end
end
end
end
--(when (vim.api.nvim_buf_is_loaded buf)
-- (let [ft (. vim.bo buf :filetype)]
-- (when (not (. disabled ft))
-- (case (. ft-lang-map ft)
-- lang (do
-- (vim.treesitter.language.register lang ft)
-- (tset ft-lang-map ft nil)))
-- (case (vim.treesitter.get_parser buf nil {:error false})
-- nil (tset disabled ft true)
-- parser (do
-- (when (not (. vim.treesitter.highlighter.active buf))
-- (vim.treesitter.highlighter.new parser))
-- (when (vim.treesitter.query.get ft :folds)
-- (set vim.wo.foldmethod :expr)
-- (set vim.wo.foldexpr "v:lua.vim.treesitter.foldexpr()")))))))))
end
})
|