mirror of
https://github.com/neovim/neovim.git
synced 2025-12-15 19:05:40 +00:00
feat: allow function passed to defaulttable to take an argument (#22839)
Pass the value of the key being accessed to the create function, to allow users to dynamically generate default values.
This commit is contained in:
@@ -796,13 +796,15 @@ end
|
||||
--- a.b.c = 1
|
||||
--- </pre>
|
||||
---
|
||||
---@param create function|nil The function called to create a missing value.
|
||||
---@param create function?(key:any):any The function called to create a missing value.
|
||||
---@return table Empty table with metamethod
|
||||
function vim.defaulttable(create)
|
||||
create = create or vim.defaulttable
|
||||
create = create or function(_)
|
||||
return vim.defaulttable()
|
||||
end
|
||||
return setmetatable({}, {
|
||||
__index = function(tbl, key)
|
||||
rawset(tbl, key, create())
|
||||
rawset(tbl, key, create(key))
|
||||
return rawget(tbl, key)
|
||||
end,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user