Use weak tables in tree-sitter code (#17117)

feat(treesitter): use weak tables when possible

Also add the defaulttable function to create a table whose values are created when a key is missing.
This commit is contained in:
Thomas Vigouroux
2022-09-07 08:39:56 +02:00
committed by GitHub
parent f32fd19f1e
commit fd1595514b
5 changed files with 69 additions and 10 deletions

View File

@@ -1581,6 +1581,28 @@ deepcopy({orig}) *vim.deepcopy()*
Return: ~
(table) Table of copied keys and (nested) values.
defaulttable({create}) *vim.defaulttable()*
Creates a table whose members are automatically created when accessed, if
they don't already exist.
They mimic defaultdict in python.
If `create` is `nil`, this will create a defaulttable whose constructor
function is this function, effectively allowing to create nested tables on
the fly:
>
local a = vim.defaulttable()
a.b.c = 1
<
Parameters: ~
{create} (function|nil) The function called to create a missing
value.
Return: ~
(table) Empty table with metamethod
endswith({s}, {suffix}) *vim.endswith()*
Tests if `s` ends with `suffix`.