folke / which-key.nvim

💥 Create key bindings that stick. WhichKey helps you remember your Neovim keymaps, by showing available keybindings in a popup as you type.
Apache License 2.0
4.99k stars 160 forks source link

bug: Mapping a function, concatenates the compile commandd with the result. #546

Closed druidamix closed 3 weeks ago

druidamix commented 8 months ago

Did you check docs and existing issues?

Neovim version (nvim -v)

NVIM v0.9.4 Build type: Release

Operating system/version

archlinux

Describe the bug

Hello, Mapping a function on a key has a problem.

For example ExecRun() function mapped on r in a test program results on:

23 42 179un' '/home/druida/Projects/xgo/main.go' 2>&1| tee /tmp/nvim.druida/icK2o Account balance 159

while running the command GoRun directly:

:!'go' 'run' '/home/druida/Projects/xgo/main.go' 2>&1| tee /tmp/nvim.druida/icK2o 2/3 23 42 179 Account balance 159

-- copied whichkey example function ExecRun() if vim.bo.filetype == "rust" then vim.cmd("RustRun") elseif vim.bo.filetype == "go" then vim.cmd("GoRun") end end

local mappings = { -- ["e"] = { "NvimTreeToggle", "Explorer" }, ["e"] = { "Neotree", "Explorer" },

c = { name = "Code", r = { ExecRun, "ExecRun" }, g = { "GoRun", "GoRun" }, p = { "RustRun", "RustRun" }, b = { "GoBuild", "GoBuild" }, l = { "Golint", "GoLint" }

},

Steps To Reproduce

  1. Create a function like: function ExecRun() if vim.bo.filetype == "rust" then vim.cmd("RustRun") elseif vim.bo.filetype == "go" then vim.cmd("GoRun") end end
  2. Map the function on a key.
  3. Run the key to see the result of a simple program like rust or go to se mixed result.

Expected Behavior

It is expected see console result below the compiler run command.

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/which-key.nvim", config = true },
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here
github-actions[bot] commented 1 month 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.