dotfiles/.config/nvim/lua/null/plugins/treesitter.lua

80 lines
1.9 KiB
Lua

require("null.util").lazy_file()
return {
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
event = { "LazyFile", "VeryLazy" },
opts = {
ensure_installed = {
"c",
"elixir",
"fluent",
"go",
"gsp",
"hyprlang",
"json5",
"julia",
-- "latex",
"python",
"rust",
"sxhkdrc",
"latex",
-- HTML template langs
"htmljinja",
"jinja",
"jinja_inline",
},
sync_install = false,
auto_install = true,
highlight = {
enable = true,
additional_vim_regex_highlighting = false,
},
},
config = function (_, opts)
local parsers = require("nvim-treesitter.parsers")
local config = parsers.get_parser_configs()
config.gsp = {
install_info = {
url = "https://git.sr.ht/~mango/tree-sitter-gsp",
files = {"src/parser.c"},
},
filetype = "gsp",
}
config.fluent = {
install_info = {
url = "https://github.com/projectfluent/tree-sitter-fluent", -- local path or git repo
files = {"src/parser.c"}, -- note that some parsers also require src/scanner.c or src/scanner.cc
},
filetype = "fluent", -- if filetype does not match the parser name
}
config.htmljinja = {
install_info = {
url = "https://github.com/null2264/tree-sitter-htmldjango", -- local path or git repo
files = {"src/parser.c"}, -- note that some parsers also require src/scanner.c or src/scanner.cc
},
filetype = "htmldjango", -- if filetype does not match the parser name
}
vim.filetype.add({
extension = { rasi = "rasi" },
pattern = {
[".*/hypr/.*%.conf"] = "hyprlang",
},
})
vim.filetype.add({
extension = {
mdx = "mdx"
}
})
vim.treesitter.language.register("markdown", "mdx")
require("nvim-treesitter.configs").setup(opts)
end
},
{
url = "https://git.sr.ht/~mango/tree-sitter-gsp",
fp = "gsp",
},
}