refactor(lua): rename tbl_islist => islist

ref #24572
This commit is contained in:
Justin M. Keyes 2024-04-21 15:19:43 +02:00
parent 032df963bb
commit d9d890562e
10 changed files with 67 additions and 57 deletions

View File

@ -172,6 +172,7 @@ LUA
- vim.register_keystroke_callback() Use |vim.on_key()| instead.
- *vim.pretty_print()* Use |vim.print()| instead.
- *vim.loop* Use |vim.uv| instead.
- *vim.tbl_islist()* Use |vim.islist()| instead.
- *vim.tbl_add_reverse_lookup()*
NORMAL COMMANDS

View File

@ -2029,6 +2029,23 @@ vim.is_callable({f}) *vim.is_callable()*
Return: ~
(`boolean`) `true` if `f` is callable, else `false`
vim.islist({t}) *vim.islist()*
Tests if `t` is a "list": a table indexed only by contiguous integers
starting from 1 (what |lua-length| calls a "regular array").
Empty table `{}` is a list, unless it was created by |vim.empty_dict()| or
returned as a dict-like |API| or Vimscript result, for example from
|rpcrequest()| or |vim.fn|.
Parameters: ~
• {t} (`table?`)
Return: ~
(`boolean`) `true` if list-like table, else `false`.
See also: ~
• |vim.tbl_isarray()|
vim.list_contains({t}, {value}) *vim.list_contains()*
Checks if a list-like table (integer keys without gaps) contains `value`.
@ -2284,7 +2301,7 @@ vim.tbl_isarray({t}) *vim.tbl_isarray()*
non-contiguous).
If the indexes start from 1 and are contiguous then the array is also a
list. |vim.tbl_islist()|
list. |vim.islist()|
Empty table `{}` is an array, unless it was created by |vim.empty_dict()|
or returned as a dict-like |API| or Vimscript result, for example from
@ -2311,23 +2328,6 @@ vim.tbl_isempty({t}) *vim.tbl_isempty()*
See also: ~
• https://github.com/premake/premake-core/blob/master/src/base/table.lua
vim.tbl_islist({t}) *vim.tbl_islist()*
Tests if `t` is a "list": a table indexed only by contiguous integers
starting from 1 (what |lua-length| calls a "regular array").
Empty table `{}` is a list, unless it was created by |vim.empty_dict()| or
returned as a dict-like |API| or Vimscript result, for example from
|rpcrequest()| or |vim.fn|.
Parameters: ~
• {t} (`table`)
Return: ~
(`boolean`) `true` if list-like table, else `false`.
See also: ~
• |vim.tbl_isarray()|
vim.tbl_keys({t}) *vim.tbl_keys()*
Return a list of all keys used in a table. However, the order of the
return table of keys is not guaranteed.

View File

