mirror of
https://github.com/itme-brain/nvim.git
synced 2026-05-08 15:10:13 -04:00
refactor(treesitter): use native neovim APIs
This commit is contained in:
parent
6176457340
commit
34c52305af
5 changed files with 57 additions and 185 deletions
46
lua/config/treesitter.lua
Normal file
46
lua/config/treesitter.lua
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
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,
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue