Open mybios opened 2 years ago
在使用LuaHelper后,发现内存&性能等方面相对emmylua都有很大提升,我们项目打算全员从emmylua切换到LuaHelper,但由于有数十万行以上存量代码都是以Emmylua标准编写,有一个关键特性需要在LuaHelper中支持,才能比较完美的切换到LuaHelper: 在类的构造过程中,我们通过定义一个table当作类,并调用类的括号(__call),从而得到这个类的实例,这个实例需要支持成员的智能提示,也即需要支持table括号执行后得到table本身。 如下所示:
` local ClassA = {fieldA = 0, fieldB = 1}
function ClassA:test1() end
function ClassA:test2() end
-- 这里希望支持括号执行后得到ClassA,并能智能提示 local instanceA = ClassA() -- 这里在EmmyLua中能提示,在LuaHelper中提示不了 instanceA:test1()
---@class ClassB ---@field fieldA number ---@field fieldB number local ClassB
local instanceB = ClassB() -- 这里在EmmyLua中能提示fieldA字段是instanceB的成员,LuaHelper中不支持 print(instanceB.fieldA) `
你好,我大概明白了。能否加下QQ:313745207细聊 。
在使用LuaHelper后,发现内存&性能等方面相对emmylua都有很大提升,我们项目打算全员从emmylua切换到LuaHelper,但由于有数十万行以上存量代码都是以Emmylua标准编写,有一个关键特性需要在LuaHelper中支持,才能比较完美的切换到LuaHelper: 在类的构造过程中,我们通过定义一个table当作类,并调用类的括号(__call),从而得到这个类的实例,这个实例需要支持成员的智能提示,也即需要支持table括号执行后得到table本身。 如下所示:
` local ClassA = {fieldA = 0, fieldB = 1}
function ClassA:test1() end
function ClassA:test2() end
-- 这里希望支持括号执行后得到ClassA,并能智能提示 local instanceA = ClassA() -- 这里在EmmyLua中能提示,在LuaHelper中提示不了 instanceA:test1()
---@class ClassB ---@field fieldA number ---@field fieldB number local ClassB
local instanceB = ClassB() -- 这里在EmmyLua中能提示fieldA字段是instanceB的成员,LuaHelper中不支持 print(instanceB.fieldA) `