aboutsummaryrefslogtreecommitdiff
path: root/scripts/gen_lsp.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2024-04-22 00:58:48 +0200
committerJustin M. Keyes <justinkz@gmail.com>2024-04-22 02:11:23 +0200
commit9912a4c81b0856200f44a38e99d38eae44cef5c9 (patch)
tree37ac1ada1267cf9172676c69c44b02dafa23402a /scripts/gen_lsp.lua
parent35e38833c54565b05a0c33ba44694fc1077dce97 (diff)
downloadrneovim-9912a4c81b0856200f44a38e99d38eae44cef5c9.tar.gz
rneovim-9912a4c81b0856200f44a38e99d38eae44cef5c9.tar.bz2
rneovim-9912a4c81b0856200f44a38e99d38eae44cef5c9.zip
refactor(lua): deprecate tbl_flatten
Problem: Besides being redundant with vim.iter():flatten(), `tbl_flatten` has these problems: - Has `tbl_` prefix but only accepts lists. - Discards some results! Compare the following: - iter.flatten(): ``` vim.iter({1, { { a = 2 } }, { 3 } }):flatten():totable() ``` - tbl_flatten: ``` vim.tbl_flatten({1, { { a = 2 } }, { 3 } }) ``` Solution: Deprecate tbl_flatten. Note: iter:flatten() currently fails ("flatten() requires a list-like table") on this code from gen_lsp.lua: local anonym = vim.iter({ -- remove nil anonymous_num > 1 and '' or nil, '---@class ' .. anonymous_classname, }):flatten():totable() Should we enhance :flatten() to work for arrays?
Diffstat (limited to 'scripts/gen_lsp.lua')
-rw-r--r--scripts/gen_lsp.lua11
1 files changed, 7 insertions, 4 deletions
diff --git a/scripts/gen_lsp.lua b/scripts/gen_lsp.lua
index 19fad7bab4..04d19f22e6 100644
--- a/scripts/gen_lsp.lua
+++ b/scripts/gen_lsp.lua
@@ -259,10 +259,13 @@ function M.gen(opt)
if prefix then
anonymous_classname = anonymous_classname .. '.' .. prefix
end
- local anonym = vim.tbl_flatten { -- remove nil
- anonymous_num > 1 and '' or nil,
- '---@class ' .. anonymous_classname,
- }
+ local anonym = vim
+ .iter({
+ (anonymous_num > 1 and { '' } or {}),
+ { '---@class ' .. anonymous_classname },
+ })
+ :flatten()
+ :totable()
--- @class vim._gen_lsp.StructureLiteral translated to anonymous @class.
--- @field deprecated? string