fix(pickers): initial normal mode (#1165)
fix(pickers): opts.default_text and cursor are now correctly set for opts.initial_mode="normal"
This commit is contained in:
@@ -370,13 +370,19 @@ function Picker:find()
|
|||||||
|
|
||||||
-- TODO(async): I wonder if this should actually happen _before_ we nvim_buf_attach.
|
-- TODO(async): I wonder if this should actually happen _before_ we nvim_buf_attach.
|
||||||
-- This way the buffer would always start with what we think it should when we start the loop.
|
-- This way the buffer would always start with what we think it should when we start the loop.
|
||||||
if self.default_text then
|
if self.initial_mode == "insert" or self.initial_mode == "normal" then
|
||||||
self:set_prompt(self.default_text)
|
-- required for set_prompt to work adequately
|
||||||
end
|
|
||||||
|
|
||||||
if self.initial_mode == "insert" then
|
|
||||||
vim.cmd [[startinsert!]]
|
vim.cmd [[startinsert!]]
|
||||||
elseif self.initial_mode ~= "normal" then
|
if self.default_text then
|
||||||
|
self:set_prompt(self.default_text)
|
||||||
|
end
|
||||||
|
if self.initial_mode == "normal" then
|
||||||
|
-- otherwise (i) insert mode exitted faster than `picker:set_prompt`; (ii) cursor on wrong pos
|
||||||
|
await_schedule(function()
|
||||||
|
vim.cmd [[stopinsert]]
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
else
|
||||||
error("Invalid setting for initial_mode: " .. self.initial_mode)
|
error("Invalid setting for initial_mode: " .. self.initial_mode)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user