luau-lsp

Language Server Implementation for Luau

MIT License

Stars
232

Bot releases are visible (Hide)

luau-lsp - 1.14.2

Published by github-actions[bot] almost 2 years ago

[1.14.2] - 2022-12-04

Changed

  • Sync to upstream Luau 0.555 (in particular, this has improvements to class definitions)

What's Changed

New Contributors

Full Changelog: https://github.com/JohnnyMorganz/luau-lsp/compare/1.14.1...1.14.2

luau-lsp - 1.14.1

Published by github-actions[bot] almost 2 years ago

[1.14.1] - 2022-11-23

Changed

  • Sync to upstream Luau 0.554

Fixed

  • Fixed stack overflow when looking up properties on a table type where the __index is set to itself
luau-lsp - 1.14.0

Published by github-actions[bot] almost 2 years ago

[1.14.0] - 2022-11-13

Added

  • Show inlay hints for variables in for x in y loops

Changed

  • Sync to upstream Luau 0.553

Fixed

  • Fixed rename symbol not working when cursor after variable
  • Fixed rename symbol causing server crashing when attempting to rename a token which is not a variable
luau-lsp - 1.13.1

Published by github-actions[bot] almost 2 years ago

[1.13.1] - 2022-10-29

Fixed

  • Respect client capabilities for snippet support in completion items
  • Respect luau-lsp.completion.addParentheses when fillCallArguments is enabled
  • Fixed Inlay Hints crash when calling a function which only takes varargs
  • Fixed Request Failed due to "No managed text document" as URLs were not being updated correctly
luau-lsp - 1.13.0

Published by github-actions[bot] almost 2 years ago

[1.13.0] - 2022-10-28

Added

  • Show documentation for overloaded functions in completion and hover. We show the documentation string of the first overload, and how many other overloads are present.
  • Show documentation for builtin class methods in signature help, including for the correct overload
  • Show documentation for parameters in signature help
  • Added luau-lsp.completion.addParentheses and luau-lsp.completion.addTabstopAfterParentheses to configure whether parentheses are added when completing a function call, and whether we include a tab stop after the parentheses respectively.
  • Automatically fill function call arguments using parameter names. This can be disabled using luau-lsp.completion.fillCallArguments.

Changed

  • Sync to upstream Luau 0.551
  • Hide parameter name and variable inlay hint if the name is just _

Fixed

  • Fixed string-based requires to use a fully-qualified file path, fixing Document Link (Follow Link) support for requires
  • Fixed reverse dependencies not being marked as dirty when using string requries due to unnormalised file paths
  • Fixed incorrect highlighting of unnamed parameters in signature help when multiple parameters present of same type
  • Fixed documentation not provided for some built-ins on hover
  • Fixed signature help highlighting of parameters named _
  • Fixed documentation comments of parent function being attached to a nested function
  • Use location to determine which parameter is active in signature help
  • Correctly handle highlighting variadic arguments in signature help
  • [Sublime Text] Fixed push diagnostics not being recomputed when sourcemap or .luaurc changes
luau-lsp - 1.12.1

Published by github-actions[bot] about 2 years ago

[1.12.1] - 2022-10-18

Re-release of v1.12.0 to fix VSCode Windows x64 extension issues

Fixed

  • Fixed attempting to run workspace diagnostics on null workspace causing Internal Server errors (affecting Sublime Text)
luau-lsp - 1.12.0

Published by github-actions[bot] about 2 years ago

[1.12.0] - 2022-10-18

Added

  • Added support for moonwave-style documentation comments! Currently only supports comments attached to functions directly. See https://eryn.io/moonwave for how to write doc comments
  • Provide autocomplete for class names in Instance:IsA("ClassName") and errors when ClassName is unknown
  • Provide autocomplete for properties in Instance:GetPropertyChangedSignal("Property") and errors when Property is unknown
  • Provide autocomplete for enums in EnumItem:IsA("enum") and errors when Enum is unknown
  • Added command line flag --ignore=GLOB to luau-lsp analyze allowing you to provide glob patterns to ignore diagnostics, similar to luau-lsp.ignoreGlobs. Repeat the flag multiple times for multiple patterns

Changed

  • Sync to upstream Luau 0.549
  • Deprioritise metamethods (__index etc.) in autocomplete

Fixed

  • Fixed inlay hints not showing for variable types when hover.strictDataModelTypes is disabled
  • Fixed Internal Errors for workspace diagnostics when a type error was being displayed backed by the incorrect text document causing string errors
  • Fixed Internal Errors for goto definitions as incorrect document used for string conversions
  • Fixed overloaded functions not being highlighted as functions in autocomplete
  • Potential fix to Request Failed errors
  • Fixed self incorrectly showing up in Inlay Hints and Signature Help
  • Fixed Studio Plugin syncing causing server crashes
luau-lsp - 1.11.2

Published by github-actions[bot] about 2 years ago

[1.11.2] - 2022-10-08

Changed

  • Sync to upstream Luau 0.548

Fixed

  • Fixed inlay hints no longer showing up
  • Fixed inlay hints not showing up in first load of file until a dummy change is made
  • Fixed DM types not generated for script nodes. Improved autocomplete will now be provided for non-DataModel projects (e.g. Tool as Root)

