fix: prevent autocmd outbursts by using setcmdline instead of feedkey (#1446)
This commit is contained in:
@@ -411,7 +411,17 @@ custom_entries_view._insert = setmetatable({
|
||||
word = word or ''
|
||||
if api.is_cmdline_mode() then
|
||||
local cursor = api.get_cursor()
|
||||
vim.api.nvim_feedkeys(keymap.backspace(string.sub(api.get_current_line(), self.offset, cursor[2])) .. word, 'int', true)
|
||||
-- setcmdline() added in v0.8.0
|
||||
if vim.fn.setcmdline then
|
||||
local current_line = api.get_current_line()
|
||||
local before_line = current_line:sub(1, self.offset - 1)
|
||||
local after_line = current_line:sub(cursor[2] + 1)
|
||||
local pos = vim.fn.strdisplaywidth(before_line .. word) + 1
|
||||
vim.fn.setcmdline(before_line .. word .. after_line, pos)
|
||||
vim.api.nvim_feedkeys(keymap.t('<Cmd>redraw<CR>'), 'ni', false)
|
||||
else
|
||||
vim.api.nvim_feedkeys(keymap.backspace(string.sub(api.get_current_line(), self.offset, cursor[2])) .. word, 'int', true)
|
||||
end
|
||||
else
|
||||
if this.pending then
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user