folke / flash.nvim

Navigate your code with search labels, enhanced character motions and Treesitter integration
Apache License 2.0
2.24k stars 28 forks source link

bug: df/dt dot repeat unexpected behavior on double letters (e.g. `>>`) #280

Open zuqini opened 7 months ago

zuqini commented 7 months ago

Did you check docs and existing issues?

Neovim version (nvim -v)

NVIM v0.9.4 Build type: RelWithDebInfo LuaJIT 2.1.1696883897

Operating system/version

Windows 11

Describe the bug

Context: When I was editing some nested angle brackets like Vector<Vector<String>> , I ran dt> to place the cursor on >>. When I ran .. instead of deleting until the next single >, it instead deleted until the next >>, which is unexpected.

This is better shown in the repro steps below.

Steps To Reproduce

  1. nvim -u repro.lua
  2. Insert the following text: aaa aaa aaa
  3. Press _ to place cursor (|) on the first character:
    |aaa aaa aaa
  4. Press dta to delete the first a:
    |aa aaa aaa
  5. Pressing . will unexpectedly delete aa instead of just one a:
    |aaa aaa

Expected Behavior

On step 5, it should only delete one a and result in:

|a aaa aaa

Running the repro steps with nvim --noplugin will produce the expected behavior.

Repro

-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")

-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  { "folke/flash.nvim", opts = {} },
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here
github-actions[bot] commented 4 days ago

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days.

zuqini commented 4 days ago

Was checking if this is still happening and I was able to reproduce the issue with the latest version of flash.nvim on MacOS.