X Tutup
Skip to content

Improve Lua type checking for string enums#5869

Merged
sturnclaw merged 2 commits intopioneerspacesim:masterfrom
sturnclaw:lua-enum-keys
Jul 18, 2024
Merged

Improve Lua type checking for string enums#5869
sturnclaw merged 2 commits intopioneerspacesim:masterfrom
sturnclaw:lua-enum-keys

Conversation

@sturnclaw
Copy link
Member

Lua-LS released a new @enum (key) annotation in version 3.7.0 which much better supports "string constants" as enum values. Functions which take an EnumStrings constant as a parameter will have full autocompletion for the list of constant values which make up that string enumeration, and the language server will render a diagnostic if an inappropriate enumeration value is used in that function call.

Note that at current, the effect of this change is limited to a very small subset of callsites where a) the function being called takes an EnumStrings constant, and b) full type information is available for the object the function is being called on.

- Using lua-ls 3.7.0+, any function parameters taking an EnumStrings constant will have full completion and type checking
- This provides much stronger validation that a function is receiving a correct string constant
@sturnclaw sturnclaw merged commit d4c6f7a into pioneerspacesim:master Jul 18, 2024
@sturnclaw sturnclaw deleted the lua-enum-keys branch July 19, 2024 02:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

X Tutup