aboutsummaryrefslogtreecommitdiff
path: root/nvim/dot-config/nvim-final/plugin/treesitter.lua
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
})