nvim/lua/plugins/treesitter.lua
Simon Lasbrugnas 105d6cf2ea
chore: clean up and reformat
feat: remove unused bindings
2024-04-20 04:00:04 +02:00

63 lines
1.6 KiB
Lua

return {
{
"nvim-treesitter/nvim-treesitter",
version = false,
build = ":TSUpdate",
event = { "BufReadPost", "BufWritePost", "BufNewFile", "VeryLazy" },
init = function(plugin)
require("lazy.core.loader").add_to_rtp(plugin)
require("nvim-treesitter.query_predicates")
end,
cmd = { "TSUpdateSync", "TSUpdate", "TSInstall" },
keys = {
{ "<c-space>", desc = "Increment selection" },
{ "<bs>", desc = "Decrement selection", mode = "x" },
},
opts = {
highlight = {
enable = true,
additional_vim_regex_highlighting = { "php", "twig" },
},
auto_install = true,
indent = { enable = true },
ensure_installed = { "lua", "vim", "vimdoc", "typescript", "javascript", "go", "c", "cpp", "rust", "zig", "html", "css" },
incremental_selection = {
enable = true,
keymaps = {
init_selection = "<C-space>",
node_incremental = "<C-space>",
scope_incremental = false,
node_decremental = "<bs>",
},
},
},
config = function(_, opts)
require("nvim-treesitter.configs").setup(opts)
end,
},
-- Show context of the current function
{
"nvim-treesitter/nvim-treesitter-context",
event = { "BufReadPost", "BufWritePost", "BufNewFile" },
enabled = true,
opts = { mode = "cursor", max_lines = 3 },
keys = {
{
"<leader>ut",
function()
local tsc = require("treesitter-context")
tsc.toggle()
end,
desc = "Toggle Treesitter Context",
},
},
},
-- Automatically add closing tags for HTML and JSX
{
"windwp/nvim-ts-autotag",
event = { "BufReadPost", "BufWritePost", "BufNewFile" },
opts = {},
},
}