Skip to content

Releases: JohnnyMorganz/luau-lsp

1.23.0

06 Aug 11:10
Compare
Choose a tag to compare

[1.23.0] - 2023-08-06

NOTE: For automatic sourcemap generation users, this release now requires Rojo v7.3.0+ is installed, with rojo sourcemap --watch support

Added

  • Added command luau-lsp.reloadServer to restart the language server without having to reload the workspace

Changed

  • Sync to upstream Luau 0.589
  • Changes to settings which require server restart will now reload the server instead of having to reload the whole VSCode workspace
  • Switch to Rojo rojo sourcemap --watch command for sourcemap autogeneration. Note that on rojo error, you must manually restart sourcemap regeneration. Requires Rojo v7.3.0+

Fixed

  • Reverted change to type checking in 1.22.0 that reduced memory footprint. This should resolve the problems where diagnostics aren't showing with an InternalCompilerError, at the cost of increased memory use if luau-lsp.diagnostics.workspace is enabled.
  • Fixed string require resolution when the string had a secondary extension: Module.mod will be resolved as Module.mod.luau
  • Fixed resolution of directory aliases pointing to relative paths

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").