Files
nixcfg/lua/plugins/treesitter.lua
Daniel Patterson 4132b0ea05 Squashed 'users/configs/system/nvim/nvim/' content from commit e088bce2
git-subtree-dir: users/configs/system/nvim/nvim
git-subtree-split: e088bce2bd90c0b5c35d13a8615a55455b96294d
2023-06-25 15:39:58 +01:00

98 lines
3.5 KiB
Lua

return {
"nvim-treesitter/nvim-treesitter",
dependencies = {
"JoosepAlviste/nvim-ts-context-commentstring",
"nvim-treesitter/nvim-treesitter-textobjects",
"windwp/nvim-ts-autotag",
},
event = "User AstroFile",
cmd = {
"TSBufDisable",
"TSBufEnable",
"TSBufToggle",
"TSDisable",
"TSEnable",
"TSToggle",
"TSInstall",
"TSInstallInfo",
"TSInstallSync",
"TSModuleInfo",
"TSUninstall",
"TSUpdate",
"TSUpdateSync",
},
build = ":TSUpdate",
opts = {
autotag = { enable = true },
context_commentstring = { enable = true, enable_autocmd = false },
highlight = {
enable = true,
disable = function(_, bufnr) return vim.api.nvim_buf_line_count(bufnr) > 10000 end,
},
incremental_selection = { enable = true },
indent = { enable = true },
textobjects = {
select = {
enable = true,
lookahead = true,
keymaps = {
["ak"] = "@block.outer",
["ik"] = "@block.inner",
["ac"] = "@class.outer",
["ic"] = "@class.inner",
["a?"] = "@conditional.outer",
["i?"] = "@conditional.inner",
["af"] = "@function.outer",
["if"] = "@function.inner",
["al"] = "@loop.outer",
["il"] = "@loop.inner",
["aa"] = "@parameter.outer",
["ia"] = "@parameter.inner",
},
},
move = {
enable = true,
set_jumps = true,
goto_next_start = {
["]k"] = { query = "@block.outer", desc = "Next block start" },
["]c"] = { query = "@class.outer", desc = "Next class start" },
["]f"] = { query = "@function.outer", desc = "Next function start" },
["]a"] = { query = "@parameter.outer", desc = "Next parameter start" },
},
goto_next_end = {
["]k"] = { query = "@block.outer", desc = "Next block end" },
["]c"] = { query = "@class.outer", desc = "Next class end" },
["]f"] = { query = "@function.outer", desc = "Next function end" },
["]a"] = { query = "@parameter.outer", desc = "Next parameter end" },
},
goto_previous_start = {
["[k"] = { query = "@block.outer", desc = "Previous block start" },
["[c"] = { query = "@class.outer", desc = "Previous class start" },
["[f"] = { query = "@function.outer", desc = "Previous function start" },
["[a"] = { query = "@parameter.outer", desc = "Previous parameter start" },
},
goto_previous_end = {
["[K"] = { query = "@block.outer", desc = "Previous block end" },
["[C"] = { query = "@class.outer", desc = "Previous class end" },
["[F"] = { query = "@function.outer", desc = "Previous function end" },
["[A"] = { query = "@parameter.outer", desc = "Previous parameter 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 parameter" },
},
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 parameter" },
},
},
},
},
config = require "plugins.configs.nvim-treesitter",
}