Skip to content

Releases: elixir-lsp/elixir-ls

Release v0.26.1

30 Dec 19:34
Compare
Choose a tag to compare

v0.26.1: 30 December 2024

Fixes

  • Fixed regression in formatter plugin loader

Release v0.26.0

30 Dec 11:32
Compare
Choose a tag to compare

v0.26.0: 30 December 2024

Highlights

  • Support for elixir 1.18

Improvements

  • Ash framework spark_opts metadata is no longer rendered in function docs Jesse Williams
  • Added a workaround for OTP 27 crash on Windows related to persistent_term erlang/otp#9222
  • Removed DETS backend from tracer. It turned out to be too unstable. Now tracer uses only ETS
  • Completions provider is now able to return record fields from remote records on elixir 1.18+
  • Behaviours implemented by a module are now rendered in docs on hover/complete
  • Selection ranges provider is now able to return correct ranges for expressions with parens on elixir 1.18+
  • Definition/References providers are now working correctly with &1 capture variables on elixir 1.18+

Fixes

  • Fixed a crash in AST processing on elixir <= 1.14 when end_of_expression metadata does not define column

Release v0.25.0

15 Dec 20:16
Compare
Choose a tag to compare

v0.25.0: 15 December 2024

Improvements

  • Definition, implementations and references providers now return ranges. This means that editors will highlight the symbols in code and in case of VSCode finding references will work when the cursor is in side a definition
  • Complete provider will now return record fields when the cursor is inside a record macro call (currently only for locally defined records)
  • Completions provider will now emit keyword list options for defs with typespec including all the options. Previously this worked only for remote modules. Improvements were also made to make sure keyword list options are returned only when cursor is on the last argument of a call
  • Better call trancing in AST processing engine
  • Silenced warnings when AST processing engine is unable to expand macros

Fixes

  • Fixed crash in selection ranges when handling an empty token list
  • Fixed crash in references provider when a symbol has no column position
  • Fixed crash in references provider when unable to find environment
  • Fixed a crash in debug adapter completions provider related to module attributes. Module attributes are now correctly filtered out from the result set
  • Completions provider will no longer insert import statements when accepting a completion with local macro Jean Klingler
  • Silenced an error when handling an unsupported source DAP request
  • Fixed completions crash in Ecto schemas when an invalid regex would be generated
  • Fixed crash when doc chunks returns an invalid UTF8 string
  • Fixed debug adapter crash when inspecting a remote node pid
  • Fixed a crash in debug adapter caused by timed out response from meta process with a stacktrace
  • Completions provider will no longer emit do snippet if the client does not support snippets Rogach
  • Fixed a crash in completions when no snippet is returned Rogach
  • Fixed a crash in installer on elixir 1.13
  • Fixed formatting of ... in typespecs on older elixir versions

Release v0.24.1

14 Oct 20:38
Compare
Choose a tag to compare

v0.24.1: 14 October 2024

Fixes

  • Fixed references crash on variables used in macro
  • Improved document symbols stability on code with unquote fragments
  • Fixed DAP crash when obtaining meta PID timeouts
  • Fixed crash when rendering markdown docs from edoc

Release v0.24.0

06 Oct 20:22
Compare
Choose a tag to compare

v0.24.0: 6 October 2024

Highlights

  • Local file code intelligence engine provided by elixir_sense library has been rewritten from scratch using new elixir 1.17 Macro.Env APIs. The new APIs has been backported to earlier elixir versions 1.13 - 1.16. The new engine expands and traverses elixir AST in a way that mirrors the elixir compiler behavior. As a result, ElixirLS is able to more accurately infer aliases/imports/requires, track variable/attribute definitions and usage, track calls, defined functions, modules and typespecs. It is now also able to expand some macros. All that information is used for completions, navigation to definition, finding references and other LSP operations requiring understanding of elixir code.
    Limitations: The new engine does not expand local macros, and support for dynamically defined functions, modules, and typespecs (including those with unquote fragments) is partial.

Improvements

  • vendored dialyxir updated to v1.4.4
  • vendored jason updated to v1.4.4
  • guard type inference is now smarter and better handle various guard expressions

Fixes

  • fixed crash when analyzing types in guard with map

Breaking changes

  • elixir 1.12 reached end of life and is no longer supported. ElixirLS will fail to start on versions lower than 1.13. Consider updating to 1.13+ or use v0.23
  • Deprecated ez archives release mode is no longer supported. It never worked with elixir 1.16+

Release v0.23.0

03 Aug 21:16
Compare
Choose a tag to compare

v0.23.0: 3 August 2024

Improvements

  • Added support for attaching with the debug adapter to remote nodes
  • Debug Adapter protocol source request implemented
  • Added presentation hints to debug scopes
  • Breakpoints are now annotated as failed if setting them fails

Fixes

  • Fixed a deadlock in debug adapter when meta process is not alive
  • Removed no longer needed workaround for :gen_statem callbacks

Release v0.22.1

10 Jul 12:58
Compare
Choose a tag to compare

v0.22.1: 10 July 2024

Improvements

  • Improvements to symbol presentation in document symbols
  • ANSI colors enabled in Debug Adapter

Release v0.22.0

11 Jun 09:53
Compare
Choose a tag to compare

v0.22.0: 11 June 2024

Highlights

  • Support for elixir 1.17
  • Support for OTP 27

Improvements

  • Related information with inferred type is added on diagnostics origination from elixir 1.17 type system
  • Added support for ExDoc autolinking in OTP 27 markdown documentation
  • Debug adapter can display OTP 27 process labels
  • Dialyzer is more strict with option validation
  • Updated vendored dialyxir to 1.4.3
  • Added support for vfox package manager yeshan333

Fixes

  • Fixed a crash in metadata builder when recovering from AST parse error

Release v0.21.3

22 May 09:56
Compare
Choose a tag to compare

v0.21.3: 22 May 2024

Improvements

  • Reuse incremental dialyzer PLT when suggesting specs
  • Avoid starting both incremental and old dialyzer

Fixes

  • Properly clean up incremental dialyzer PLT when a new one is loaded

Release v0.21.2

21 May 05:36
Compare
Choose a tag to compare

v0.21.2: 21 May 2024

Improvements

  • Improved validation of dialyzer options. Previously invalid options were allowed leading to dialyzer crashes

Fixes

  • Fixed a crash in incremental dialyzer leading to used memory buildup