Describe the bug
I'm working on a tsx file. The first time i press cif the function content is deleted and it gets into the insert mode as expected.
Now I undo the changes with u or just write another text, escape into normal mode and press again cif, this time it won't work until exiting the buffer and reopen.
I found that when I open :InspectTree the issue is gone. When I close the :InspectTree buffer the issue recurs.
Also I found that the issue is gone when I config highlighting to true.
To Reproduce
Steps to reproduce the behavior:
Go to example.tsx and write a function with content
Click on cif
this time it works so change the function content.
press u for undo
press again cif
this time it won't work.
Expected behavior
consistency for @function.inner text object, it should work after first time
Output of :checkhealth nvim-treesitter
nvim-treesitter: require("nvim-treesitter.health").check()
Installation ~
- OK `tree-sitter` found 0.20.7 (b268e412ad4848380166af153300464e5a1cf83f) (parser generator, only needed for :TSInstallFromGrammar)
- OK `node` found v20.9.0 (only needed for :TSInstallFromGrammar)
- OK `git` executable found.
- OK `cc` executable found. Selected from { vim.NIL, "cc", "gcc", "clang", "cl", "zig" }
Version: Apple clang version 15.0.0 (clang-1500.0.40.1)
- OK Neovim was compiled with tree-sitter runtime ABI version 14 (required >=13). Parsers must be compatible with runtime ABI.
OS Info:
{
machine = "arm64",
release = "22.6.0",
sysname = "Darwin",
version = "Darwin Kernel Version 22.6.0: Wed Jul 5 22:22:05 PDT 2023; root:xnu-8796.141.3~6/RELEASE_ARM64_T6000"
} ~
Parser/Features H L F I J
- c ✓ ✓ ✓ ✓ ✓
- lua ✓ ✓ ✓ ✓ ✓
- query ✓ ✓ ✓ ✓ ✓
- tsx ✓ ✓ ✓ ✓ ✓
- vim ✓ ✓ ✓ . ✓
- vimdoc ✓ . . . ✓
Legend: H[ighlight], L[ocals], F[olds], I[ndents], In[j]ections
+) multiple parsers found, only one will be used
x) errors found in the query, try to run :TSUpdate {lang} ~
Output of nvim --version
NVIM v0.9.2
Build type: Release
LuaJIT 2.1.0-beta3
system vimrc file: "$VIM/sysinit.vim"
fall-back for $VIM: "/opt/homebrew/Cellar/neovim/0.9.2/share/nvim"
Additional context
my config:
return {
{
"nvim-treesitter/nvim-treesitter",
version = false,
build = ":TSUpdate",
dependencies = {
"nvim-ts-context-commentstring",
"nvim-treesitter-textobjects",
},
},
{
"nvim-treesitter/nvim-treesitter-textobjects",
name = "nvim-treesitter-textobjects",
config = function()
require("nvim-treesitter.configs").setup({
ensure_installed = { "c", "tsx", "lua", "vim", "vimdoc", "query" },
textobjects = {
select = {
enable = true,
-- Automatically jump forward to textobj, similar to targets.vim
lookahead = true,
keymaps = {
-- You can use the capture groups defined in textobjects.scm
["af"] = "@function.outer",
["if"] = "@function.inner",
["ac"] = "@class.outer",
-- You can optionally set descriptions to the mappings (used in the desc parameter of
-- nvim_buf_set_keymap) which plugins like which-key display
["ic"] = {
query = "@class.inner",
desc = "Select inner part of a class region",
},
-- You can also use captures from other query groups like `locals.scm`
["as"] = {
query = "@scope",
query_group = "locals",
desc = "Select language scope",
},
},
-- You can choose the select mode (default is charwise 'v')
--
-- Can also be a function which gets passed a table with the keys
-- * query_string: eg '@function.inner'
-- * method: eg 'v' or 'o'
-- and should return the mode ('v', 'V', or '<c-v>') or a table
-- mapping query_strings to modes.
selection_modes = {
["@parameter.outer"] = "v", -- charwise
["@function.outer"] = "V", -- linewise
["@class.outer"] = "<c-v>", -- blockwise
},
-- If you set this to `true` (default is `false`) then any textobject is
-- extended to include preceding or succeeding whitespace. Succeeding
-- whitespace has priority in order to act similarly to eg the built-in
-- `ap`.
--
-- Can also be a function which gets passed a table with the keys
-- * query_string: eg '@function.inner'
-- * selection_mode: eg 'v'
-- and should return true of false
include_surrounding_whitespace = true,
},
},
})
end,
},
}
Describe the bug I'm working on a
tsx
file. The first time i presscif
the function content is deleted and it gets into the insert mode as expected. Now I undo the changes withu
or just write another text, escape into normal mode and press againcif
, this time it won't work until exiting the buffer and reopen.I found that when I open
:InspectTree
the issue is gone. When I close the:InspectTree
buffer the issue recurs. Also I found that the issue is gone when I config highlighting to true.To Reproduce Steps to reproduce the behavior:
example.tsx
and write a function with contentcif
u
for undocif
Expected behavior consistency for
@function.inner
text object, it should work after first timeOutput of
:checkhealth nvim-treesitter
nvim-treesitter: require("nvim-treesitter.health").check() Installation ~ - OK `tree-sitter` found 0.20.7 (b268e412ad4848380166af153300464e5a1cf83f) (parser generator, only needed for :TSInstallFromGrammar) - OK `node` found v20.9.0 (only needed for :TSInstallFromGrammar) - OK `git` executable found. - OK `cc` executable found. Selected from { vim.NIL, "cc", "gcc", "clang", "cl", "zig" } Version: Apple clang version 15.0.0 (clang-1500.0.40.1) - OK Neovim was compiled with tree-sitter runtime ABI version 14 (required >=13). Parsers must be compatible with runtime ABI. OS Info: { machine = "arm64", release = "22.6.0", sysname = "Darwin", version = "Darwin Kernel Version 22.6.0: Wed Jul 5 22:22:05 PDT 2023; root:xnu-8796.141.3~6/RELEASE_ARM64_T6000" } ~ Parser/Features H L F I J - c ✓ ✓ ✓ ✓ ✓ - lua ✓ ✓ ✓ ✓ ✓ - query ✓ ✓ ✓ ✓ ✓ - tsx ✓ ✓ ✓ ✓ ✓ - vim ✓ ✓ ✓ . ✓ - vimdoc ✓ . . . ✓ Legend: H[ighlight], L[ocals], F[olds], I[ndents], In[j]ections +) multiple parsers found, only one will be used x) errors found in the query, try to run :TSUpdate {lang} ~
Output of
nvim --version
Additional context my config: