fix: correctly restore cursor position in original window (#2336)

This commit is contained in:
cristiansofronie
2023-05-24 15:04:27 +03:00
committed by GitHub
parent 066bda8ea4
commit 3f1b57908b
2 changed files with 6 additions and 10 deletions

View File

@@ -371,17 +371,8 @@ end
--- Close the Telescope window, usually used within an action --- Close the Telescope window, usually used within an action
---@param prompt_bufnr number: The prompt bufnr ---@param prompt_bufnr number: The prompt bufnr
actions.close = function(prompt_bufnr) actions.close = function(prompt_bufnr)
local picker = action_state.get_current_picker(prompt_bufnr)
local original_win_id = picker.original_win_id
local cursor_valid, original_cursor = pcall(a.nvim_win_get_cursor, original_win_id)
actions.close_pum(prompt_bufnr) actions.close_pum(prompt_bufnr)
require("telescope.pickers").on_close_prompt(prompt_bufnr) require("telescope.pickers").on_close_prompt(prompt_bufnr)
pcall(a.nvim_set_current_win, original_win_id)
if cursor_valid and a.nvim_get_mode().mode == "i" and picker._original_mode ~= "i" then
pcall(a.nvim_win_set_cursor, original_win_id, { original_cursor[1], original_cursor[2] + 1 })
end
end end
--- Close the Telescope window, usually used within an action<br> --- Close the Telescope window, usually used within an action<br>

View File

@@ -1495,7 +1495,12 @@ function pickers.on_close_prompt(prompt_bufnr)
event = "BufLeave", event = "BufLeave",
buffer = prompt_bufnr, buffer = prompt_bufnr,
} }
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("<esc>", true, true, true), "n", true)
vim.defer_fn(function()
picker.close_windows(status) picker.close_windows(status)
end, 0)
mappings.clear(prompt_bufnr) mappings.clear(prompt_bufnr)
end end