diff options
Diffstat (limited to '.config/nvim/lua/plugins/treesitter.lua')
| -rw-r--r-- | .config/nvim/lua/plugins/treesitter.lua | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua new file mode 100644 index 0000000..c454b48 --- /dev/null +++ b/.config/nvim/lua/plugins/treesitter.lua | |||
| @@ -0,0 +1,73 @@ | |||
| 1 | return { | ||
| 2 | { | ||
| 3 | "nvim-treesitter/nvim-treesitter", | ||
| 4 | build = function() | ||
| 5 | pcall(require("nvim-treesitter.install").update({ with_sync = true })) | ||
| 6 | end, | ||
| 7 | dependencies = { | ||
| 8 | "nvim-treesitter/nvim-treesitter-textobjects", | ||
| 9 | }, | ||
| 10 | config = function() | ||
| 11 | require("nvim-treesitter.configs").setup({ | ||
| 12 | ensure_installed = { "bash", "bibtex", "c", "cpp", "css", "fish", "http", "latex", "lua", "python", "rust", "vim" }, | ||
| 13 | ignore_install = { }, | ||
| 14 | auto_install = true, | ||
| 15 | sync_install = false, | ||
| 16 | highlight = { | ||
| 17 | enable = true, | ||
| 18 | disable = { "latex" }, | ||
| 19 | additional_vim_regex_highlighting = false, | ||
| 20 | }, | ||
| 21 | indent = { | ||
| 22 | enable = true, | ||
| 23 | disable = { "python" } | ||
| 24 | }, | ||
| 25 | incremental_selection = { | ||
| 26 | enable = true, | ||
| 27 | keymaps = { | ||
| 28 | init_selection = "gnn", | ||
| 29 | node_incremental = "grn", | ||
| 30 | scope_incremental = "grc", | ||
| 31 | node_decremental = "grm", | ||
| 32 | }, | ||
| 33 | }, | ||
| 34 | textobjects = { | ||
| 35 | select = { | ||
| 36 | enable = true, | ||
| 37 | lookahead = true, -- automatically jump forward to textobj, similar to targets.vim | ||
| 38 | keymaps = { | ||
| 39 | -- you can use the capture groups defined in textobjects.scm | ||
| 40 | ["aa"] = "@parameter.outer", | ||
| 41 | ["ia"] = "@parameter.inner", | ||
| 42 | ["af"] = "@function.outer", | ||
| 43 | ["if"] = "@function.inner", | ||
| 44 | ["ac"] = "@class.outer", | ||
| 45 | ["ic"] = "@class.inner", | ||
| 46 | }, | ||
| 47 | }, | ||
| 48 | move = { | ||
| 49 | enable = true, | ||
| 50 | set_jumps = true, -- whether to set jumps in the jumplist | ||
| 51 | goto_next_start = { | ||
| 52 | ["]m"] = "@function.outer", | ||
| 53 | ["]]"] = "@class.outer", | ||
| 54 | }, | ||
| 55 | goto_next_end = { | ||
| 56 | ["]M"] = "@function.outer", | ||
| 57 | ["]["] = "@class.outer", | ||
| 58 | }, | ||
| 59 | goto_previous_start = { | ||
| 60 | ["[m"] = "@function.outer", | ||
| 61 | ["[["] = "@class.outer", | ||
| 62 | }, | ||
| 63 | goto_previous_end = { | ||
| 64 | ["[M"] = "@function.outer", | ||
| 65 | ["[]"] = "@class.outer", | ||
| 66 | }, | ||
| 67 | }, | ||
| 68 | }, | ||
| 69 | modules = { }, | ||
| 70 | }) | ||
| 71 | end, | ||
| 72 | }, | ||
| 73 | } | ||
