Revert "feat: Allow Chat Sidebar to Replace the Main Window (No Split) (#1638)" (#1648)

This reverts commit 31041f6d65.
This commit is contained in:
yetone
2025-03-20 03:25:08 +08:00
committed by GitHub
parent 31041f6d65
commit 8c9cd1a7b2
2 changed files with 19 additions and 34 deletions

View File

@@ -101,7 +101,6 @@ end
---@field floating? boolean whether to open a floating input to enter the question
---@field new_chat? boolean whether to open a new chat
---@field without_selection? boolean whether to open a new chat without selection
---@field no_split? boolean whether to open a new chat without split side bar
---@param opts? AskOptions
function M.ask(opts)

View File

@@ -140,18 +140,12 @@ end
function Sidebar:close(opts)
opts = vim.tbl_extend("force", { goto_code_win = true }, opts or {})
self:delete_autocmds()
if opts.goto_code_win and self.code then
if self.code.winid and api.nvim_win_is_valid(self.code.winid) then
fn.win_gotoid(self.code.winid)
else
vim.cmd("vert sb" .. self.code.bufnr)
end
end
for _, comp in pairs(self) do
if comp and type(comp) == "table" and comp.unmount then comp:unmount() end
end
if opts.goto_code_win and self.code and self.code.winid and api.nvim_win_is_valid(self.code.winid) then
fn.win_gotoid(self.code.winid)
end
vim.cmd("wincmd =")
end
@@ -3000,6 +2994,8 @@ function Sidebar:create_input_container(opts)
if ev.data and ev.data.request then handle_submit(ev.data.request) end
end,
})
self:refresh_winids()
end
function Sidebar:get_selected_code_size()
@@ -3044,13 +3040,11 @@ function Sidebar:get_result_container_width()
end
function Sidebar:adjust_result_container_layout()
if self.code.winid ~= nil and api.nvim_win_is_valid(self.code.winid) then
local width = self:get_result_container_width()
local height = self:get_result_container_height()
local width = self:get_result_container_width()
local height = self:get_result_container_height()
api.nvim_win_set_width(self.result_container.winid, width)
api.nvim_win_set_height(self.result_container.winid, height)
end
api.nvim_win_set_width(self.result_container.winid, width)
api.nvim_win_set_height(self.result_container.winid, height)
end
---@param opts AskOptions
@@ -3095,27 +3089,19 @@ function Sidebar:render(opts)
self:update_content_with_history()
if opts.no_split == true then
vim.cmd(fn.win_getid(self.code.winid) .. "wincmd q")
self.code.winid = nil
fn.win_gotoid(self.input_container.winid)
else
-- reset states when buffer is closed
api.nvim_buf_attach(self.code.bufnr, false, {
on_detach = function(_, _)
vim.schedule(function()
local bufnr = api.nvim_win_get_buf(self.code.winid)
self.code.bufnr = bufnr
self:reload_chat_history()
end)
end,
})
end
-- reset states when buffer is closed
api.nvim_buf_attach(self.code.bufnr, false, {
on_detach = function(_, _)
vim.schedule(function()
local bufnr = api.nvim_win_get_buf(self.code.winid)
self.code.bufnr = bufnr
self:reload_chat_history()
end)
end,
})
self:create_selected_code_container()
self:refresh_winids()
self:on_mount(opts)
return self