LuaLS / LuaLS/lua-language-server
Enhancement ---@fieldread, ---@fieldwrite or attribute modifiers on typing
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
When using some c api's (In my case Factorio's modding api) when you retrieve a value you get one type, but you can set it with multiple different types.
```lua
---@class Surface
---@class Player
local Player = {}
---@fieldread surface Surface
---@fieldwrite surface Surface|string
local p = Player.surface --- p is Surface
p.surface = "Other Surface" --No warnings
```
Another thought I had was attribute types, which would more easily support more attributes in the future
```lua
---@field{read} surface Surface
---@field{write} surface Surface|string
---@field{read,write} surface -- the default if no attributes are supplied
```
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
L’issue ne mentionne aucun fichier, test ou point d’entrée. Commencez par localiser la gestion des annotations de champs Lua et de la vérification des types dans le language server, puis comparez les syntaxes @fieldread/@fieldwrite et d’attributs proposées avec le comportement existant des annotations. Le travail est terminé lorsqu’une syntaxe arrêtée prend en charge des types de lecture et d’écriture distincts et produit le comportement d’avertissement attendu.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- lua
- Domaine
- tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100