nixos/lua-lsp/meta/template/debug.lua

222 lines
5.5 KiB
Lua

---@meta
---#DES 'debug'
---@class debuglib
debug = {}
---@class debuginfo
---@field name string
---@field namewhat string
---@field source string
---@field short_src string
---@field linedefined integer
---@field lastlinedefined integer
---@field what string
---@field currentline integer
---@field istailcall boolean
---@field nups integer
---#if VERSION >= 5.2 or JIT then
---@field nparams integer
---@field isvararg boolean
---#end
---@field func function
---#if VERSION >= 5.4 then
---@field ftransfer integer
---@field ntransfer integer
---#end
---@field activelines table
---#DES 'debug.debug'
function debug.debug() end
---@version 5.1
---#DES 'debug.getfenv'
---@param o any
---@return table
---@nodiscard
function debug.getfenv(o) end
---#DES 'debug.gethook'
---@param co? thread
---@return function hook
---@return string mask
---@return integer count
---@nodiscard
function debug.gethook(co) end
---@alias infowhat string
---|+'"n"' # ---#DESTAIL 'infowhat.n'
---|+'"S"' # ---#DESTAIL 'infowhat.S'
---|+'"l"' # ---#DESTAIL 'infowhat.l'
---|+'"t"' # ---#DESTAIL 'infowhat.t'
---#if VERSION <= 5.1 and not JIT then
---|+'"u"' # ---#DESTAIL 'infowhat.u<5.1'
---#else
---|+'"u"' # ---#DESTAIL 'infowhat.u>5.2'
---#end
---|+'"f"' # ---#DESTAIL 'infowhat.f'
---#if VERSION >= 5.4 then
---|+'"r"' # ---#DESTAIL 'infowhat.r'
---#end
---|+'"L"' # ---#DESTAIL 'infowhat.L'
---#DES 'debug.getinfo'
---@overload fun(f: integer|function, what?: infowhat):debuginfo
---@param thread thread
---@param f integer|async fun(...):...
---@param what? infowhat
---@return debuginfo
---@nodiscard
function debug.getinfo(thread, f, what) end
---#if VERSION <= 5.1 and not JIT then
---#DES 'debug.getlocal<5.1'
---@overload fun(level: integer, index: integer):string, any
---@param thread thread
---@param level integer
---@param index integer
---@return string name
---@return any value
---@nodiscard
function debug.getlocal(thread, level, index) end
---#else
---#DES 'debug.getlocal>5.2'
---@overload fun(f: integer|async fun(...):..., index: integer):string, any
---@param thread thread
---@param f integer|async fun(...):...
---@param index integer
---@return string name
---@return any value
---@nodiscard
function debug.getlocal(thread, f, index) end
---#end
---#DES 'debug.getmetatable'
---@param object any
---@return table metatable
---@nodiscard
function debug.getmetatable(object) end
---#DES 'debug.getregistry'
---@return table
---@nodiscard
function debug.getregistry() end
---#DES 'debug.getupvalue'
---@param f async fun(...):...
---@param up integer
---@return string name
---@return any value
---@nodiscard
function debug.getupvalue(f, up) end
---#if VERSION >= 5.4 then
---#DES 'debug.getuservalue>5.4'
---@param u userdata
---@param n? integer
---@return any
---@return boolean
---@nodiscard
function debug.getuservalue(u, n) end
---#elseif VERSION >= 5.2 or JIT then
---#DES 'debug.getuservalue<5.3'
---@param u userdata
---@return any
---@nodiscard
function debug.getuservalue(u) end
---#end
---#DES 'debug.setcstacklimit'
---@deprecated
---@param limit integer
---@return integer|boolean
function debug.setcstacklimit(limit) end
---#DES 'debug.setfenv'
---@version 5.1
---@generic T
---@param object T
---@param env table
---@return T object
function debug.setfenv(object, env) end
---@alias hookmask string
---|+'"c"' # ---#DESTAIL 'hookmask.c'
---|+'"r"' # ---#DESTAIL 'hookmask.r'
---|+'"l"' # ---#DESTAIL 'hookmask.l'
---#DES 'debug.sethook'
---@overload fun(hook: (async fun(...):...), mask: hookmask, count?: integer)
---@overload fun(thread: thread):...
---@overload fun(...):...
---@param thread thread
---@param hook async fun(...):...
---@param mask hookmask
---@param count? integer
function debug.sethook(thread, hook, mask, count) end
---#DES 'debug.setlocal'
---@overload fun(level: integer, index: integer, value: any):string
---@param thread thread
---@param level integer
---@param index integer
---@param value any
---@return string name
function debug.setlocal(thread, level, index, value) end
---#DES 'debug.setmetatable'
---@generic T
---@param value T
---@param meta? table
---@return T value
function debug.setmetatable(value, meta) end
---#DES 'debug.setupvalue'
---@param f async fun(...):...
---@param up integer
---@param value any
---@return string name
function debug.setupvalue(f, up, value) end
---#if VERSION >= 5.4 then
---#DES 'debug.setuservalue>5.4'
---@param udata userdata
---@param value any
---@param n? integer
---@return userdata udata
function debug.setuservalue(udata, value, n) end
---#elseif VERSION >= 5.2 or JIT then
---#DES 'debug.setuservalue<5.3'
---@param udata userdata
---@param value any
---@return userdata udata
function debug.setuservalue(udata, value) end
---#end
---#DES 'debug.traceback'
---@overload fun(message?: any, level?: integer): string
---@param thread thread
---@param message? any
---@param level? integer
---@return string message
---@nodiscard
function debug.traceback(thread, message, level) end
---@version >5.2, JIT
---#DES 'debug.upvalueid'
---@param f async fun(...):...
---@param n integer
---@return lightuserdata id
---@nodiscard
function debug.upvalueid(f, n) end
---@version >5.2, JIT
---#DES 'debug.upvaluejoin'
---@param f1 async fun(...):...
---@param n1 integer
---@param f2 async fun(...):...
---@param n2 integer
function debug.upvaluejoin(f1, n1, f2, n2) end
return debug