From 27034b3d99b31be96865e50d70a776fb3caac088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=80=E8=90=8C=E5=B0=8F=E6=B1=90?= Date: Fri, 13 Nov 2020 10:57:15 +0800 Subject: =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- meta/template/basic.lua | 26 +++++------ meta/template/debug.lua | 12 ++--- meta/template/string.lua | 100 ++++++++++++++++++++++++++++++++++++++++ meta/template/table.lua | 44 ++++++++++++++++++ meta/template/utf8.lua | 36 +++++++++++++++ script-beta/core/completion.lua | 4 +- 6 files changed, 199 insertions(+), 23 deletions(-) create mode 100644 meta/template/table.lua create mode 100644 meta/template/utf8.lua diff --git a/meta/template/basic.lua b/meta/template/basic.lua index ad12e980..1e86d828 100644 --- a/meta/template/basic.lua +++ b/meta/template/basic.lua @@ -1,10 +1,10 @@ ---@type table arg = {} ----@generic ANY ----@param v ANY +---@generic T +---@param v T ---@param message any ----@return ANY +---@return T function assert(v, message) end ---@alias cgopt54 @@ -42,10 +42,9 @@ function getfenv(f) end ---@return table metatable function getmetatable(object) end ----@generic TABLE: table ----@param t TABLE +---@param t table ---@return fun(t: table, i: integer?):integer, any iterator ----@return TABLE t +---@return table t ---@return integer i function ipairs(t) end @@ -90,10 +89,9 @@ function module(name, ...) end ---@return any value function next(table, index) end ----@generic TABLE: table ----@param t TABLE +---@param t table ---@return function next ----@return TABLE +---@return table ---@return nil function pairs(t) return next @@ -122,11 +120,10 @@ function rawget(table, index) end ---@return integer len function rawlen(v) end ----@generic TABLE table ----@param table TABLE +---@param table table ---@param index any ---@param value any ----@return TABLE +---@return table function rawset(table, index, value) end ---@param index integer|'"#"' @@ -141,10 +138,9 @@ function select(index, ...) end ---@return function function setfenv(f, table) end ----@generic TABLE: table ----@param table TABLE +---@param table table ---@param metatable table ----@return TABLE +---@return table function setmetatable(table, metatable) end ---@param e string|number diff --git a/meta/template/debug.lua b/meta/template/debug.lua index b957d948..f599655c 100644 --- a/meta/template/debug.lua +++ b/meta/template/debug.lua @@ -80,10 +80,10 @@ function debug.getuservalue(u, n) end ---@return integer|boolean function debug.setcstacklimit(limit) end ----@generic ANY ----@param object ANY +---@generic T +---@param object T ---@param env table ----@return ANY object +---@return T object function debug.setfenv(object, env) end ---@alias hookmask @@ -106,10 +106,10 @@ function debug.sethook(thread, hook, mask, count) end ---@return string name function debug.setlocal(thread, level, index, value) end ----@generic ANY ----@param value ANY +---@generic T +---@param value T ---@param meta table ----@return ANY value +---@return T value function debug.setmetatable(value, meta) end ---@param f function diff --git a/meta/template/string.lua b/meta/template/string.lua index e69de29b..a7bfebe8 100644 --- a/meta/template/string.lua +++ b/meta/template/string.lua @@ -0,0 +1,100 @@ +---@class string +string = {} + +---@param s string +---@param i integer? +---@param j integer? +---@return integer +---@return ... +function string.byte(s, i, j) end + +---@param byte integer +---@vararg integer +---@return string +---@return ... +function string.char(byte, ...) end + +---@param f function +---@param strip boolean? +---@return string +function string.dump(f, strip) end + +---@param s string +---@param pattern string +---@param init integer? +---@param plain boolean? +---@return integer start +---@return integer end +---@return ... captured +function string.find(s, pattern, init, plain) end + +---@param s string +---@vararg string +---@return string +function string.format(s, ...) end + +---@param s string +---@param pattern string +---@param init integer? +---@return fun():string, ... +function string.gmatch(s, pattern, init) end + +---@param s string +---@param pattern string +---@param repl string|table|function +---@param n integer +---@return string +---@return integer count +function string.gsub(s, pattern, repl, n) end + +---@param s string +---@return integer +function string.len(s) end + +---@param s string +---@return string +function string.lower(s) end + +---@param s string +---@param pattern string +---@param init integer? +---@return string captured +function string.match(s, pattern, init) end + +---@param fmt string +---@param v1 string +---@param v2 string? +---@vararg string +---@return string binary +function string.pack(fmt, v1, v2, ...) end + +---@param fmt string +---@return integer +function string.packsize(fmt) end + +---@param s string +---@param n integer +---@param sep string? +---@return string +function string.rep(s, n, sep) end + +---@param s string +---@return string +function string.reverse(s) end + +---@param s string +---@param i integer +---@param j integer? +---@return string +function string.sub(s, i, j) end + +---@param fmt string +---@param s string +---@param pos integer? +---@return ... +---@return integer offset +function string.unpack(fmt, s, pos) end + +---@param s string +---@return string +function string.upper(s) end diff --git a/meta/template/table.lua b/meta/template/table.lua new file mode 100644 index 00000000..43e709fb --- /dev/null +++ b/meta/template/table.lua @@ -0,0 +1,44 @@ +---@class table +table = {} + +---@param list table +---@param sep string? +---@param i integer? +---@param j integer? +---@return string +function table.concat(list, sep, i, j) end + +---@overload fun(list: table, value: any) +---@param list table +---@param pos integer +---@param value any +function table.insert(list, pos, value) end + +---@param table table +---@return integer +function table.maxn(table) end + +---@param a1 table +---@param f integer +---@param e integer +---@param t integer +---@param a2 table? +---@return table a2 +function table.move(a1, f, e, t, a2) end + +---@return table +function table.pack(...) end + +---@param list table +---@param pos integer? +---@return any +function table.remove(list, pos) end + +---@param list table +---@param comp fun(a: any, b: any):boolean +function table.sort(list, comp) end + +---@param list table +---@param i integer? +---@param j integer? +function table.unpack(list, i, j) end diff --git a/meta/template/utf8.lua b/meta/template/utf8.lua new file mode 100644 index 00000000..cc4deca8 --- /dev/null +++ b/meta/template/utf8.lua @@ -0,0 +1,36 @@ +---@class utf8 +utf8 = {} + +---@param code integer +---@vararg integer +---@return string +function utf8.char(code, ...) end + +utf8.charpattern = '[\0-\x7F\xC2-\xF4][\x80-\xBF]*' + +---@param s string +---@param lax boolean? +---@return fun():integer, integer +function utf8.codes(s, lax) end + +---@param s string +---@param i integer? +---@param j integer? +---@param lax boolean? +---@return integer code +---@return ... +function utf8.codepoint(s, i, j, lax) end + +---@param s string +---@param i integer? +---@param j integer? +---@param lax boolean? +---@return integer? +---@return integer errpos? +function utf8.len(s, i, j, lax) end + +---@param s string +---@param n integer +---@param i integer +---@return integer p +function utf8.offset(s, n, i) end diff --git a/script-beta/core/completion.lua b/script-beta/core/completion.lua index 02c6673c..d2f53d8f 100644 --- a/script-beta/core/completion.lua +++ b/script-beta/core/completion.lua @@ -1129,8 +1129,8 @@ local function tryLuaDocBySource(ast, offset, source, results) if not func or not func.args then return end - for i, arg in ipairs(func.args) do - if matchKey(source[1], arg[1]) then + for _, arg in ipairs(func.args) do + if arg[1] and matchKey(source[1], arg[1]) then results[#results+1] = { label = arg[1], kind = define.CompletionItemKind.Interface, -- cgit v1.2.3