Merge pull request #892 from ckoehler/ts-textobjects
Some checks failed
Set up binary cache / cachix (default) (push) Has been cancelled
Set up binary cache / cachix (maximal) (push) Has been cancelled
Set up binary cache / cachix (nix) (push) Has been cancelled
Treewide Checks / Validate flake (push) Has been cancelled
Treewide Checks / Check formatting (push) Has been cancelled
Treewide Checks / Check source tree for typos (push) Has been cancelled
Treewide Checks / Validate documentation builds (push) Has been cancelled
Treewide Checks / Validate hyperlinks in documentation sources (push) Has been cancelled
Treewide Checks / Validate Editorconfig conformance (push) Has been cancelled
Build and deploy documentation / Check latest commit (push) Has been cancelled
Build and deploy documentation / publish (push) Has been cancelled

feat: add treesitter textobjects
This commit is contained in:
raf 2025-05-11 08:22:20 +03:00 committed by GitHub
commit 815ed49d36
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 66 additions and 0 deletions

View file

@ -329,11 +329,13 @@
[flash.nvim]: https://github.com/folke/flash.nvim
[gitlinker.nvim]: https://github.com/linrongbin16/gitlinker.nvim
[nvim-treesitter-textobjects]: https://github.com/nvim-treesitter/nvim-treesitter-textobjects
- Fix oil config referencing snacks
- Add [flash.nvim] plugin to `vim.utility.motion.flash-nvim`
- Fix default telescope ignore list entry for '.git/' to properly match
- Add [gitlinker.nvim] plugin to `vim.git.gitlinker-nvim`
- Add [nvim-treesitter-textobjects] plugin to `vim.treesitter.textobjects`
[rrvsh](https://github.com/rrvsh):

View file

@ -2,6 +2,7 @@
imports = [
# treesitter extras
./ts-context
./ts-textobjects
./treesitter.nix
./config.nix

View file

@ -0,0 +1,23 @@
{
config,
lib,
...
}: let
inherit (lib.modules) mkIf;
inherit (lib.nvim.lua) toLuaObject;
inherit (lib.nvim.dag) entryAfter;
inherit (config.vim) treesitter;
cfg = treesitter.textobjects;
in {
config = mkIf (treesitter.enable && cfg.enable) {
vim = {
startPlugins = ["nvim-treesitter-textobjects"];
# set up treesitter-textobjects after Treesitter, whose config we're adding to.
pluginRC.treesitter-textobjects = entryAfter ["treesitter"] ''
require("nvim-treesitter.configs").setup({textobjects = ${toLuaObject cfg.setupOpts}})
'';
};
};
}

View file

@ -0,0 +1,6 @@
{
imports = [
./textobjects.nix
./config.nix
];
}

View file

@ -0,0 +1,21 @@
{lib, ...}: let
inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption;
in {
options.vim.treesitter.textobjects = {
enable = mkEnableOption "Treesitter textobjects";
setupOpts =
mkPluginSetupOption "treesitter-textobjects" {}
// {
example = {
select = {
enable = true;
lookahead = true;
keymaps = {
af = "@function.outer";
};
};
};
};
};
}

View file

@ -1906,6 +1906,19 @@
"url": "https://github.com/nvim-treesitter/nvim-treesitter-context/archive/6daca3ad780f045550b820f262002f35175a6c04.tar.gz",
"hash": "0qprwd44hw9sz0vh14p6lpvs9vxrick462pfkradmal6ak1kfwn3"
},
"nvim-treesitter-textobjects": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "nvim-treesitter",
"repo": "nvim-treesitter-textobjects"
},
"branch": "master",
"submodules": false,
"revision": "0e3be38005e9673d044e994b1e4b123adb040179",
"url": "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/archive/0e3be38005e9673d044e994b1e4b123adb040179.tar.gz",
"hash": "0y93pj3asarw7jhk4cdphhx6awxdyiwajc0n9nr4836gn48qcs85"
},
"nvim-ts-autotag": {
"type": "Git",
"repository": {