Tencent / LuaHelper

LuaHelper is a High-performance lua VSCode plugin, Language Server Protocol for lua.
Other
624 stars 92 forks source link

需要支持table括号执行后得到table本身 #70

Open mybios opened 2 years ago

mybios commented 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) `

yinfei8 commented 2 years ago

你好,我大概明白了。能否加下QQ:313745207细聊 。