LuaLS / LuaLS/lua-language-server

generic param no hint

Ouverte
#2,801 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Lua
Étoiles
4.4k
Forks
442
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

How are you using the lua-language-server?

Visual Studio Code Extension (sumneko.lua)

Which OS are you using?

Windows

What is the issue affecting?

Completion

Expected Behaviour
---删除物品
---@class pb.S2C_DelItem
---@field itemId integer 物品id

---发送协议到客户端
---@generic T
---@param cmd pb.`T` 命令名
---@param args T
---@return T
function sendToClient(cmd, args)
    return nil
end

local ret = sendToClient("S2C_DelItem",{
    itemId = 1,                 -- 无法推断出args为pb.S2C_DelItem类型,输入itemId无字段类型提示
})

ret.itemId                       -- 返回值能推断出为pb.S2C_DelItem类型,输入itemId有字段类型提示

47d177bc16d5104b26100d38e2e7a69
4373b0763922e91aab1d34326241dd1

Actual Behaviour

能正确推断出泛型参数类型并有代码提示

Reproduction steps

如上代码

Additional Notes

No response

Log File

No response

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par le comportement générique d’inférence et de complétion exercé par l’exemple sendToClient dans l’issue. Reproduisez-le dans le Lua language server avec le code fourni, puis vérifiez que la table args reçoit des indications de champs pour pb.S2C_DelItem, tandis que la valeur renvoyée conserve ses champs inférés.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
lua
Domaine
devtools
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.