fix: safe open file (#2289)
This commit is contained in:
@@ -985,6 +985,19 @@ function M.get_chat_mentions()
|
|||||||
return mentions
|
return mentions
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function safe_open_file(filename)
|
||||||
|
local ok, _ = pcall(vim.cmd, "noautocmd edit " .. filename)
|
||||||
|
if ok then
|
||||||
|
-- Manually trigger necessary events
|
||||||
|
vim.cmd("doautocmd BufRead")
|
||||||
|
else
|
||||||
|
-- Fallback solution
|
||||||
|
vim.cmd("enew")
|
||||||
|
vim.api.nvim_buf_set_name(0, filename)
|
||||||
|
vim.bo.filetype = vim.fn.fnamemodify(filename, ":e")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
---@param path string
|
---@param path string
|
||||||
---@param set_current_buf? boolean
|
---@param set_current_buf? boolean
|
||||||
---@return integer bufnr
|
---@return integer bufnr
|
||||||
@@ -995,7 +1008,7 @@ function M.open_buffer(path, set_current_buf)
|
|||||||
|
|
||||||
local bufnr
|
local bufnr
|
||||||
if set_current_buf then
|
if set_current_buf then
|
||||||
vim.cmd("edit " .. abs_path)
|
safe_open_file(abs_path)
|
||||||
bufnr = vim.api.nvim_get_current_buf()
|
bufnr = vim.api.nvim_get_current_buf()
|
||||||
else
|
else
|
||||||
bufnr = vim.fn.bufnr(abs_path, true)
|
bufnr = vim.fn.bufnr(abs_path, true)
|
||||||
|
|||||||
Reference in New Issue
Block a user