aboutsummaryrefslogtreecommitdiff
path: root/nvim/dot-config/nvim-final/plugin
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/dot-config/nvim-final/plugin')
-rw-r--r--nvim/dot-config/nvim-final/plugin/treesitter.lua42
1 files changed, 42 insertions, 0 deletions
diff --git a/nvim/dot-config/nvim-final/plugin/treesitter.lua b/nvim/dot-config/nvim-final/plugin/treesitter.lua
new file mode 100644
index 0000000..1fb4503
--- /dev/null
+++ b/nvim/dot-config/nvim-final/plugin/treesitter.lua
@@ -0,0 +1,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
+})