aboutsummaryrefslogtreecommitdiff
path: root/plugin/40-treesitter.lua
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/40-treesitter.lua')
-rw-r--r--plugin/40-treesitter.lua58
1 files changed, 58 insertions, 0 deletions
diff --git a/plugin/40-treesitter.lua b/plugin/40-treesitter.lua
new file mode 100644
index 0000000..a9ff45b
--- /dev/null
+++ b/plugin/40-treesitter.lua
@@ -0,0 +1,58 @@
+vim.pack.add({ "https://github.com/nvim-treesitter/nvim-treesitter" })
+
+local ts = require("nvim-treesitter")
+
+local ensure_installed = {
+ "asm",
+ "bash",
+ "c",
+ "c_sharp",
+ "cpp",
+ "css",
+ "git_config",
+ "gitattributes",
+ "gitcommit",
+ "gitignore",
+ "glsl",
+ "hare",
+ "html",
+ "java",
+ "javascript",
+ "json",
+ "kotlin",
+ "lua",
+ "make",
+ "markdown",
+ "markdown_inline",
+ "python",
+ "rust",
+ "scss",
+ "svelte",
+ "typescript",
+ "vim",
+ "vimdoc",
+ "yaml",
+}
+
+ts.install(ensure_installed, {
+ max_jobs = 12,
+ summary = false,
+})
+
+local ignore = {
+ "checkhealth",
+ "lazy",
+ "mason",
+ "TelescopePrompt",
+}
+
+vim.api.nvim_create_autocmd("FileType", {
+ group = vim.api.nvim_create_augroup("EnableTreesitterHighlighting", { clear = true }),
+ callback = function(event)
+ if vim.tbl_contains(ignore, event.match) then
+ return
+ end
+
+ pcall(function() vim.treesitter.start(event.buf) end)
+ end
+})