85 lines
2.1 KiB
Lua
85 lines
2.1 KiB
Lua
-- run ":TSUpdate" after plugin update
|
|
-- If hooks need to run on install, run this before `vim.pack.add()`
|
|
vim.api.nvim_create_autocmd("PackChanged", {
|
|
group = vim.api.nvim_create_augroup("nvim-treesitter-update", { clear = true }),
|
|
callback = function(ev)
|
|
local name, kind = ev.data.spec.name, ev.data.kind
|
|
if name == "nvim-treesitter" and kind == "update" then
|
|
if not ev.data.active then
|
|
vim.cmd.packadd("nvim-treesitter")
|
|
end
|
|
vim.cmd("TSUpdate")
|
|
print("TSUpdate done.")
|
|
end
|
|
end,
|
|
})
|
|
|
|
vim.pack.add({
|
|
{ src = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects", version = "master" },
|
|
{ src = "https://github.com/nvim-treesitter/nvim-treesitter", version = "master" },
|
|
})
|
|
local ok, configs = pcall(require, "nvim-treesitter.configs")
|
|
if ok then
|
|
configs.setup({
|
|
highlight = {
|
|
enable = true,
|
|
},
|
|
textobjects = {
|
|
select = {
|
|
enable = true,
|
|
lookahead = true,
|
|
keymaps = {
|
|
["aa"] = "@parameter.outer",
|
|
["ia"] = "@parameter.inner",
|
|
["af"] = "@function.outer",
|
|
["if"] = "@function.inner",
|
|
["ac"] = "@class.outer",
|
|
["ic"] = "@class.inner",
|
|
["al"] = "@call.outer",
|
|
["il"] = "@call.inner",
|
|
["ao"] = "@loop.outer",
|
|
["io"] = "@loop.inner",
|
|
["ad"] = "@conditional.outer",
|
|
["id"] = "@conditional.inner",
|
|
["ar"] = "@return.outer",
|
|
["ir"] = "@return.inner",
|
|
["as"] = "@statement.outer",
|
|
["ag"] = "@assignment.outer",
|
|
["ig"] = "@assignment.inner",
|
|
},
|
|
},
|
|
move = {
|
|
enable = true,
|
|
set_jumps = true,
|
|
goto_next_start = {
|
|
["]m"] = "@function.outer",
|
|
["]]"] = "@class.outer",
|
|
},
|
|
goto_next_end = {
|
|
["]M"] = "@function.outer",
|
|
["]["] = "@class.outer",
|
|
},
|
|
goto_previous_start = {
|
|
["[m"] = "@function.outer",
|
|
["[["] = "@class.outer",
|
|
},
|
|
goto_previous_end = {
|
|
["[M"] = "@function.outer",
|
|
["[]"] = "@class.outer",
|
|
},
|
|
},
|
|
swap = {
|
|
enable = true,
|
|
swap_next = {
|
|
["<leader>p"] = "@parameter.inner",
|
|
},
|
|
swap_previous = {
|
|
["<leader>P"] = "@parameter.inner",
|
|
},
|
|
},
|
|
},
|
|
})
|
|
else
|
|
print("plugin nvim-treesitter.configs missing")
|
|
end
|