Skip to content

泛式类型增加 2

Latest

Choose a tag to compare

@kaishiqi kaishiqi released this 02 Jul 12:02
· 11 commits to master since this release
148a287

进一步对泛型能力的推导进行增强

1、修复了类成员中定义泛型方法时,由于成员函数默认的第一个传参类型为self,从而导致推断错误的问题:

例如在GameFacade.lua 中有如下定义:

---@class GameFacade
local GameFacade = class('GameFacade')

---@return GameFacade
function GameFacade:GetInstans()
end

---@generic T
---@param managerName `T`
---@return T
function GameFacade:GetManager(managerName)
end

return GameManager

在GameManager.lua中的定义:

---@class GameManager
local GameManager = class('GameManager')

function GameManager:GetPlayerId()
end

return GameManager

在业务代码中:

local gameMgr = GameFacade:GetInstance():GetManager('GameManager')
print('playerId = ', gameMgr:GetPlayerId())  -- GetPlayerId 方法能够正确提示及跳转

以上是类似 pureMVC 中挺常见的使用场景

2、进一步加强了推导的能力,修复了推导嵌套导致不准确的情况,可参考工程实例

../luahelper-lsp/testdata/hover/hover_generic.lua

使用方法

将以下文件按需下载,然后解压放入 .vscode/extensions/yinfei.luahelper-0.2.28/server 目录中,覆盖即可(以防万一请做好备份)
armmaclualsp.zip
lualsp.exe.zip
maclualsp.zip
linux 环境未编译

Ps:如有最新版,请使用最新版