echasnovski / mini.nvim

Library of 40+ independent Lua modules improving overall Neovim (version 0.8 and higher) experience with minimal effort
MIT License
4.74k stars 178 forks source link

Weird conflicting behavior with `dial.nvim` #1059

Closed simonmandlik closed 1 month ago

simonmandlik commented 1 month ago

Contributing guidelines

Module(s)

mini.clue

Description

I am using dial.nvim alongside mini.clue and have recently noticed that <C-a> in visual mode doesn't work. In normal mode <C-a> works, and <C-x> work in both modes.

When I comment out g triggers, it works again.

I have also opened similar issue with dial.nvim: https://github.com/monaqa/dial.nvim/issues/94

MWE:

local root = vim.fn.fnamemodify("./.repro", ":p")
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
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)

local plugins = {
    "monaqa/dial.nvim",
    {
        "echasnovski/mini.clue",
        opts = function()
            return {
                triggers = {
                    { mode = "n", keys = "g" },
                    { mode = "v", keys = "g" }
                }
            }
        end
    }
}

require("lazy").setup(plugins, { root = root .. "/plugins", })

vim.keymap.set("n", "<C-a>", function()
    print("n <C-a>")
    require("dial.map").manipulate("increment", "normal")
end)
vim.keymap.set("v", "<C-a>", function()
    print("v <C-a>")
    require("dial.map").manipulate("increment", "visual")
end)
vim.keymap.set("n", "<C-x>", function()
    print("n <C-x>")
    require("dial.map").manipulate("decrement", "normal")
end)
vim.keymap.set("v", "<C-x>", function()
    print("v <C-x>")
    require("dial.map").manipulate("decrement", "visual")
end)

Neovim version

0.10.0

echasnovski commented 1 month ago

Thanks for the issue!

I believe monaqa/dial.nvim#95 should resolve this. Using :normal! ... instead of :normal ... is indeed a preferred way to execute some default Normal mode functionality.

Closing as not really an issue with 'mini.clue'.