Skip to content

Releases: JohnnyMorganz/luau-lsp

1.22.1

15 Jul 19:31
Compare
Choose a tag to compare

[1.22.1] - 2023-07-15

Changed

  • Sync to upstream Luau 0.584
  • Removed need for typechecking for operations that don't require the type information (e.g., document link / color)

Fixed

  • Fixed diagnostics not showing when working in a new file with no workspace open
  • Fixed race condition where sometimes the server does not receive user configuration on initial load, falling back to defaults
  • luau-lsp.fflags.override will now be parsed when using CLI analyze settings. Note that the other fflags options are not supported in CLI analyze mode
  • Fixed semantic tokens segfault crash on some tables
  • Fixed duplicate definitions showing in the Go To Definition page
  • Fixed some syntax highlighting inconsistencies
  • Added a temporary fix to "RecursionLimitException" exceptions leaking to the public interface.

1.22.0

30 Jun 14:35
Compare
Choose a tag to compare

[1.22.0] - 2023-06-30

Added

  • Support requiring directories with init.luau (or init.lua) files inside of them. i.e. require("../Directory") resolves to ../Directory/init.luau.
  • The CLI analyze now accepts a parameter --settings=path/to/settings.json which takes in LSP-style settings to configure features such as require settings. Note: this is separate to .luaurc

Changed

  • Significant improvements to memory usage in large workspaces when workspace indexing or diagnostics are enabled
  • Sync to upstream Luau 0.582
  • Deprioritise file or directory aliases over exact paths in autocomplete, since typically aliases start with a prefix (e.g. @)
  • Signature Help is more intelligent about providing information about the best function overload which matches

Fixed

  • Fixed language features not working in new untitled files
  • Fixed incorrect color conversions in the color picker between RGB/HSV/Hex
  • Fixed autoimporting modules not respecting multiline requires
  • Fixed documentation for debug and utf8 library
  • Fixed synthetic typeof() showing up in signature help for builtin tables (e.g. function typeof(string).byte(...))
  • Fixed signature help highlighting for string library
  • Fixed rename symbol on a type definition type NAME = ...
  • Fixed file and directory aliases not being canonicalised to absolute paths causing "Follow Link" to fail when using relative alias paths
  • Don't show directory aliases after the first path segment has been typed
  • Fixed rename symbol not working when triggered at the end of a symbol
  • Fix indentation of autocomplete end when autocompleting inside of a function call

1.21.0

14 Jun 15:50
Compare
Choose a tag to compare

[1.21.0] - 2023-06-14

Deprecated

  • Deprecated luau-lsp.autocompleteEnd setting in favour of luau-lsp.completion.autocompleteEnd

Added

  • Added folding ranges for multi-line function definitions, so long parameter lists can be collapsed
  • Added notification when we detect definitions file changes
  • Added support for auto-requiring modules when autocompleteing a type reference, to allow indexed types: i.e. autocompleting Module in type Foo = Module.Bar
  • Added luau-lsp.require.directoryAliases to map require string prefixes to directories
  • Added tilde expansion to luau-lsp.require.fileAliases (and directoryAliases), mapping ~/foo.lua to a file in your home directory
  • End autocompletion will now work for defined anonymous functions inside of function calls

Changed

  • Sync to upstream Luau 0.580
  • Updated workspace indexing strategy to minimise memory usage. We no longer index ignored files (luau-lsp.ignoreGlobs),
    and there is a setting luau-lsp.index.maxFiles (default: 10,000) to configure the amount of files indexed before backing off.

Fixed

  • When editing in model projects, we now force relative requires, instead of incorrect absolute requires using a "ProjectRoot"

1.20.2

10 May 21:39
Compare
Choose a tag to compare

[1.20.2] - 2023-05-10

Fixed

  • Fixed internal error for LazyType unwrapping

1.20.1

09 May 21:43
Compare
Choose a tag to compare

[1.20.1] - 2023-05-09

