feat: not focusing on the last line when the cursor moves (#1110)
This commit is contained in:
parent
76f60794c3
commit
c3dd0630f1
@ -1050,9 +1050,12 @@ function Sidebar:on_mount(opts)
|
|||||||
and api.nvim_win_is_valid(self.input_container.winid)
|
and api.nvim_win_is_valid(self.input_container.winid)
|
||||||
then
|
then
|
||||||
api.nvim_set_current_win(self.input_container.winid)
|
api.nvim_set_current_win(self.input_container.winid)
|
||||||
vim.schedule(function()
|
vim.defer_fn(function()
|
||||||
if Config.windows.ask.start_insert then vim.cmd("startinsert") end
|
if Config.windows.ask.start_insert then
|
||||||
end)
|
Utils.debug("starting insert")
|
||||||
|
vim.cmd("startinsert")
|
||||||
|
end
|
||||||
|
end, 300)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return true
|
return true
|
||||||
@ -1672,6 +1675,30 @@ function Sidebar:create_input_container(opts)
|
|||||||
local current_path = ""
|
local current_path = ""
|
||||||
|
|
||||||
local is_first_chunk = true
|
local is_first_chunk = true
|
||||||
|
local scroll = true
|
||||||
|
|
||||||
|
---stop scroll when user presses j/k keys
|
||||||
|
local function on_j()
|
||||||
|
scroll = false
|
||||||
|
---perform scroll
|
||||||
|
vim.cmd("normal! j")
|
||||||
|
end
|
||||||
|
|
||||||
|
local function on_k()
|
||||||
|
scroll = false
|
||||||
|
---perform scroll
|
||||||
|
vim.cmd("normal! k")
|
||||||
|
end
|
||||||
|
|
||||||
|
local function on_G()
|
||||||
|
scroll = true
|
||||||
|
---perform scroll
|
||||||
|
vim.cmd("normal! G")
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.keymap.set("n", "j", on_j, { buffer = self.result_container.bufnr })
|
||||||
|
vim.keymap.set("n", "k", on_k, { buffer = self.result_container.bufnr })
|
||||||
|
vim.keymap.set("n", "G", on_G, { buffer = self.result_container.bufnr })
|
||||||
|
|
||||||
---@type AvanteChunkParser
|
---@type AvanteChunkParser
|
||||||
local on_chunk = function(chunk)
|
local on_chunk = function(chunk)
|
||||||
@ -1687,32 +1714,36 @@ function Sidebar:create_input_container(opts)
|
|||||||
local cur_displayed_response = generate_display_content(transformed)
|
local cur_displayed_response = generate_display_content(transformed)
|
||||||
if is_first_chunk then
|
if is_first_chunk then
|
||||||
is_first_chunk = false
|
is_first_chunk = false
|
||||||
self:update_content(content_prefix .. chunk, { scroll = true })
|
self:update_content(content_prefix .. chunk, { scroll = scroll })
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local suffix = get_display_content_suffix(transformed)
|
local suffix = get_display_content_suffix(transformed)
|
||||||
self:update_content(content_prefix .. cur_displayed_response .. suffix, { scroll = true })
|
self:update_content(content_prefix .. cur_displayed_response .. suffix, { scroll = scroll })
|
||||||
vim.schedule(function() vim.cmd("redraw") end)
|
vim.schedule(function() vim.cmd("redraw") end)
|
||||||
displayed_response = cur_displayed_response
|
displayed_response = cur_displayed_response
|
||||||
end
|
end
|
||||||
|
|
||||||
---@type AvanteCompleteParser
|
---@type AvanteCompleteParser
|
||||||
local on_complete = function(err)
|
local on_complete = function(err)
|
||||||
|
---remove keymaps
|
||||||
|
vim.keymap.del("n", "j", { buffer = self.result_container.bufnr })
|
||||||
|
vim.keymap.del("n", "k", { buffer = self.result_container.bufnr })
|
||||||
|
vim.keymap.del("n", "G", { buffer = self.result_container.bufnr })
|
||||||
|
|
||||||
if err ~= nil then
|
if err ~= nil then
|
||||||
self:update_content(
|
self:update_content(
|
||||||
content_prefix .. displayed_response .. "\n\nError: " .. vim.inspect(err),
|
content_prefix .. displayed_response .. "\n\nError: " .. vim.inspect(err),
|
||||||
{ scroll = true }
|
{ scroll = scroll }
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Execute when the stream request is actually completed
|
|
||||||
self:update_content(
|
self:update_content(
|
||||||
content_prefix
|
content_prefix
|
||||||
.. displayed_response
|
.. displayed_response
|
||||||
.. "\n\n**Generation complete!** Please review the code suggestions above.\n",
|
.. "\n\n**Generation complete!** Please review the code suggestions above.\n",
|
||||||
{
|
{
|
||||||
scroll = true,
|
scroll = scroll,
|
||||||
callback = function() api.nvim_exec_autocmds("User", { pattern = VIEW_BUFFER_UPDATED_PATTERN }) end,
|
callback = function() api.nvim_exec_autocmds("User", { pattern = VIEW_BUFFER_UPDATED_PATTERN }) end,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user