LuaLS / LuaLS/lua-language-server

Enhancement ---@fieldread, ---@fieldwrite or attribute modifiers on typing

Ouverte
#1,298 2 commentaires 14 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

enhancement
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

  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

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

Recevez les nouvelles issues par e-mail

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