Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
71 lines
1.8 KiB
Lua
71 lines
1.8 KiB
Lua
local uv = vim.loop
|
|
|
|
local M = {
|
|
config = {
|
|
is_windows = vim.fn.has "win32" == 1 or vim.fn.has "win32unix" == 1,
|
|
is_macos = vim.fn.has "mac" == 1 or vim.fn.has "macunix" == 1,
|
|
is_unix = vim.fn.has "unix" == 1,
|
|
},
|
|
}
|
|
|
|
function M.fn(node)
|
|
if #M.config.system_open.cmd == 0 then
|
|
require("nvim-tree.utils").warn "Cannot open file with system application. Unrecognized platform."
|
|
return
|
|
end
|
|
|
|
local process = {
|
|
cmd = M.config.system_open.cmd,
|
|
args = M.config.system_open.args,
|
|
errors = "\n",
|
|
stderr = uv.new_pipe(false),
|
|
}
|
|
table.insert(process.args, node.link_to or node.absolute_path)
|
|
process.handle, process.pid = uv.spawn(
|
|
process.cmd,
|
|
{ args = process.args, stdio = { nil, nil, process.stderr }, detached = true },
|
|
function(code)
|
|
process.stderr:read_stop()
|
|
process.stderr:close()
|
|
process.handle:close()
|
|
if code ~= 0 then
|
|
process.errors = process.errors .. string.format("NvimTree system_open: return code %d.", code)
|
|
error(process.errors)
|
|
end
|
|
end
|
|
)
|
|
table.remove(process.args)
|
|
if not process.handle then
|
|
error("\n" .. process.pid .. "\nNvimTree system_open: failed to spawn process using '" .. process.cmd .. "'.")
|
|
return
|
|
end
|
|
uv.read_start(process.stderr, function(err, data)
|
|
if err then
|
|
return
|
|
end
|
|
if data then
|
|
process.errors = process.errors .. data
|
|
end
|
|
end)
|
|
uv.unref(process.handle)
|
|
end
|
|
|
|
function M.setup(opts)
|
|
M.config.system_open = opts or {}
|
|
|
|
if #M.config.system_open.cmd == 0 then
|
|
if M.config.is_windows then
|
|
M.config.system_open = {
|
|
cmd = "cmd",
|
|
args = { "/c", "start", '""' },
|
|
}
|
|
elseif M.config.is_macos then
|
|
M.config.system_open.cmd = "open"
|
|
elseif M.config.is_unix then
|
|
M.config.system_open.cmd = "xdg-open"
|
|
end
|
|
end
|
|
end
|
|
|
|
return M
|