luau-analyze: add --definitions=<file> option for loading type definition files #1139
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add the ability to load a type definition file before type checking.
This is useful in projects that'd like to declare their own types (such as types declared by their game engine's Luau integration code) and linting their scripts using 'luau-analyze'.
This is modeled to behave similar to the luau-lsp.types.definitionFiles in the Luau LSP project (https://github.com/JohnnyMorganz/luau-lsp).
Usage example:
I also implemented small example project that motivates why and how to use type definition files. The project declares some functionality in Zig, exposes the Zig functions to Luau, and declares the added object types so that
luau-analyze
can be used to type check any scripts written against this code: https://github.com/nurpax/luau-zig-example/tree/main/src. Summary of the example source files:--definitions
flag, it's hard to lint this file because the engine's types are missing.