Full Changelog: https://github.com/JohnnyMorganz/luau-lsp/compare/1.11.1...1.11.2

luau-lsp - 1.11.1

Published by github-actions[bot] about 2 years ago

[1.11.1] - 2022-10-01

Changed

  • Sync to upstream Luau 0.547

Fixed

  • Fixed handling of UTF-16 characters of different size to UTF-8 (i.e., emojis, non-english text). Will no longer produce malformed strings and weird diagnostics
luau-lsp - 1.11.0

Published by github-actions[bot] about 2 years ago

[1.11.0] - 2022-09-28

Added

  • Added support for Semantic Tokens

Changed

  • Improved autocomplete items ordering by applying heuristics to sort items
  • Table keys are prioritised when autocompleting inside of a table

Fixed

  • Fixed .meta.json file being picked as a script's file path instead of the actual Luau file
  • Fixed diagnostics not clearing for files when workspace diagnostics is not enabled
  • Fixed metatable name not being used when hovering over the function of a metatable
  • Manually increased some internal limits to reduce likelihood of type errors
  • Fixed diagnostics (and other global configuration) not loading when not inside of a workspace
  • Fixed server erroring when configuration is not sent by the client
  • Fixed diagnostics not showing on initial startup in push diagnostics mode (Sublime Text)
  • Fixed "insert inlay hint" incorrectly enabled for error types
luau-lsp - 1.10.1

Published by github-actions[bot] about 2 years ago

[1.10.1] - 2022-09-24

Changed

  • Further improvements to instance type creation
  • Sync to upstream Luau 0.546

Fixed

  • Children of game will now correctly show in autocomplete
  • Fix autocomplete of non-identifier properties: [email protected] -> Packages._Index["[email protected]"]
  • Fixed mapping of requires from game.Players.LocalPlayer.PlayerScripts to game.StarterPlayer.StarterPlayerScripts (and PlayerGui + StarterGear)
  • Fixed type errors being reported twice in luau-lsp analyze
luau-lsp - 1.10.0

Published by github-actions[bot] about 2 years ago

This release introduces support for a Studio Plugin to allow the language server to infer instance trees: #136
We also start creating nightly releases available at https://github.com/JohnnyMorganz/luau-lsp/actions/workflows/nightly.yml which builds and packages current main branch every day at midnight UTC.
To use a nightly release, visit the nightly actions section and select an action run. You should find artifacts available to download - unpackage the relevant artifact then use Extensions: Install from VSIX... from vscode. We also build a binary which can be used.


[1.10.0] - 2022-09-17

Added

  • Introduced a Studio plugin to infer instance trees for partially managed projects. This works alongside Rojo sourcemaps, where instance information retrieved from Studio is merged into the sourcemap. Starting the plugin can be configured using luau-lsp.plugin.enabled. Install the plugin from the Plugin Marketplace

Changed

  • Sync to upstream Luau 0.545
  • Inlay hints for variables will no longer show if the type hint string is the same as the variable name (i.e., local tbl = {}, the hint : tbl will no longer show) (#137)
  • Restructured instance types system to reduce memory and type creation footprint

Fixed

  • Fixed false document diagnostics showing up for opened tabs when VSCode is first started (#132)
  • Various type definition improvements
luau-lsp - 1.9.2

Published by github-actions[bot] about 2 years ago

[1.9.2] - 2022-09-06

Changed

  • Sync to upstream Luau 0.543

Fixed

  • Fixed diagnostics for ignored files not clearing when workspace diagnostics is enabled (#77)
  • Fixed luau-lsp analyze would not exit with non-zero error code when definitions failed to load
  • Fixed luau-lsp analyze would not exit with non-zero error code when file path provided was not found
  • Fixed crash when Suggest Imports is enabled and you have a local variable defined with no assigned value (e.g. local name)

New Contributors

Full Changelog: https://github.com/JohnnyMorganz/luau-lsp/compare/1.9.1...1.9.2

luau-lsp - 1.9.1

Published by github-actions[bot] about 2 years ago

[1.9.1] - 2022-08-29

Changed

  • Sync to upstream Luau 0.542

Fixed

  • New service imports which come first alphabetically will group with existing imports rather than going at the beginning of the file
  • Fixed warning messages showing up as notifications when generating Rojo Sourcemap even if it works successfully
luau-lsp - 1.9.0

Published by github-actions[bot] about 2 years ago

[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: https://github.com/JohnnyMorganz/luau-lsp/compare/1.8.1...1.9.0

luau-lsp - 1.8.1

Published by github-actions[bot] about 2 years ago

[1.8.1] - 2022-08-01

Fixed

  • Fixed self being showed as the first inlay hint incorrectly in parameter names and types
luau-lsp - 1.8.0

Published by github-actions[bot] about 2 years ago

[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
luau-lsp - 1.7.1

Published by github-actions[bot] over 2 years ago

[1.7.1] - 2022-07-17

Fixed

  • Fix crash when hovering over function type definitions
luau-lsp - 1.7.0

Published by github-actions[bot] over 2 years ago

[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
luau-lsp - 1.6.0

Published by github-actions[bot] over 2 years ago

[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