nvim-treesitter-textobjects
nvim-treesitter-textobjects copied to clipboard
Operator marks are incorrectly set
Describe the bug Operator marks are set by the plugin, even when no text-object is found.
To Reproduce
- Install the Tree-sitter parser for Lua and nvim-treesitter-textobjects, and setup with
require("nvim-treesitter.configs").setup({
textobjects = {
select = {
enable = true,
keymaps = {
["af"] = "@function.outer",
["if"] = "@function.inner",
},
},
},
})
- Open up a test file
test.lua
, with contents
local str = "this is a test file"
- Delete the starting operator mark via
:lua =vim.api.nvim_buf_del_mark(0, "[")
- Set the operatorfunc to any string (or even better, a NOOP function), e.g.
:set opfunc=a
- In normal mode, type
g@af
- Get the location of the
[
mark vialua =vim.api.nvim_buf_get_mark(0, "[")
- Error: The output is the position of the cursor
Expected behavior
The output should be { 0, 0 }
, since the marks should not be set if there is no valid text-object to be selected. This is the behavior exhibited when repeating the above with a builtin text-object, e.g. g@ab
.
Output of :checkhealth nvim_treesitter
nvim-treesitter: require("nvim-treesitter.health").check()
========================================================================
## Installation
- WARNING: `tree-sitter` executable not found (parser generator, only needed for :TSInstallFromGrammar, not required for :TSInstall)
- OK: `node` found v12.22.9 (only needed for :TSInstallFromGrammar)
- OK: `git` executable found.
- OK: `cc` executable found. Selected from { vim.NIL, "cc", "gcc", "clang", "cl", "zig" }
Version: cc (Ubuntu 11.2.0-19ubuntu1) 11.2.0
- OK: Neovim was compiled with tree-sitter runtime ABI version 14 (required >=13). Parsers must be compatible with runtime ABI.
## Parser/Features H L F I J
- c ✓ ✓ ✓ ✓ ✓
- markdown ✓ . ✓ . ✓
- vim ✓ ✓ ✓ . ✓
- cpp ✓ ✓ ✓ ✓ ✓
- python ✓ ✓ ✓ ✓ ✓
- lua ✓ ✓ ✓ ✓ ✓
- markdown_inline✓ . . . ✓
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.7.2
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/gcc-11 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNVIM_TS_HAS_SET_MATCH_LIMIT -DNVIM_TS_HAS_SET_ALLOCATOR -O2 -g -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wdouble-promotion -Wmissing-noreturn -Wmissing-format-attribute -Wmissing-prototypes -Wimplicit-fallthrough -Wsuggest-attribute=pure -Wsuggest-attribute=const -Wsuggest-attribute=malloc -Wsuggest-attribute=cold -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=always -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/home/runner/work/neovim/neovim/build/config -I/home/runner/work/neovim/neovim/src -I/home/runner/work/neovim/neovim/.deps/usr/include -I/usr/include -I/home/runner/work/neovim/neovim/build/src/nvim/auto -I/home/runner/work/neovim/neovim/build/include
Compiled by runner@fv-az395-591
Features: +acl +iconv +tui
See ":help feature-compile"
system vimrc file: "$VIM/sysinit.vim"
fall-back for $VIM: "
/home/runner/work/neovim/neovim/build/nvim.AppDir/usr/share/nvim"
Run :checkhealth for more info
Additional context N/A