LuaLS / LuaLS/lua-language-server
Annotations with mixins?
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
Hi I'm trying to make annotations that must require the user to have certain fields in a table as a requirement.
For instance, I want a table that needs to have x,y fields, or certain functions.
Here is some pseudo-code that might explain what I mean:
```
---@class Spinnable
---@field spin fun()
---@class Positionable
---@field x number
---@field y number
---@field setPos fun(x: number, y: number)
---@generic T : Spinnable, Positionable
---@param p1 `T`
---@return T
local function doFunction(p1) return p1 end
local entity = { x = 5 } -- A table that is missing the other fields
local check = doFunction(entity) -- I want a warning here saying it doesn't have, `y`, `setPos()`, or `spin()`
```
Is this currently possible to require certain fields in a table?
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par reproduire le pseudo-code annoté de l’issue et examinez la façon dont le language server gère les annotations de classes, les génériques et les vérifications des champs de table. La tâche est terminée lorsqu’une table à laquelle il manque y, setPos ou spin produit un diagnostic lorsqu’elle est passée à doFunction, tandis qu’une table compatible est acceptée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- lua
- Domaine
- devtools
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 25/100