return { "nvim-treesitter/nvim-treesitter-textobjects", dependencies = { "nvim-treesitter/nvim-treesitter" }, init = function() local config = require 'nvim-treesitter.configs'; config.setup({ textobjects = { select = { enable = true, lookahead = true, keymaps = { ["af"] = "@function.outer", ["if"] = "@function.inner", ["ac"] = "@class.outer", ["ao"] = "@comment.outer", ["ic"] = { query = "@class.inner", desc = "Select inner part of a class region" }, ["as"] = { query = "@local.scope", query_group = "locals", desc = "Select language scope" }, }, selection_modes = { ['@parameter.outer'] = 'v', -- charwise ['@function.outer'] = 'V', -- linewise ['@class.outer'] = '', -- blockwise }, include_surrounding_whitespace = true, }, swap = { enable = true, swap_next = { ["Ca"] = { query = "@parameter.inner", desc = "Swap with next parameter" }, }, swap_previous = { ["CA"] = "@parameter.inner", }, }, }, }); end }