Releases: JohnnyMorganz/luau-lsp
1.9.0
[1.9.0] - 2022-08-16
Added
-
Added configuration options to enable certain Language Server features. By default, they are all enabled:
luau-lsp.completion.enabled
: Autocompleteluau-lsp.hover.enabled
: Hoverluau-lsp.signatureHelp.enabled
: Signature Help
-
Added configuration option
luau-lsp.hover.showTableKinds
(default: off) to indicate whether kinds ({+ ... +}
,{| ... |}
) are shown in hover information -
Added configuration option
luau-lsp.hover.multilineFunctionDefinitions
(default: off) to spread function definitions in hover panel across multiple lines -
Added configuration option
luau-lsp.hover.strictDatamodelTypes
(default: on) to use strict DataModel type information in hover panel (equivalent to autocomplete). When disabled, the same type information that the diagnostic type checker uses is displayed -
Added support for automatic service importing. When using a service which has not yet been defined, it will be added (alphabetically) to the top of the file. Config setting:
luau-lsp.completion.suggestImports
Changed
- Sync to upstream Luau 0.540
Fixed
- The types of
:FindFirstChild
,:FindFirstAncestor
and:FindFirstDescendant
have been changed to returnInstance?
:GetActor
is fixed to returnActor?
- Fixed bug when using
--definitions=
when callingluau-lsp analyze
Full Changelog: 1.8.1...1.9.0
1.8.1
[1.8.1] - 2022-08-01
Fixed
- Fixed
self
being showed as the first inlay hint incorrectly in parameter names and types
1.8.0
[1.8.0] - 2022-07-30
Added
- Added support for cross-file go to definition of functions
- Added support for go-to definition of properties defined on a metatable with
__index
- Added support for inlay hints. It can be enabled by configuring
luau-lsp.inlayHints.parameterNames
,luau-lsp.inlayHints.parameterTypes
,luau-lsp.inlayHints.variableTypes
,luau-lsp.inlayHints.functionReturnTypes
.
Changed
- Sync to upstream Luau 0.538
- Improved completion detail function param information with better representative types, and include a trailing type pack if present
Fixed
- Fixed crash when hovering over local in incomplete syntax tree
- Fixed language server not working for newly created files not yet stored on disk
- Luau LSP will now activate if you run an LSP command
- Fixed finding the incorrect workspace folder to analyze with in a multi-workspace environment
1.7.1
[1.7.1] - 2022-07-17
Fixed
- Fix crash when hovering over function type definitions
1.7.0
[1.7.0] - 2022-07-16
Added
- Reintroduced support for workspace diagnostics, with proper streaming support. Enable
luau-lsp.diagnostics.workspace
for project wide diagnostics. - You can now hover over a type node to get type information. In particular, this works for properties inside type tables, and hovering over
typeof()
, allowing you to determine what typeof resolved to. - Added Go To Definition for type references
- Added
Luau: Regenerate Rojo Sourcemap
command to force regeneration of a Rojo sourcemap - Improved case where project file
default.project.json
was not found. We search for other project files, and prompt a user to configure
Changed
- Sync to upstream Luau 0.536
- Improved extension error message when Rojo version present does not have sourcemap support
- Document links will now resolve for requires in all locations of a file, not just the top level block
Fixed
- A diagnostic refresh will now be requested once sourcemap contents change
- With the introduction of workspace diagnostics, ignored files should now only show diagnostics when specifically opened
- Document symbols for method definitions now correctly use a colon instead of a dot operator.
- Fixed crash when hovering over a type node
- Fixed go to definition on a global just going to the top of the file. It will now not accept go to definition requests
- Fixed using absolute file paths to point to definition files not working on Windows
1.6.0
[1.6.0] - 2022-07-02
Added
- Added
luau-lsp.sourcemap.enabled
option which dictates whether sourcemap-related features are enabled - Diagnostics will now be provided for definitions files which errored
- Added
luau-lsp.sourcemap.rojoPath
to explicitly specify the path to a Rojo executable instead of relying on it being available from the workspace directory - Added hover information when hovering over a type definition
Changed
- Moved definitions file loading to post-initialization
- Sync to upstream Luau 0.534
- A
_
will no longer show when we can't determine a function name / a function isn't named.
Fixed
- Fixed regression where diagnostics are not cleared when you close an ignored file
- Fixed errors sometimes occuring when you index
script
/workspace
/game
for children - Fixed internal error caused by
:Clone()
calls when called on an expression which isn't an Lvalue (e.g.,inst:FindFirstChild(name):Clone()
) - Fixed bug where
_:
would not be removed as the name of function arguments.function foo(_: number, _: number)
will now show asfunction foo(number, number)
- Fixed analyze mode not exiting with a non-zero exit code when there are errors
- Fixed excessive whitespace in document symbols for expr-named function defintions
- Fixed hover for global functions and local variables
1.5.2
[1.5.2] - 2022-06-22
Changed
- Downgraded missing types/documentation files to a warning in the logs instead of a window error. It is common for no file to be provided in a vanilla build.
Fixed
- Fixed diagnostics not showing for any file after the first one you open
1.5.1
[1.5.1] - 2022-06-21
Fixed
- Module name will now be included in hover and signature displays for imported types
- Fixed bug where in-memory contents of a document which was deleted were not cleared, causing spurious errors when recreating a new document of the same name.
- Fixed duplicate diagnostics displayed and never clearing when
workspace
diagnostics configuration was enabled
1.5.0
[1.5.0] - 2022-06-20
Added
- Added predicate logic to
EnumItem:IsA("Type")
so it will now narrow the type of an EnumItem when used as a predicate - Added setting to configure whether all Luau FFlags are enabled by default. This can be configured using
luau-lsp.fflags.enableByDefault
or--no-flags-enabled
command line option. Currently, all FFlags are enabled by default, but you can manually sync/override them. - Added support for adding extra definition files to load using
luau-lsp.types.definitionFiles
- Roblox definitions can now be disabled using
luau-lsp.types.roblox
- Added label details to completion items
Changed
- Sync to upstream Luau 0.532
- Updated to improve table type stringification, with an appropriate newline placed in between braces. This should result in better readable table types when hovering
- Upgraded vscode language client to 8.0, with support for LSP Specification 3.17
- VSCode Client now makes use of diagnostics pull model
Fixed
- Fixed equality comparison between enum items raising a type error
- Fixed autocompletion of properties with spaces not correctly being converted into a
["property"]
index leading to a type error - Fixed function stringification when using an expression index call such as
data["property"]()
- Fixed workspace diagnostics not respecting ignore globs for dependent files
1.4.0
[1.4.0] - 2022-06-12
Added
- Added Document Symbols support
- Merged luau-analyze-rojo into the project to simplify maintenance. To run a standalone analysis tool, run
luau-lsp analyze
- Added links to Luau Documentation for lint warnings
- Added documentation to Enum types
- Diagnostics of dependents (i.e., files which require a changed file) will now refresh to display type errors when the file changes
- Added support for workspace-wide diagnostics to report in all files. You can enable this using
luau-lsp.diagnostics.workspace
. It is disabled by default
Changed
- Sync to upstream Luau 0.531
- Unused lints will are now tagged appropriately so they render faded out
Fixed
- Fixed the equality comparison between two Instance types causing a type error
- Fixed false positive type errors occuring when using DataModel instance types. Unfortunately, for this fix we had to temporarily type all DataModel instances as
any
. You should still get proper autocomplete and intellisense, however type errors will no longer throw for unknown children. - Fixed enum types to be under the "Enum" library, so the types are referenced using
Enum.Font
instead ofEnumFont
- HTML Tags have been stripped from documentation so they should render better in IntelliSense
- Fixed "Text Document not loaded locally" error occuring when you start typing in a newly created file (as the sourcemap is not yet up-to-date)