nvim/lua/config/treesitter.lua

46 lines
986 B
Lua

local treesitter_filetypes = {
"lua",
"c",
"cpp",
"python",
"nix",
"rust",
"bash",
"markdown",
"html",
"javascript",
"javascriptreact",
"css",
"vim",
"gitconfig",
"gitrebase",
"gitattributes",
"gitcommit",
"gitignore",
}
local language_by_filetype = {
gitconfig = "git_config",
gitrebase = "git_rebase",
javascriptreact = "javascript",
}
for filetype, language in pairs(language_by_filetype) do
vim.treesitter.language.register(language, filetype)
end
vim.api.nvim_create_autocmd("FileType", {
group = vim.api.nvim_create_augroup("config_treesitter", { clear = true }),
pattern = treesitter_filetypes,
callback = function(event)
local language = vim.treesitter.language.get_lang(vim.bo[event.buf].filetype)
if not language then
return
end
local ok, has_parser = pcall(vim.treesitter.language.add, language)
if ok and has_parser then
pcall(vim.treesitter.start, event.buf, language)
end
end,
})