From 3c29f196f4b0f083f2b94c3337599a189f4eef84 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Tue, 7 Feb 2023 20:56:54 +0100 Subject: [PATCH] feat(cmd): use cmd table instead of trying to create the cmd string. Fixes #472 --- lua/lazy/core/handler/cmd.lua | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/lua/lazy/core/handler/cmd.lua b/lua/lazy/core/handler/cmd.lua index a4913e0c..142eda82 100644 --- a/lua/lazy/core/handler/cmd.lua +++ b/lua/lazy/core/handler/cmd.lua @@ -14,16 +14,22 @@ end ---@param cmd string function M:_add(cmd) vim.api.nvim_create_user_command(cmd, function(event) + local command = { + cmd = cmd, + bang = event.bang or nil, + mods = event.smods, + args = event.fargs, + count = event.count >= 0 and event.count or nil, + } + + if event.range == 1 then + command.range = { event.line1 } + elseif event.range == 2 then + command.range = { event.line1, event.line2 } + end + self:_load(cmd) - vim.cmd( - ("%s %s%s%s %s"):format( - event.mods or "", - event.line1 == event.line2 and "" or event.line1 .. "," .. event.line2, - cmd, - event.bang and "!" or "", - event.args or "" - ) - ) + vim.cmd(command) end, { bang = true, range = true,