aboutsummaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorDamjan 9000 <damjan.9000@gmail.com>2023-10-22 12:27:28 +0200
committerDamjan 9000 <damjan.9000@gmail.com>2023-11-03 21:01:49 +0100
commita13e1b0effb01f094d6100f48d82e582ab1ff852 (patch)
treeedeb90619e72e6e0038f975448127e315de3c485 /lua
parent7a354c714eb2b787a2370d89052cc9c9c514726c (diff)
Added lua/treesitter-setup.lua
Diffstat (limited to 'lua')
-rw-r--r--lua/treesitter-setup.lua70
1 files changed, 70 insertions, 0 deletions
diff --git a/lua/treesitter-setup.lua b/lua/treesitter-setup.lua
new file mode 100644
index 0000000..78c84e4
--- /dev/null
+++ b/lua/treesitter-setup.lua
@@ -0,0 +1,70 @@
+-- [[ Configure Treesitter ]]
+-- See `:help nvim-treesitter`
+-- Defer Treesitter setup after first render to improve startup time of 'nvim {filename}'
+vim.defer_fn(function()
+ require('nvim-treesitter.configs').setup {
+ -- Add languages to be installed here that you want installed for treesitter
+ ensure_installed = { 'c', 'cpp', 'go', 'lua', 'python', 'rust', 'tsx', 'javascript', 'typescript', 'vimdoc', 'vim', 'bash' },
+
+ -- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!)
+ auto_install = false,
+
+ highlight = { enable = true },
+ indent = { enable = true },
+ incremental_selection = {
+ enable = true,
+ keymaps = {
+ init_selection = '<c-space>',
+ node_incremental = '<c-space>',
+ scope_incremental = '<c-s>',
+ node_decremental = '<M-space>',
+ },
+ },
+ textobjects = {
+ select = {
+ enable = true,
+ lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim
+ keymaps = {
+ -- You can use the capture groups defined in textobjects.scm
+ ['aa'] = '@parameter.outer',
+ ['ia'] = '@parameter.inner',
+ ['af'] = '@function.outer',
+ ['if'] = '@function.inner',
+ ['ac'] = '@class.outer',
+ ['ic'] = '@class.inner',
+ },
+ },
+ move = {
+ enable = true,
+ set_jumps = true, -- whether to set jumps in the jumplist
+ goto_next_start = {
+ [']m'] = '@function.outer',
+ [']]'] = '@class.outer',
+ },
+ goto_next_end = {
+ [']M'] = '@function.outer',
+ [']['] = '@class.outer',
+ },
+ goto_previous_start = {
+ ['[m'] = '@function.outer',
+ ['[['] = '@class.outer',
+ },
+ goto_previous_end = {
+ ['[M'] = '@function.outer',
+ ['[]'] = '@class.outer',
+ },
+ },
+ swap = {
+ enable = true,
+ swap_next = {
+ ['<leader>a'] = '@parameter.inner',
+ },
+ swap_previous = {
+ ['<leader>A'] = '@parameter.inner',
+ },
+ },
+ },
+ }
+end, 0)
+
+-- vim: ts=2 sts=2 sw=2 et