fix(Man): completion on Mac

Problem:
`man -w` does not work on recent versions of MacOs.

Solution:
Make it so an empty result is interpreted as an error unless silent=true
This commit is contained in:
Lewis Russell authored and Lewis Russell committed 2024-12-16 16:05:08 +00:00
1 parent b5c0290803
commit 47f2769b46
3 files changed
+27 -3

No files matched your search

+6 -3
View File
@@ -21,9 +21,12 @@ end
local function system(cmd, silent, env)
local r = vim.system(cmd, { env = env, timeout = 10000 }):wait()
if r.code ~= 0 and not silent then
local cmd_str = table.concat(cmd, ' ')
man_error(string.format("command error '%s': %s", cmd_str, r.stderr))
if not silent then
if r.code ~= 0 then
local cmd_str = table.concat(cmd, ' ')
man_error(string.format("command error '%s': %s", cmd_str, r.stderr))
end
assert(r.stdout ~= '')
end
return assert(r.stdout)
+10
View File
@@ -263,4 +263,14 @@ describe(':Man', function()
{ '1', 'other_man' },
}, get_search_history('other_man(1)'))
end)
it('can complete', function()
t.skip(t.is_os('mac') and t.is_arch('x86_64'), 'not supported on intel mac')
eq(
true,
exec_lua(function()
return #require('man').man_complete('f', 'Man g') > 0
end)
)
end)
end)
+11
View File
@@ -409,6 +409,17 @@ function M.is_os(s)
)
end
local architecture = uv.os_uname().machine
--- @param s 'x86_64'|'arm64'
--- @return boolean
function M.is_arch(s)
if not (s == 'x86_64' or s == 'arm64') then
error('unknown architecture: ' .. tostring(s))
end
return s == architecture
end
local tmpname_id = 0
local tmpdir = os.getenv('TMPDIR') or os.getenv('TEMP')
local tmpdir_is_local = not not (tmpdir and tmpdir:find('Xtest'))