dotfiles/nvim/lua/config/lazy/99-treesitter.lua

53 lines
1.2 KiB
Lua

return {
"nvim-treesitter/nvim-treesitter",
dependencies = {
"nvim-treesitter/nvim-treesitter-textobjects",
},
build = ":TSUpdate",
main = "nvim-treesitter.configs",
opts = {
ensure_installed = {
"bash",
"c",
"diff",
"html",
"jsonc",
"lua",
"luadoc",
"markdown",
"markdown_inline",
"query",
"vim",
"vimdoc",
},
auto_install = true,
highlight = {
enable = true,
additional_vim_regex_highlighting = { "ruby" },
},
indent = {
enable = true,
disable = { "ruby" },
},
textobjects = {
select = {
enable = true,
lookahead = true,
keymaps = {
["af"] = { query = "@function.outer", desc = "Select around function" },
["if"] = { query = "@function.inner", desc = "Select inside of function" },
["ac"] = { query = "@class.outer", desc = "Select around class" },
["ic"] = { query = "@class.inner", desc = "Select inside class" },
["as"] = { query = "@scope", query_group = "locals", desc = "Select around scope" },
},
selection_modes = {
["@parameter.outer"] = "v",
["@function.outer"] = "v",
["@class.outer"] = "<c-v>",
},
include_surrounding_whitespace = true,
},
},
},
}