Fixed

  • Fixed bug in semantic tokens system causing language server crashes

1.20.0

09 May 19:08
Compare
Choose a tag to compare

[1.20.0]

Added

  • Added support for workspace symbols to resolve symbols across the whole workspace. In VSCode, you can open this using Ctrl + T
  • Added configuration option luau-lsp.require.fileAliases to statically provide custom mappings from string requires to a file path.
    For example, adding @example/constants mapping to C:/fakepath/constants.luau will automatically resolve require("@example/constants")
  • Added support for Folding Ranges. The language server now signals the following foldable ranges in a document:
    • Whole blocks, such as do .. end, for - do .. end function() .. end etc.
    • Tables, and type tables x = { .. }
    • Multiline function calls foo(..)
    • Block comments --[[ .. ]]
    • Custom comment regions denoted using --#region and --#endregion
  • Added support for Call Hierarchies. Call Hierarchies allow you to view all incoming and outgoing calls of a function:
    i.e., all functions that call the current function, as well as all functions that the current function calls.
    This works at multiple levels, displaying ancestor and descendant functions.

Changed

  • Sync to upstream Luau 0.575

1.19.2

28 Apr 18:20
Compare
Choose a tag to compare

[1.19.2]

Fixed

  • Fixed forced expressive types in diagnostics
  • Added option --no-strict-dm-types for analyze CLI to disable strict datamodel types and its associated false positives

1.19.1

27 Apr 18:04
Compare
Choose a tag to compare

[1.19.1] - 2023-04-27

Fixed

  • Fixed regression in DataModel item autocompletion

1.19.0

26 Apr 19:55
Compare
Choose a tag to compare

[1.19.0] - 2023-04-26

Deprecated

  • Deprecated config luau-lsp.completion.suggestImports: use luau-lsp.completion.imports.enabled instead

Added

  • Added setting luau-lsp.index.enabled which will index the whole workspace into memory. If disabled, only limited support for Find All References and rename is possible
  • Added support for finding all references of both local and exported types. For exported types, luau-lsp.index.enabled must be enabled for full support.
  • Added support for renaming table properties across files. If luau-lsp.index.enabled is disabled, this feature is disabled for correctness reasons.
  • Added support for renaming types (both local and exported). If luau-lsp.index.enabled is disabled, this exported types renaming is disabled for correctness reasons.
  • Added more settings to auto-importing:
    • luau-lsp.completion.imports.enabled: replaces luau-lsp.completion.suggestImports (default: false)
    • luau-lsp.completion.imports.suggestServices: whether GetService imports are included in suggestions (default: true)
    • luau-lsp.completion.imports.suggestRequires: whether auto-requires are included in suggestions (default: true)
    • luau-lsp.completion.imports.requireStyle: the style of require format (default: "auto")
    • luau-lsp.completion.imports.separateGroupsWithLine: whether an empty line should be added in between services and requires (default: false)

Changed

  • Sync to upstream Luau 0.573
  • Improved find all references system for tables. We can now track all references to table and its properties across files. This requires luau-lsp.index.enabled to be enabled for full support.

Fixed

  • Fixed pull diagnostics result not following spec
  • Fixed errors when file has shebang #! present at top of file
  • Fixed string require autocompletion failing when autocomplete triggered on an incomplete string, e.g. require("Constants/Te|").
    Originally, nothing would autocomplete. Now, everything inside of the Constants folder will still autocomplete as usual (filtered for "Te").

1.18.1

23 Mar 15:21
Compare
Choose a tag to compare

[1.18.1] - 2023-03-23

Fixed

  • Fixed server crash when auto require imports is enabled and there is a type-asserted require present in the file (require(location) :: any)
  • Fixed additional automatic service imports when completing an automatic require import being placed before a hot comment (such as --!strict)
  • Fixed automatic require import being placed incorrectly we also autocomplete a service. This can be shown when there is a multiline comment, and the service is imported above that comment, but the require gets imported inside of the comment incorrectly.