Releases: JohnnyMorganz/luau-lsp
Releases · JohnnyMorganz/luau-lsp
1.22.1
[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 otherfflags
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
[1.22.0] - 2023-06-30
Added
- Support requiring directories with
init.luau
(orinit.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
andutf8
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
[1.21.0] - 2023-06-14
Deprecated
- Deprecated
luau-lsp.autocompleteEnd
setting in favour ofluau-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
intype Foo = Module.Bar
- Added
luau-lsp.require.directoryAliases
to map require string prefixes to directories - Added tilde expansion to
luau-lsp.require.fileAliases
(anddirectoryAliases
), 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 settingluau-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
[1.20.2] - 2023-05-10
Fixed
- Fixed internal error for LazyType unwrapping
1.20.1
[1.20.1] - 2023-05-09
Fixed
- Fixed bug in semantic tokens system causing language server crashes
1.20.0
[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 toC:/fakepath/constants.luau
will automatically resolverequire("@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
- Whole blocks, such as
- 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
[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
[1.19.1] - 2023-04-27
Fixed
- Fixed regression in DataModel item autocompletion
1.19.0
[1.19.0] - 2023-04-26
Deprecated
- Deprecated config
luau-lsp.completion.suggestImports
: useluau-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
: replacesluau-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
[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.