summaryrefslogtreecommitdiffstats
path: root/nvim/lua/plugins/treesitter/init.lua
blob: c50393bd63fcbd904730a1af0a87309514e5eb41 (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
require("nvim-treesitter").setup()

vim.api.nvim_create_autocmd("FileType", {
	pattern = "*",
	callback = function(args)
		local lang = vim.treesitter.language.get_lang(args.match)

		if not lang or lang == "nix" then
			return
		end

		if vim.treesitter.language.add(lang) then
			vim.treesitter.start(args.buf, lang)
			return
		end

		local available = require("nvim-treesitter").get_available()

		if vim.tbl_contains(available, lang) then
			require("nvim-treesitter").install({ lang }):wait(30000)
			if vim.treesitter.language.add(lang) then
				vim.treesitter.start(args.buf, lang)
			end
		end
	end,
})