@ -22,7 +22,7 @@ The following changes may require adaptations in user config or plugins.
set guicursor+=n-v-c:blinkon500-blinkoff500
<
• |vim.tbl_islist()| now checks whether a table is actually list-like (i.e.,
• |vim.islist()| now checks whether a table is actually list-like (i.e.,
has integer keys without gaps and starting from 1). For the previous
behavior (only check for integer keys, allow gaps or not starting with 1),
use |vim.tbl_isarray()|.
@ -155,6 +155,8 @@ unreleased features on Nvim HEAD.
• Removed vim.iter.map(), vim.iter.filter(), vim.iter.totable().
• Renamed vim.tbl_islist() to vim.islist().
==============================================================================
NEW FEATURES *news-features*
@ -563,5 +565,6 @@ release.
• vim.shared functions:
- |vim.tbl_add_reverse_lookup()|
- |vim.tbl_islist()|
vim:tw=78:ts=8:sw=2:et:ft=help:norl:

View File

@ -82,7 +82,7 @@ local vim9 = (function()
end
M.index = function(obj, idx)
if vim.tbl_islist(obj) then
if vim.islist(obj) then
if idx < 0 then
return obj[#obj + idx + 1]
else
@ -127,7 +127,7 @@ local vim9 = (function()
assert(type(finish) == 'number')
local slicer
if vim.tbl_islist(obj) then
if vim.islist(obj) then
slicer = vim.list_slice
elseif type(obj) == 'string' then
slicer = string.sub
@ -168,7 +168,7 @@ local vim9 = (function()
end
M.iter = function(expr)
if vim.tbl_islist(expr) then
if vim.islist(expr) then
return ipairs(expr)
else
return pairs(expr)
@ -234,7 +234,7 @@ vim9['convert'] = (function()
elseif type(val) == 'table' then
if vim.tbl_isempty(val) then
return vim.empty_dict()
elseif vim.tbl_islist(val) then
elseif vim.islist(val) then
error(string.format('Cannot pass list to dictionary? %s', vim.inspect(val)))
else
return val
@ -280,7 +280,7 @@ vim9['fn'] = (function()
error("haven't written this code yet")
end
if vim.tbl_islist(right) then
if vim.islist(right) then
vim.list_extend(left, right)
return left
else

View File

@ -642,7 +642,7 @@ end
--- @param t table<any,any>
--- @param val any
local function remove_one_item(t, val)
if vim.tbl_islist(t) then
if vim.islist(t) then
local remove_index = nil
for i, v in ipairs(t) do
if v == val then

View File

@ -974,7 +974,7 @@ function M.set(namespace, bufnr, diagnostics, opts)
bufnr = { bufnr, 'n' },
diagnostics = {
diagnostics,
vim.tbl_islist,
vim.islist,
'a list of diagnostics',
},
opts = { opts, 't', true },
@ -1186,7 +1186,7 @@ M.handlers.signs = {
bufnr = { bufnr, 'n' },
diagnostics = {
diagnostics,
vim.tbl_islist,
vim.islist,
'a list of diagnostics',
},
opts = { opts, 't', true },
@ -1309,7 +1309,7 @@ M.handlers.underline = {
bufnr = { bufnr, 'n' },
diagnostics = {
diagnostics,
vim.tbl_islist,
vim.islist,
'a list of diagnostics',
},
opts = { opts, 't', true },
@ -1382,7 +1382,7 @@ M.handlers.virtual_text = {
bufnr = { bufnr, 'n' },
diagnostics = {
diagnostics,
vim.tbl_islist,
vim.islist,
'a list of diagnostics',
},
opts = { opts, 't', true },
@ -1576,7 +1576,7 @@ function M.show(namespace, bufnr, diagnostics, opts)
diagnostics = {
diagnostics,
function(v)
return v == nil or vim.tbl_islist(v)
return v == nil or vim.islist(v)
end,
'a list of diagnostics',
},
@ -2120,7 +2120,7 @@ function M.toqflist(diagnostics)
vim.validate({
diagnostics = {
diagnostics,
vim.tbl_islist,
vim.islist,
'a list of diagnostics',
},
})
@ -2160,7 +2160,7 @@ function M.fromqflist(list)
vim.validate({
list = {
list,
vim.tbl_islist,
vim.islist,
'a list of quickfix items',
},
})

View File

@ -428,7 +428,7 @@ local function location_handler(_, result, ctx, config)
-- textDocument/definition can return Location or Location[]
-- https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_definition
if not vim.tbl_islist(result) then
if not vim.islist(result) then
result = { result }
end

View File

@ -601,7 +601,7 @@ end
--- Tests if `t` is an "array": a table indexed _only_ by integers (potentially non-contiguous).
---
--- If the indexes start from 1 and are contiguous then the array is also a list. |vim.tbl_islist()|
--- If the indexes start from 1 and are contiguous then the array is also a list. |vim.islist()|
---
--- Empty table `{}` is an array, unless it was created by |vim.empty_dict()| or returned as
--- a dict-like |API| or Vimscript result, for example from |rpcrequest()| or |vim.fn|.
@ -640,6 +640,12 @@ function vim.tbl_isarray(t)
end
end
--- @deprecated
function vim.tbl_islist(t)
vim.deprecate('vim.tbl_islist', 'vim.islist', '0.12')
return vim.islist(t)
end
--- Tests if `t` is a "list": a table indexed _only_ by contiguous integers starting from 1 (what
--- |lua-length| calls a "regular array").
---
@ -648,9 +654,9 @@ end
---
---@see |vim.tbl_isarray()|
---
---@param t table
---@param t? table
---@return boolean `true` if list-like table, else `false`.
function vim.tbl_islist(t)
function vim.islist(t)
if type(t) ~= 'table' then
return false
end

View File

@ -22,7 +22,7 @@ describe('lua vim.mpack', function()
{ { {}, 'foo', {} }, true, false },
exec_lua [[
local var = vim.mpack.decode(vim.mpack.encode({{}, "foo", vim.empty_dict()}))
return {var, vim.tbl_islist(var[1]), vim.tbl_islist(var[3])}
return {var, vim.islist(var[1]), vim.islist(var[3])}
]]
)
end)

View File

@ -673,21 +673,21 @@ describe('lua stdlib', function()
local a = {}
local b = vim.deepcopy(a)
return vim.tbl_islist(b) and vim.tbl_count(b) == 0 and tostring(a) ~= tostring(b)
return vim.islist(b) and vim.tbl_count(b) == 0 and tostring(a) ~= tostring(b)
]]))
ok(exec_lua([[
local a = vim.empty_dict()
local b = vim.deepcopy(a)
return not vim.tbl_islist(b) and vim.tbl_count(b) == 0
return not vim.islist(b) and vim.tbl_count(b) == 0
]]))
ok(exec_lua([[
local a = {x = vim.empty_dict(), y = {}}
local b = vim.deepcopy(a)
return not vim.tbl_islist(b.x) and vim.tbl_islist(b.y)
return not vim.islist(b.x) and vim.islist(b.y)
and vim.tbl_count(b) == 2
and tostring(a) ~= tostring(b)
]]))
@ -838,17 +838,17 @@ describe('lua stdlib', function()
eq(false, exec_lua('return vim.tbl_isarray({1, [1.5]=2, [3]=3})'))
end)
it('vim.tbl_islist', function()
eq(true, exec_lua('return vim.tbl_islist({})'))
eq(false, exec_lua('return vim.tbl_islist(vim.empty_dict())'))
eq(true, exec_lua("return vim.tbl_islist({'a', 'b', 'c'})"))
eq(false, exec_lua("return vim.tbl_islist({'a', '32', a='hello', b='baz'})"))
eq(false, exec_lua("return vim.tbl_islist({1, a='hello', b='baz'})"))
eq(false, exec_lua("return vim.tbl_islist({a='hello', b='baz', 1})"))
eq(false, exec_lua("return vim.tbl_islist({1, 2, nil, a='hello'})"))
eq(false, exec_lua('return vim.tbl_islist({1, 2, nil, 4})'))
eq(false, exec_lua('return vim.tbl_islist({nil, 2, 3, 4})'))
eq(false, exec_lua('return vim.tbl_islist({1, [1.5]=2, [3]=3})'))
it('vim.islist', function()
eq(true, exec_lua('return vim.islist({})'))
eq(false, exec_lua('return vim.islist(vim.empty_dict())'))
eq(true, exec_lua("return vim.islist({'a', 'b', 'c'})"))
eq(false, exec_lua("return vim.islist({'a', '32', a='hello', b='baz'})"))
eq(false, exec_lua("return vim.islist({1, a='hello', b='baz'})"))
eq(false, exec_lua("return vim.islist({a='hello', b='baz', 1})"))
eq(false, exec_lua("return vim.islist({1, 2, nil, a='hello'})"))
eq(false, exec_lua('return vim.islist({1, 2, nil, 4})'))
eq(false, exec_lua('return vim.islist({nil, 2, 3, 4})'))
eq(false, exec_lua('return vim.islist({1, [1.5]=2, [3]=3})'))
end)
it('vim.tbl_isempty', function()
@ -921,7 +921,7 @@ describe('lua stdlib', function()
local b = {}
local c = vim.tbl_extend("keep", a, b)
return not vim.tbl_islist(c) and vim.tbl_count(c) == 0
return not vim.islist(c) and vim.tbl_count(c) == 0
]]))
ok(exec_lua([[
@ -929,7 +929,7 @@ describe('lua stdlib', function()
local b = vim.empty_dict()
local c = vim.tbl_extend("keep", a, b)
return vim.tbl_islist(c) and vim.tbl_count(c) == 0
return vim.islist(c) and vim.tbl_count(c) == 0
]]))
ok(exec_lua([[
@ -1029,7 +1029,7 @@ describe('lua stdlib', function()
local count = 0
for _ in pairs(c) do count = count + 1 end
return not vim.tbl_islist(c) and count == 0
return not vim.islist(c) and count == 0
]]))
ok(exec_lua([[
@ -1040,7 +1040,7 @@ describe('lua stdlib', function()
local count = 0
for _ in pairs(c) do count = count + 1 end
return vim.tbl_islist(c) and count == 0
return vim.islist(c) and count == 0
]]))
eq(
@ -1285,7 +1285,7 @@ describe('lua stdlib', function()
vim.rpcrequest(chan, 'nvim_exec', 'let xx = {}\nlet yy = []', false)
local dict = vim.rpcrequest(chan, 'nvim_eval', 'xx')
local list = vim.rpcrequest(chan, 'nvim_eval', 'yy')
return {dict, list, vim.tbl_islist(dict), vim.tbl_islist(list)}
return {dict, list, vim.islist(dict), vim.islist(list)}
]])
)
@ -1358,7 +1358,7 @@ describe('lua stdlib', function()
vim.api.nvim_set_var('dicty', vim.empty_dict())
local listy = vim.fn.eval("listy")
local dicty = vim.fn.eval("dicty")
return {vim.tbl_islist(listy), vim.tbl_islist(dicty), next(listy) == nil, next(dicty) == nil}
return {vim.islist(listy), vim.islist(dicty), next(listy) == nil, next(dicty) == nil}
]])
)