fix: open buffer (#2340)

This commit is contained in:
yetone
2025-06-26 16:52:23 +08:00
committed by GitHub
parent 0e732d194b
commit 7738503c1d
2 changed files with 17 additions and 8 deletions

View File

@@ -136,10 +136,11 @@ end
function M.get_bufnr(abs_path)
local sidebar = require("avante").get()
if not sidebar then return 0, "Avante sidebar not found" end
local current_winid = vim.api.nvim_get_current_win()
vim.api.nvim_set_current_win(sidebar.code.winid)
local bufnr = Utils.open_buffer(abs_path)
vim.api.nvim_set_current_win(current_winid)
local bufnr
vim.api.nvim_win_call(sidebar.code.winid, function()
vim.cmd("edit " .. abs_path)
bufnr = vim.api.nvim_get_current_buf()
end)
return bufnr, nil
end

View File

@@ -1021,10 +1021,18 @@ function M.open_buffer(path, set_current_buf)
local abs_path = M.join_paths(M.get_project_root(), path)
local bufnr = vim.fn.bufnr(abs_path, true)
pcall(vim.fn.bufload, bufnr)
if set_current_buf then vim.cmd("buffer " .. bufnr) end
local bufnr ---@type integer
if set_current_buf then
bufnr = vim.fn.bufnr(abs_path)
if bufnr ~= -1 and vim.api.nvim_buf_is_loaded(bufnr) and vim.bo[bufnr].modified then
vim.api.nvim_buf_call(bufnr, function() vim.cmd("noautocmd write") end)
end
vim.cmd("noautocmd edit " .. abs_path)
bufnr = vim.api.nvim_get_current_buf()
else
bufnr = vim.fn.bufnr(abs_path, true)
pcall(vim.fn.bufload, bufnr)
end
vim.cmd("filetype detect")