115 lines
4.0 KiB
Lua
115 lines
4.0 KiB
Lua
local M = { "nvim-treesitter/nvim-treesitter" }
|
|
|
|
M.dependencies = {
|
|
"nvim-treesitter/nvim-treesitter-textobjects",
|
|
"windwp/nvim-ts-autotag",
|
|
}
|
|
|
|
M.event = { "BufReadPost", "BufNewFile" }
|
|
|
|
M.build = ":TSUpdate"
|
|
|
|
M.cmd = {
|
|
"TSBufDisable",
|
|
"TSBufEnable",
|
|
"TSBufToggle",
|
|
"TSDisable",
|
|
"TSEnable",
|
|
"TSToggle",
|
|
"TSInstall",
|
|
"TSInstallInfo",
|
|
"TSInstallSync",
|
|
"TSModuleInfo",
|
|
"TSUninstall",
|
|
"TSUpdate",
|
|
"TSUpdateSync",
|
|
}
|
|
|
|
M.init = function(plugin)
|
|
require("lazy.core.loader").add_to_rtp(plugin)
|
|
require("nvim-treesitter.query_predicates")
|
|
end
|
|
|
|
M.opts = {
|
|
ensure_installed = {
|
|
"bash",
|
|
"c",
|
|
"lua",
|
|
"markdown",
|
|
"markdown_inline",
|
|
"python",
|
|
"query",
|
|
"vim",
|
|
"vimdoc",
|
|
},
|
|
autotag = { enable = true },
|
|
highlight = {
|
|
enable = true,
|
|
},
|
|
auto_install = true,
|
|
autopairs = {
|
|
enable = false,
|
|
},
|
|
incremental_selection = { enable = true },
|
|
indent = { enable = true },
|
|
textobjects = {
|
|
select = {
|
|
enable = true,
|
|
lookahead = true,
|
|
keymaps = {
|
|
["ak"] = { query = "@block.outer", desc = "around block" },
|
|
["ik"] = { query = "@block.inner", desc = "inside block" },
|
|
["ac"] = { query = "@class.outer", desc = "around class" },
|
|
["ic"] = { query = "@class.inner", desc = "inside class" },
|
|
["a?"] = { query = "@conditional.outer", desc = "around conditional" },
|
|
["i?"] = { query = "@conditional.inner", desc = "inside conditional" },
|
|
["af"] = { query = "@function.outer", desc = "around function " },
|
|
["if"] = { query = "@function.inner", desc = "inside function " },
|
|
["al"] = { query = "@loop.outer", desc = "around loop" },
|
|
["il"] = { query = "@loop.inner", desc = "inside loop" },
|
|
["aa"] = { query = "@parameter.outer", desc = "around argument" },
|
|
["ia"] = { query = "@parameter.inner", desc = "inside argument" },
|
|
},
|
|
},
|
|
move = {
|
|
enable = true,
|
|
set_jumps = true,
|
|
goto_next_start = {
|
|
["]k"] = { query = "@block.outer", desc = "Next block start" },
|
|
["]f"] = { query = "@function.outer", desc = "Next function start" },
|
|
["]a"] = { query = "@parameter.inner", desc = "Next argument start" },
|
|
},
|
|
goto_next_end = {
|
|
["]K"] = { query = "@block.outer", desc = "Next block end" },
|
|
["]F"] = { query = "@function.outer", desc = "Next function end" },
|
|
["]A"] = { query = "@parameter.inner", desc = "Next argument end" },
|
|
},
|
|
goto_previous_start = {
|
|
["[k"] = { query = "@block.outer", desc = "Previous block start" },
|
|
["[f"] = { query = "@function.outer", desc = "Previous function start" },
|
|
["[a"] = { query = "@parameter.inner", desc = "Previous argument start" },
|
|
},
|
|
goto_previous_end = {
|
|
["[K"] = { query = "@block.outer", desc = "Previous block end" },
|
|
["[F"] = { query = "@function.outer", desc = "Previous function end" },
|
|
["[A"] = { query = "@parameter.inner", desc = "Previous argument end" },
|
|
},
|
|
},
|
|
swap = {
|
|
enable = true,
|
|
swap_next = {
|
|
[">K"] = { query = "@block.outer", desc = "Swap next block" },
|
|
[">F"] = { query = "@function.outer", desc = "Swap next function" },
|
|
[">A"] = { query = "@parameter.inner", desc = "Swap next argument" },
|
|
},
|
|
swap_previous = {
|
|
["<K"] = { query = "@block.outer", desc = "Swap previous block" },
|
|
["<F"] = { query = "@function.outer", desc = "Swap previous function" },
|
|
["<A"] = { query = "@parameter.inner", desc = "Swap previous argument" },
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
return M
|