VSCode-EmmyLua
VSCode-EmmyLua copied to clipboard
符号查找不到bug
---@class Object
---@field __index Object @本类
---@field __name string @类名
---@field __instance_name string @类名
---@field __class Object @本类
---@field __super Object @基类
---@field __cacheReleased? boolean
---@field constructor? fun(...)
---@field CacheNew? fun(...)
---@field CacheRelease? fun(...)
local Object = { __name = "Object" }
Object.__index = Object
---定义类
---@generic T : Object
---@param name `T` 类名称
---@return T 类
function class(name)
return inherit(Object, name)
end
---@generic T
---@param super table 基类
---@param name `T` 类名称
function inherit(super, name)
local newClass = {}
newClass.__index = newClass
newClass.__name = name
newClass.__class = newClass
newClass.__super = super
return setmetatable(newClass, super)
end
---@class WndBase : Object
---@field _wnd number
---@field _id number
WndBase = class("WndBase")
---@class WndObject : WndBase
WndObject = inherit(WndBase, "WndObject");
function WndObject:constructor(path, afterInit, parent, ...)
-- prepare init param
self._id = 0
self._wnd = 0
end
如上代码,倒数第二行,第三行的self._id和self._wnd定位查找不到基类WndBase中的定义