return { 'nvim-treesitter/nvim-treesitter', branch = "main", build = ':TSUpdate', main = 'nvim-treesitter.config', opts = { ensure_installed = { 'c', 'cpp', 'lua', 'vim', 'vimdoc', 'markdown', 'markdown_inline', 'query', 'c_sharp', 'yaml', }, auto_install = true, sync_install = false, highlight = { enable = true }, indent = { enable = true }, -- Enable the textobjects extension textobjects = { move = { enable = true, set_jumps = true, -- Add jumps to the jumplist (:h jumplist) goto_next_start = { ["]]"] = { query = "@function.outer", desc = "Next function definition start" }, ["]c"] = { query = "@class.outer", desc = "Next class definition start" }, }, goto_previous_start = { ["[["] = { query = "@function.outer", desc = "Previous function definition start" }, ["[c"] = { query = "@class.outer", desc = "Previous class definition start" }, }, goto_next_end = { ["]f"] = { query = "@function.outer", desc = "Next function definition end" }, }, goto_previous_end = { ["[f"] = { query = "@function.outer", desc = "Previous function definition end" }, }, }, }, }, }