diff --git a/locale/en-us/meta.lua b/locale/en-us/meta.lua index 8e4a2fb19..9ab6aab88 100644 --- a/locale/en-us/meta.lua +++ b/locale/en-us/meta.lua @@ -726,6 +726,19 @@ table.foreachi = 'Executes the given f over the numerical indices of table. For each index, f is called with the index and respective value as arguments. Indices are visited in sequential order, from 1 to n, where n is the size of the table. If f returns a non-nil value, then the loop is broken and this value is returned as the result of foreachi.' table.getn = 'Returns the number of elements in the table. This function is equivalent to `#list`.' +table.new = +[[This creates a pre-sized table, just like the C API equivalent `lua_createtable()`. This is useful for big tables if the final table size is known and automatic table resizing is too expensive. `narray` parameter specifies the number of array-like items, and `nhash` parameter specifies the number of hash-like items. The function needs to be required before use. +```lua + require("table.new") +``` +]] +table.clear = +[[This clears all keys and values from a table, but preserves the allocated array/hash sizes. This is useful when a table, which is linked from multiple places, needs to be cleared and/or when recycling a table for use by the same context. This avoids managing backlinks, saves an allocation and the overhead of incremental array/hash part growth. The function needs to be required before use. +```lua + require("table.clear"). +``` +Please note this function is meant for very specific situations. In most cases it's better to replace the (usually single) link with a new table and let the GC do its work. +]] utf8 = '' diff --git a/locale/en-us/setting.lua b/locale/en-us/setting.lua index 3e0bcd67d..4f9bf18a3 100644 --- a/locale/en-us/setting.lua +++ b/locale/en-us/setting.lua @@ -211,37 +211,37 @@ config.IntelliSense.traceBeSetted = 'Please read [wiki](https://github.com/sumneko/lua-language-server/wiki/IntelliSense-optional-features) to learn more.' config.IntelliSense.traceFieldInject = 'Please read [wiki](https://github.com/sumneko/lua-language-server/wiki/IntelliSense-optional-features) to learn more.' -config.diagnostics['unused-local'] = -- TODO: need translate! -'未使用的局部变量' -config.diagnostics['unused-function'] = -- TODO: need translate! -'未使用的函数' -config.diagnostics['undefined-global'] = -- TODO: need translate! -'未定义的全局变量' -config.diagnostics['global-in-nil-env'] = -- TODO: need translate! -'不能使用全局变量( `_ENV` 被设置为了 `nil`)' -config.diagnostics['unused-label'] = -- TODO: need translate! -'未使用的标签' -config.diagnostics['unused-vararg'] = -- TODO: need translate! -'未使用的不定参数' -config.diagnostics['trailing-space'] = -- TODO: need translate! -'后置空格' -config.diagnostics['redefined-local'] = -- TODO: need translate! -'重复定义的局部变量' -config.diagnostics['newline-call'] = -- TODO: need translate! -'以 `(` 开始的新行,在语法上被解析为了上一行的函数调用' +config.diagnostics['unused-local'] = +'Enable unused local variable diagnostics.' +config.diagnostics['unused-function'] = +'Enable unused function diagnostics.' +config.diagnostics['undefined-global'] = +'Enable undefined global variable diagnostics.' +config.diagnostics['global-in-nil-env'] = +'Enable cannot use global variables ( `_ENV` is set to `nil`) diagnostics.' +config.diagnostics['unused-label'] = +'Enable unused label diagnostics.' +config.diagnostics['unused-vararg'] = +'Enable unused vararg diagnostics.' +config.diagnostics['trailing-space'] = +'Enable trailing space diagnostics.' +config.diagnostics['redefined-local'] = +'Enable redefined local variable diagnostics.' +config.diagnostics['newline-call'] = +'Enable newline call diagnostics. Is\'s raised when a line starting with `(` is encountered, which is syntactically parsed as a function call on the previous line.' config.diagnostics['newfield-call'] = -- TODO: need translate! '在字面量表中,2行代码之间缺少分隔符,在语法上被解析为了一次索引操作' -config.diagnostics['redundant-parameter'] = -- TODO: need translate! -'函数调用时,传入了多余的参数' -config.diagnostics['ambiguity-1'] = -- TODO: need translate! -'优先级歧义,如:`num or 0 + 1`,推测用户的实际期望为 `(num or 0) + 1` ' -config.diagnostics['lowercase-global'] = -- TODO: need translate! -'首字母小写的全局变量定义' -config.diagnostics['undefined-env-child'] = -- TODO: need translate! -'`_ENV` 被设置为了新的字面量表,但是试图获取的全局变量不再这张表中' -config.diagnostics['duplicate-index'] = -- TODO: need translate! -'在字面量表中重复定义了索引' -config.diagnostics['empty-block'] = -- TODO: need translate! -'空代码块' -config.diagnostics['redundant-value'] = -- TODO: need translate! -'赋值操作时,值的数量比被赋值的对象多' +config.diagnostics['redundant-parameter'] = +'Enable redundant function parameter diagnostics.' +config.diagnostics['ambiguity-1'] = +'Enable ambiguous operator precedence diagnostics. For example, the `num or 0 + 1` expression will be suggested `(num or 0) + 1` instead.' +config.diagnostics['lowercase-global'] = +'Enable lowercase global variable definition diagnostics.' +config.diagnostics['undefined-env-child'] = +'Enable undefined environment variable diagnostics. It\'s raised when `_ENV` table is set to a new literal table, but the used global variable is no longer present in the global environment.' +config.diagnostics['duplicate-index'] = +'Enable duplicate table index diagnostics.' +config.diagnostics['empty-block'] = +'Enable empty code block diagnostics.' +config.diagnostics['redundant-value'] = +'Enable the redundant values assigned diagnostics. It\'s raised during assignment operation, when the number of values is higher than the number of objects being assigned.' diff --git a/locale/pt-br/meta.lua b/locale/pt-br/meta.lua index 36b08c707..f21dac60e 100644 --- a/locale/pt-br/meta.lua +++ b/locale/pt-br/meta.lua @@ -293,7 +293,7 @@ debug.getuservalue['<5.3'] = debug.getuservalue['>5.4'] = [[ Retorna o `n`-ésimo valor de usuário associado -aos dados do usuário `u` e um booleano, +aos dados do usuário `u` e um booleano, `false`, se nos dados do usuário não existir esse valor. ]] debug.setcstacklimit = @@ -726,6 +726,19 @@ table.foreachi = -- TODO: need translate! 'Executes the given f over the numerical indices of table. For each index, f is called with the index and respective value as arguments. Indices are visited in sequential order, from 1 to n, where n is the size of the table. If f returns a non-nil value, then the loop is broken and this value is returned as the result of foreachi.' table.getn = -- TODO: need translate! 'Returns the number of elements in the table. This function is equivalent to `#list`.' +table.new = -- TODO: need translate! +[[This creates a pre-sized table, just like the C API equivalent `lua_createtable()`. This is useful for big tables if the final table size is known and automatic table resizing is too expensive. `narray` parameter specifies the number of array-like items, and `nhash` parameter specifies the number of hash-like items. The function needs to be required before use. +```lua + require("table.new") +``` +]] +table.clear = -- TODO: need translate! +[[This clears all keys and values from a table, but preserves the allocated array/hash sizes. This is useful when a table, which is linked from multiple places, needs to be cleared and/or when recycling a table for use by the same context. This avoids managing backlinks, saves an allocation and the overhead of incremental array/hash part growth. The function needs to be required before use. +```lua + require("table.clear"). +``` +Please note this function is meant for very specific situations. In most cases it's better to replace the (usually single) link with a new table and let the GC do its work. +]] utf8 = '' diff --git a/locale/zh-cn/meta.lua b/locale/zh-cn/meta.lua index a192ff72b..a8b699595 100644 --- a/locale/zh-cn/meta.lua +++ b/locale/zh-cn/meta.lua @@ -734,6 +734,19 @@ table.foreachi = '遍历数组中的每一个元素,并以索引号index和value执行回调函数。如果回调函数返回一个非nil值则循环终止,并且返回这个值。该函数等同ipair(list),比ipair(list)更慢。不推荐使用' table.getn = '返回表的长度。该函数等价于#list。' +table.new = -- TODO: need translate! +[[This creates a pre-sized table, just like the C API equivalent `lua_createtable()`. This is useful for big tables if the final table size is known and automatic table resizing is too expensive. `narray` parameter specifies the number of array-like items, and `nhash` parameter specifies the number of hash-like items. The function needs to be required before use. +```lua + require("table.new") +``` +]] +table.clear = -- TODO: need translate! +[[This clears all keys and values from a table, but preserves the allocated array/hash sizes. This is useful when a table, which is linked from multiple places, needs to be cleared and/or when recycling a table for use by the same context. This avoids managing backlinks, saves an allocation and the overhead of incremental array/hash part growth. The function needs to be required before use. +```lua + require("table.clear"). +``` +Please note this function is meant for very specific situations. In most cases it's better to replace the (usually single) link with a new table and let the GC do its work. +]] utf8 = '' diff --git a/locale/zh-tw/meta.lua b/locale/zh-tw/meta.lua index d6ec50d36..61d3f2399 100644 --- a/locale/zh-tw/meta.lua +++ b/locale/zh-tw/meta.lua @@ -734,6 +734,19 @@ table.foreachi = '走訪表中的每一個元素,並以索引號index和value執行回呼函式。如果回呼函式回傳一個非nil值則循環終止,並且回傳這個值。該函式等同ipair(list),比ipair(list)更慢。不推薦使用' table.getn = '回傳表的長度。該函式等價於#list。' +table.new = -- TODO: need translate! +[[This creates a pre-sized table, just like the C API equivalent `lua_createtable()`. This is useful for big tables if the final table size is known and automatic table resizing is too expensive. `narray` parameter specifies the number of array-like items, and `nhash` parameter specifies the number of hash-like items. The function needs to be required before use. +```lua + require("table.new") +``` +]] +table.clear = -- TODO: need translate! +[[This clears all keys and values from a table, but preserves the allocated array/hash sizes. This is useful when a table, which is linked from multiple places, needs to be cleared and/or when recycling a table for use by the same context. This avoids managing backlinks, saves an allocation and the overhead of incremental array/hash part growth. The function needs to be required before use. +```lua + require("table.clear"). +``` +Please note this function is meant for very specific situations. In most cases it's better to replace the (usually single) link with a new table and let the GC do its work. +]] utf8 = '' diff --git a/meta/3rd/OpenResty/library/table.clear.lua b/meta/3rd/OpenResty/library/table.clear.lua deleted file mode 100644 index ba6dfa249..000000000 --- a/meta/3rd/OpenResty/library/table.clear.lua +++ /dev/null @@ -1,7 +0,0 @@ ----@meta - ---- Clear a table of its contents. ----@param t table -local function clear(t) end - -return clear \ No newline at end of file diff --git a/meta/3rd/OpenResty/library/table.new.lua b/meta/3rd/OpenResty/library/table.new.lua deleted file mode 100644 index 385fa672a..000000000 --- a/meta/3rd/OpenResty/library/table.new.lua +++ /dev/null @@ -1,10 +0,0 @@ ----@meta - ---- Create a new table. ---- ----@param narr integer number of array-like items ----@param nrec integer number of hash-like items ----@return table -local function new(narr, nrec) end - -return new \ No newline at end of file diff --git a/meta/template/table.lua b/meta/template/table.lua index a7fe68d2c..b0a386c37 100644 --- a/meta/template/table.lua +++ b/meta/template/table.lua @@ -92,4 +92,16 @@ function table.foreachi(list, callback) end ---@deprecated function table.getn(list) end +---@version JIT +---#DES 'table.new' +---@param narray integer +---@param nhash integer +---@return table +function table.new(narray, nhash) end + +---@version JIT +---#DES 'table.clear' +---@param tab table +function table.clear(tab) end + return table