docs(lua): typing for vim.fn.winlayout #33817

Problem:
`any[]` means nothing, and the return value is not the same as what's
documented in the comment (eg, Lua returns `{ "row", { { "leaf", 1000 },
{ "leaf", 1001 } } }`, not `{ "row", { "leaf", 1000, "leaf", 1001 } }`)

Solution:
Create two classes (vim.fn.winlayout.leaf and vim.fn.winlayout.branch)
and one alias that links the two together.

Also: Due to LuaLS limitations, there is an empty class,
vim.fn.winlayout.empty

Signed-Off-By: VoxelPrismatic <voxelprismatic@pm.me>
(cherry picked from commit 902b689c4d)
This commit is contained in:
PRIZ ;]
2025-05-03 13:34:25 -05:00
committed by github-actions[bot]
parent 9b3426691c
commit 968947b3c3
4 changed files with 18 additions and 3 deletions

View File

@ -12029,7 +12029,7 @@ winlayout([{tabnr}]) *winlayout()*
• {tabnr} (`integer?`)
Return: ~
(`any[]`)
(`vim.fn.winlayout.ret`)
winline() *winline()*
The result is a Number, which is the screen line of the cursor

View File

@ -297,3 +297,18 @@
--- A list of dictionaries with information about
--- undo blocks.
--- @field entries vim.fn.undotree.entry[]
--- @class vim.fn.winlayout.leaf
--- @field [1] "leaf" Node type
--- @field [2] integer winid
--- @class vim.fn.winlayout.branch
--- @field [1] "row" | "col" Node type
--- @field [2] (vim.fn.winlayout.leaf|vim.fn.winlayout.branch)[] children
--- @class vim.fn.winlayout.empty
--- @alias vim.fn.winlayout.ret
--- | vim.fn.winlayout.leaf
--- | vim.fn.winlayout.branch
--- | vim.fn.winlayout.empty

View File

@ -10929,7 +10929,7 @@ function vim.fn.winheight(nr) end
--- <
---
--- @param tabnr? integer
--- @return any[]
--- @return vim.fn.winlayout.ret
function vim.fn.winlayout(tabnr) end
--- The result is a Number, which is the screen line of the cursor

View File

@ -13239,7 +13239,7 @@ M.funcs = {
]=],
name = 'winlayout',
params = { { 'tabnr', 'integer' } },
returns = 'any[]',
returns = 'vim.fn.winlayout.ret',
signature = 'winlayout([{tabnr}])',
},
winline = {