.dotfiles/configs/nvim/lua/max/plugins/treesitter.lua
2023-08-21 14:43:53 +02:00

96 lines
2.8 KiB
Lua

return {
"nvim-treesitter/nvim-treesitter",
event = "VeryLazy",
enable = false,
dependencies = {
"nvim-treesitter/nvim-treesitter-textobjects",
"JoosepAlviste/nvim-ts-context-commentstring",
"windwp/nvim-ts-autotag",
},
config = function()
require("nvim-treesitter.configs").setup({
context_commentstring = {
enable = true
},
ignore_install = {},
sync_install = false,
auto_install = true,
modules = {},
autotag = {
enable = true,
},
indent = {
enable = true,
},
incremental_selection = {
enable = true,
keymaps = {
init_selection = '<CR>',
scope_incremental = '<CR>',
node_incremental = '<TAB>',
node_decremental = '<S-TAB>',
},
},
ensure_installed = {
"bash",
"yaml",
"http",
"svelte",
"css",
"svelte",
"typescript",
"javascript",
"tsx",
"go",
"lua",
"json",
"yaml",
"prisma",
},
highlight = {
enable = true,
additional_vim_regex_highlighting = false,
},
textobjects = {
select = {
enable = true,
-- Automatically jump forward to textobj, similar to targets.vim
lookahead = true,
keymaps = {
["af"] = "@function.outer",
["if"] = "@function.inner",
["ac"] = "@class.outer",
["ic"] = "@class.inner",
},
-- You can choose the select mode (default is charwise 'v')
--
-- Can also be a function which gets passed a table with the keys
-- * query_string: eg '@function.inner'
-- * method: eg 'v' or 'o'
-- and should return the mode ('v', 'V', or '<c-v>') or a table
-- mapping query_strings to modes.
selection_modes = {
["@parameter.outer"] = "v", -- charwise
["@function.outer"] = "V", -- linewise
["@class.outer"] = "<c-v>", -- blockwise
},
-- If you set this to `true` (default is `false`) then any textobject is
-- extended to include preceding or succeeding whitespace. Succeeding
-- whitespace has priority in order to act similarly to eg the built-in
-- `ap`.
--
-- Can also be a function which gets passed a table with the keys
-- * query_string: eg '@function.inner'
-- * selection_mode: eg 'v'
-- and should return true of false
include_surrounding_whitespace = true,
},
},
})
vim.opt.foldenable = false;
vim.opt.foldmethod = "expr";
vim.opt.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
end,
build = ":TSUpdate",
}