From 7e7a8d09377f0fe337fd387ca47f17290236e325 Mon Sep 17 00:00:00 2001 From: Gordin <9ordin@gmail.com> Date: Tue, 1 Nov 2022 22:14:37 +0100 Subject: [PATCH] Fixed cmdline_force_redraw hack for path completion --- lua/noice/util/hacks.lua | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/lua/noice/util/hacks.lua b/lua/noice/util/hacks.lua index a55bd895..2c286330 100644 --- a/lua/noice/util/hacks.lua +++ b/lua/noice/util/hacks.lua @@ -254,10 +254,22 @@ function M.fix_cmp() end function M.cmdline_force_redraw() - if vim.api.nvim_get_mode().mode == "c" and vim.fn.getcmdline():find("s/") then - -- HACK: this will trigger redraw during substitue - vim.api.nvim_input("") + if vim.api.nvim_get_mode().mode ~= "c" then return end + + local cmdline = vim.fn.getcmdline() + if cmdline:find("s/.") == nil then return end + + local ignored_commands = { + "e", "w", "x", "r", "sav", "sp", "mk", "vie", "sv", "vs", "tabe", "tabnew", + "cf", "cg", "caddf", "lf", "lg", "laddf", "diff", "ped", "redi", "so", "up", "vi", "fin" + } + for _, value in ipairs(ignored_commands) do + -- returning here prevents messing with autocompletion for paths + if cmdline:find("^" .. value) then return end end + + -- HACK: this will trigger redraw while typing a substitution command (s/.../.../) + vim.api.nvim_input("") end M._guicursor = nil