Skip to content

Releases: JohnnyMorganz/luau-lsp

1.9.0

16 Aug 20:14
Compare
Choose a tag to compare

[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: Autocomplete
    • luau-lsp.hover.enabled: Hover
    • luau-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 return Instance?
  • :GetActor is fixed to return Actor?
  • Fixed bug when using --definitions= when calling luau-lsp analyze

Full Changelog: 1.8.1...1.9.0

1.8.1

01 Aug 11:26
Compare
Choose a tag to compare

[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

30 Jul 15:06
Compare
Choose a tag to compare

[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

17 Jul 14:27
Compare
Choose a tag to compare

[1.7.1] - 2022-07-17

Fixed

  • Fix crash when hovering over function type definitions

1.7.0

17 Jul 13:06
Compare
Choose a tag to compare

[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

02 Jul 14:17
Compare
Choose a tag to compare

[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 as function 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

22 Jun 20:30
Compare
Choose a tag to compare

[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

21 Jun 11:40
Compare
Choose a tag to compare

[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

20 Jun 13:09
Compare
Choose a tag to compare

[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

12 Jun 23:02
Compare
Choose a tag to compare

[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 of EnumFont
  • 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)