mirror of
https://github.com/neovim/neovim.git
synced 2025-12-16 03:15:39 +00:00
fix(vim.ui)!: change open() to return pcall-like values #28502
Problem:
`vim.ui.open` unnecessarily invents a different success/failure
convention. Its return type was changed in 57adf8c6e0, so we might as
well change it to have a more conventional form.
Solution:
Change the signature to use the `pcall` convention of `status, result`.
This commit is contained in:
@@ -98,18 +98,19 @@ do
|
||||
--- Map |gx| to call |vim.ui.open| on the <cfile> at cursor.
|
||||
do
|
||||
local function do_open(uri)
|
||||
local cmd, err = vim.ui.open(uri)
|
||||
local rv = cmd and cmd:wait(1000) or nil
|
||||
if cmd and rv and rv.code ~= 0 then
|
||||
err = ('vim.ui.open: command %s (%d): %s'):format(
|
||||
local ok, cmd_or_err = vim.ui.open(uri)
|
||||
local rv = ok and (cmd_or_err --[[@as vim.SystemObj]]):wait(1000) or nil
|
||||
if rv and rv.code ~= 0 then
|
||||
ok = false
|
||||
cmd_or_err = ('vim.ui.open: command %s (%d): %s'):format(
|
||||
(rv.code == 124 and 'timeout' or 'failed'),
|
||||
rv.code,
|
||||
vim.inspect(cmd.cmd)
|
||||
vim.inspect(cmd_or_err.cmd)
|
||||
)
|
||||
end
|
||||
|
||||
if err then
|
||||
vim.notify(err, vim.log.levels.ERROR)
|
||||
if not ok then
|
||||
vim.notify(cmd_or_err --[[@as string]], vim.log.levels.ERROR)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user