chores: use stopinsert (#1745)

This commit is contained in:
yetone
2025-03-28 00:17:01 +08:00
committed by GitHub
parent cfc5a78813
commit a9b01e766e
6 changed files with 14 additions and 17 deletions

View File

@@ -515,7 +515,7 @@ end
function M.choose(side) function M.choose(side)
local bufnr = api.nvim_get_current_buf() local bufnr = api.nvim_get_current_buf()
if vim.fn.mode() == "v" or vim.fn.mode() == "V" or vim.fn.mode() == "" then if vim.fn.mode() == "v" or vim.fn.mode() == "V" or vim.fn.mode() == "" then
api.nvim_feedkeys(api.nvim_replace_termcodes("<Esc>", true, false, true), "n", true) vim.cmd("noautocmd stopinsert")
-- have to defer so that the < and > marks are set -- have to defer so that the < and > marks are set
vim.defer_fn(function() vim.defer_fn(function()
local start = api.nvim_buf_get_mark(0, "<")[1] local start = api.nvim_buf_get_mark(0, "<")[1]

View File

@@ -136,8 +136,8 @@ function M.func(opts, on_log, on_complete)
local confirm = Helpers.confirm("Are you sure you want to apply this modification?", function(ok) local confirm = Helpers.confirm("Are you sure you want to apply this modification?", function(ok)
pcall(vim.api.nvim_del_augroup_by_id, augroup) pcall(vim.api.nvim_del_augroup_by_id, augroup)
vim.api.nvim_set_current_win(sidebar.code.winid) vim.api.nvim_set_current_win(sidebar.code.winid)
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("<Esc>", true, false, true), "n", true) vim.cmd("noautocmd stopinsert")
vim.cmd("undo") vim.cmd("noautocmd undo")
if not ok then if not ok then
vim.api.nvim_set_current_win(current_winid) vim.api.nvim_set_current_win(current_winid)
on_complete(false, "User canceled") on_complete(false, "User canceled")

View File

@@ -205,7 +205,7 @@ end
function Sidebar:shutdown() function Sidebar:shutdown()
Llm.cancel_inflight_request() Llm.cancel_inflight_request()
self:close() self:close()
vim.cmd("stopinsert") vim.cmd("noautocmd stopinsert")
end end
---@return boolean ---@return boolean
@@ -1371,7 +1371,7 @@ function Sidebar:apply(current_cursor)
local function process(winid) local function process(winid)
api.nvim_set_current_win(winid) api.nvim_set_current_win(winid)
api.nvim_feedkeys(api.nvim_replace_termcodes("<Esc>", true, false, true), "n", true) vim.cmd("noautocmd stopinsert")
Diff.add_visited_buffer(bufnr) Diff.add_visited_buffer(bufnr)
Diff.process(bufnr) Diff.process(bufnr)
api.nvim_win_set_cursor(winid, { 1, 0 }) api.nvim_win_set_cursor(winid, { 1, 0 })
@@ -1411,7 +1411,7 @@ function Sidebar:apply(current_cursor)
insert_conflict_contents(bufnr, snippets) insert_conflict_contents(bufnr, snippets)
local function process(winid) local function process(winid)
api.nvim_set_current_win(winid) api.nvim_set_current_win(winid)
api.nvim_feedkeys(api.nvim_replace_termcodes("<Esc>", true, false, true), "n", true) vim.cmd("noautocmd stopinsert")
Diff.add_visited_buffer(bufnr) Diff.add_visited_buffer(bufnr)
Diff.process(bufnr) Diff.process(bufnr)
api.nvim_win_set_cursor(winid, { 1, 0 }) api.nvim_win_set_cursor(winid, { 1, 0 })
@@ -1893,10 +1893,7 @@ function Sidebar:on_mount(opts)
then then
api.nvim_set_current_win(self.input_container.winid) api.nvim_set_current_win(self.input_container.winid)
vim.defer_fn(function() vim.defer_fn(function()
if Config.windows.ask.start_insert then if Config.windows.ask.start_insert then vim.cmd("noautocmd startinsert!") end
Utils.debug("starting insert")
vim.cmd("startinsert!")
end
end, 300) end, 300)
end end
end end
@@ -2910,7 +2907,7 @@ function Sidebar:create_input_container(opts)
if Utils.in_visual_mode() then if Utils.in_visual_mode() then
-- Exit visual mode -- Exit visual mode
api.nvim_feedkeys(api.nvim_replace_termcodes("<Esc>", true, false, true), "n", true) vim.cmd("noautocmd stopinsert")
end end
self.input_container:map("n", Config.mappings.submit.normal, on_submit) self.input_container:map("n", Config.mappings.submit.normal, on_submit)
@@ -3070,14 +3067,14 @@ function Sidebar:create_input_container(opts)
group = self.augroup, group = self.augroup,
buffer = self.input_container.bufnr, buffer = self.input_container.bufnr,
callback = function() callback = function()
if Config.windows.ask.start_insert then vim.cmd("startinsert!") end if Config.windows.ask.start_insert then vim.cmd("noautocmd startinsert!") end
end, end,
}) })
api.nvim_create_autocmd("BufLeave", { api.nvim_create_autocmd("BufLeave", {
group = self.augroup, group = self.augroup,
buffer = self.input_container.bufnr, buffer = self.input_container.bufnr,
callback = function() vim.cmd("stopinsert") end, callback = function() vim.cmd("noautocmd stopinsert") end,
}) })
-- Show hint in insert mode -- Show hint in insert mode

View File

@@ -417,7 +417,7 @@ function Suggestion:accept()
self:set_internal_move(true) self:set_internal_move(true)
api.nvim_win_set_cursor(0, { first_line_row, col }) api.nvim_win_set_cursor(0, { first_line_row, col })
vim.cmd("normal! zz") vim.cmd("normal! zz")
vim.cmd("startinsert") vim.cmd("noautocmd startinsert")
self:set_internal_move(false) self:set_internal_move(false)
return return
end end

View File

@@ -129,14 +129,14 @@ function PromptInput:open()
self:setup_keymaps() self:setup_keymaps()
self:setup_autocmds() self:setup_autocmds()
if self.start_insert then vim.cmd([[startinsert!]]) end if self.start_insert then vim.cmd("noautocmd startinsert!") end
end end
function PromptInput:close() function PromptInput:close()
if not self.bufnr then return end if not self.bufnr then return end
self:stop_spinner() self:stop_spinner()
self:close_shortcuts_hints() self:close_shortcuts_hints()
if api.nvim_get_mode().mode == "i" then vim.cmd([[stopinsert]]) end if api.nvim_get_mode().mode == "i" then vim.cmd("noautocmd stopinsert") end
if self.winid and api.nvim_win_is_valid(self.winid) then if self.winid and api.nvim_win_is_valid(self.winid) then
api.nvim_win_close(self.winid, true) api.nvim_win_close(self.winid, true)
self.winid = nil self.winid = nil

View File

@@ -450,7 +450,7 @@ function M.unlock_buf(bufnr)
end end
function M.lock_buf(bufnr) function M.lock_buf(bufnr)
vim.cmd("stopinsert") vim.cmd("noautocmd stopinsert")
vim.bo[bufnr].readonly = true vim.bo[bufnr].readonly = true
vim.bo[bufnr].modified = false vim.bo[bufnr].modified = false
vim.bo[bufnr].modifiable = false vim.bo[bufnr].modifiable = false