feat(lua)!: vim.isnil, vim.nonnil, deprecate vim.F #39495

This commit is contained in:
Olivia Kinnear
2026-05-06 07:15:00 -05:00
committed by GitHub
parent f562204a5c
commit fcd1d97265
22 changed files with 197 additions and 58 deletions

View File

@@ -982,6 +982,14 @@ describe('lua stdlib', function()
)
end)
it('vim.isnil', function()
eq(true, exec_lua('return vim.isnil(nil)'))
eq(true, exec_lua('return vim.isnil(vim.NIL)'))
eq(false, exec_lua('return vim.isnil(true)'))
eq(false, exec_lua('return vim.isnil(false)'))
eq(false, exec_lua('return vim.isnil({})'))
end)
it('vim.tbl_isempty', function()
eq(true, exec_lua('return vim.tbl_isempty({})'))
eq(false, exec_lua('return vim.tbl_isempty({ 1, 2, 3 })'))
@@ -2976,8 +2984,8 @@ describe('lua stdlib', function()
)
end)
it('vim.F.if_nil', function()
local function if_nil(...)
it('vim.nonnil', function()
local function nonnil(...)
return exec_lua(
[[
local args = {...}
@@ -2987,7 +2995,7 @@ describe('lua stdlib', function()
args[i] = nil
end
end
return vim.F.if_nil(unpack(args, 1, nargs))
return vim.nonnil(unpack(args, 1, nargs))
]],
...
)
@@ -2997,12 +3005,33 @@ describe('lua stdlib', function()
local b = NIL
local c = 42
local d = false
eq(42, if_nil(a, c))
eq(false, if_nil(d, b))
eq(42, if_nil(a, b, c, d))
eq(false, if_nil(d))
eq(false, if_nil(d, c))
eq(NIL, if_nil(a))
eq(42, nonnil(a, c))
eq(false, nonnil(d, b))
eq(42, nonnil(a, b, c, d))
eq(false, nonnil(d))
eq(false, nonnil(d, c))
eq(NIL, nonnil(a))
end)
it('vim.npcall', function()
-- No error
eq(
{ '123', 'test' },
exec_lua(function()
local function swap_args(a, b)
return b, a
end
return { vim.npcall(swap_args, 'test', '123') }
end)
)
-- Error
eq(
nil,
exec_lua(function()
return vim.npcall(error, 'error')
end)
)
end)
it('lpeg', function()