summaryrefslogtreecommitdiff
path: root/lua/config/nvim_treesitter_config_setup.lua
diff options
context:
space:
mode:
authorYour Name <you@example.com>2024-07-03 17:03:56 +0100
committerYour Name <you@example.com>2024-07-03 17:03:56 +0100
commitc959b2112fb4c82b5bfd410df21706455225bd40 (patch)
tree6774868448d127c2f560827de8e5edbd868a2832 /lua/config/nvim_treesitter_config_setup.lua
minor additionsHEADmaster
Diffstat (limited to 'lua/config/nvim_treesitter_config_setup.lua')
-rw-r--r--lua/config/nvim_treesitter_config_setup.lua56
1 files changed, 56 insertions, 0 deletions
diff --git a/lua/config/nvim_treesitter_config_setup.lua b/lua/config/nvim_treesitter_config_setup.lua
new file mode 100644
index 0000000..cf8f79a
--- /dev/null
+++ b/lua/config/nvim_treesitter_config_setup.lua
@@ -0,0 +1,56 @@
+ require("nvim-treesitter.configs").setup({
+ ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "python", "cpp", "make",
+ "norg", "org", "latex", "tmux", "zathurarc", "yaml", "xml", "sxhkdrc", "ssh_config",
+ "sql", "regex", "r", "perl", "muttrc", "html", "fortran", "bibtex", "bash" },
+ auto_install = true,
+ highlight = {
+ enable = true,
+ },
+ incremental_selection = {
+ enable = true,
+ keymaps = {
+ init_selection = "<Leader>ss",
+ node_incremental = "<Leader>si",
+ scope_incremental = "<Leader>sc",
+ node_decremental = "<Leader>sd",
+ },
+ },
+ textobjects = {
+ select = {
+ enable = true,
+
+ -- Automatically jump forward to textobj, similar to targets.vim
+ lookahead = true,
+
+ keymaps = {
+ -- You can use the capture groups defined in textobjects.scm
+ ["af"] = "@function.outer",
+ ["if"] = "@function.inner",
+ ["ac"] = "@class.outer",
+ -- You can optionally set descriptions to the mappings (used in the desc parameter of
+ -- nvim_buf_set_keymap) which plugins like which-key display
+ ["ic"] = { query = "@class.inner", desc = "Select inner part of a class region" },
+ -- You can also use captures from other query groups like `locals.scm`
+ ["as"] = { query = "@scope", query_group = "locals", desc = "Select language scope" },
+ },
+ -- 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`.
+ include_surrounding_whitespace = true,
+ },
+ },
+ })
+