Skip to content

Releases: elixir-lsp/elixir-ls

Release v0.14.5

04 May 09:36
Compare
Choose a tag to compare

Fixes

  • Fixed regression in debugger not respecting MIX_ENV and MIX_TARGET
  • Silence output from dialyxir making client disconnect from the server on elixir < 1.14
  • Avoid serializing PID to JSON

Release v0.14.4

04 May 09:35
Compare
Choose a tag to compare

Fixes

  • Fixed invalid encoding of messages with unicode strings. This should resolve issues when starting the server in in non-ASCII path

Release v0.14.3

17 Apr 15:37
Compare
Choose a tag to compare

Fixes

Release v0.14.2

15 Apr 14:15
Compare
Choose a tag to compare

Fixes

  • Print correct version

Release v0.14.1

14 Apr 09:38
Compare
Choose a tag to compare

Hotfix release fixing mix crash

Release v0.14.0

14 Apr 05:34
Compare
Choose a tag to compare

Improvements

  • Numerous improvements to variable tracking. This should make navigation to variable definition and references work correctly Samuel Hełdak
  • Doctests can now be run via Test UI Carl-Foster
  • Fixed completions of records defined in the same file
  • Fixed support for alias __MODULE__
  • Silent crashes in dialyzer fixed
  • Document symbol provider now does not crash on incomplete typespec
  • Debugger now properly tracks running processes. Previously UI was not updated when new processes start or running not monitored processes exit
  • Debugger now respects MIX_TARGET environment variable
  • Undefined function diagnostics no longer emitted from mix.exs dependencies. Elixir mix swallows those warnings since 1.10
  • Builds now use --all-warnings flag on mix compile. This should result in more predictable diagnostics in umbrella apps.
  • Completion provider returns typespecs for struct properties in documentation if struct module defines type t()
  • Debugger now returns type of breakpoint in the hit event as required by DAP
  • Fixed crash when elixir-ls is run in a directory without mix.exs
  • References provider now can find references to elixir modules. Previously modules were found only when a function or macro from that module was called
  • Typespecs from behaviour module are used on callback implementations in completions, hover and specification providers
  • @after_verify attribute added in elixir 1.14 is recognized as builtin
  • Fixed edge cases when private def would overshadow a public one
  • Quoted expressions are now skipped when code AST is analyzed. There is low chance anything useful can be extracted from them
  • Submodule implicit alias behavior is now correctly implemented. This should improve quality in various providers
  • Fixed crash in references provider when reference does not have a line (e.g. in phoenix live views)

Refactorings

  • Mix Formatter now properly formats elixir-ls code from the top directory
  • Major refactoring of elixir-ls server driven by Steve Cohen is under way. It's not yet complete and can be tested by enabling experimental server. Thanks to others involved (Scott Ming, Samuel Hełdak)
  • Language server now runs with consolidated protocols. Consolidation is disabled on each build with --no-protocol-consolidation flag on mix compile. This should make the server faster. The side effect is more protocol consolidation warnings printed to the console on elixir < 1.14.

Deprecations

  • This is the last release supporting elixir 1.12

Release v0.13.0

09 Jan 23:37
15d0553
Compare
Choose a tag to compare

Improvements

  • Completions now return LSP 3.17 labelDetails. This allows to provide more contextual detais to completion items
  • Protocol implementations are no longer auto aliased
  • Completions requiring auto aliasing are deprioretized and visually marked
  • Optimisation of references tracing. It should make difference especially in macro heavy modules (e.g. Absinthe schemas)
  • Improvements to dependency reloading on switching branches.
  • Improved compatibility on Windows
  • Definitions provider improved handling of multiline variables timgent
  • Definitions provider now finds correct arity function timgent

Refactorings

  • CI pipeline now runs on Windows and Linux

Deprecations

  • Minimum version of Elixir is now 1.12.3
  • docsh fallback for erlang documentation removed. EEP 48 is supported on OTP 23+
  • Code action prefixing unused variables with _ has been removed due to various problems

Full Changelog: v0.12.0...v0.13.0

Release v0.12.0

08 Nov 22:30
Compare
Choose a tag to compare

Improvements:

  • Support for list destructuring and comprehension in for and with expressions. ElixirLS is able to provide completions for destructured list element
  • Introduction of compile tracers. ElixirLS now builds a databases basing on compile tracers API available since elixir 1.10. References provider has been rewritten to support tracer database
  • Code action prefixing unused variables with _ Luca Cervello
  • Complete now proposes not aliased modules and adds required alias Ajay
  • Custom command running mix clean added. Useful when server hits a compilation error
  • Custom command returning tests in .exs file
  • Better handling of Phoenix components Aaron Tinio
  • Test code lense improvements in umbrella apps 我没有抓狂
  • Start script improved when $XDG_CONFIG_HOME is not set Sahn Lam
  • Deprecated symbols are now deprioretized in completions
  • Improvements to logging
  • Dialyxir is now vendored. This should avert dependency conflicts
  • ElixirLS emits more helpful error messages in case of common problems
  • Automatic builds can now be disabled Hans
  • Better module name suggested for defprotocol Milo Lee
  • Improved LSP position handling

Fixes:

  • Several crashes with untitled: schema URIs fixed
  • Longstanding bug in dependencies reloading leading to infamous ** (Mix.Error) Can't continue due to errors on dependencies fixed
  • Fixed crash when formatting a file with syntax errors Steve Cohen
  • Fixed several crashes in document symbols Steve Cohen

Full Changelog: v0.11.0...v0.12.0

Release v0.11.0

14 Aug 20:45
Compare
Choose a tag to compare

v0.11.0: 14 August 2022

Improvements:

  • Elixir 1.14 support
  • Document symbols now return non empty selection ranges. This fixes breadcrumbs behavior in vscode
  • Fixed dialyzer crash on OTP 25
  • Added support for mix formatter plugins (Dalibor Horinek)
  • Debugger now returns detailed info about ports, pids and function variables
  • Debugger completions now return detal field
  • Diagnostic positions now return column position returned by compiler (elixir 1.14+)
  • Diagnostic position fixed to never return invalid negative values
  • An exat do keyword completion is now preselected and more preferred over defoverridable
  • Fixed hexdoc links in hover for aliased modules and imported functions (Milo Lee)
  • Better module name suggestions in Phoenix live directory (Manos Emmanouilidis)

Deprecations

  • Minimum version of Elixir is now 1.11

Full Changelog: v0.10.0...v0.11.0

This release has been possible thanks to sponsors

Release v0.10.0

10 Jun 05:41
Compare
Choose a tag to compare

See CHANGELOG.md for release notes: https://github.com/elixir-lsp/elixir-ls/blob/master/CHANGELOG.md#v0100-10-june-2022

What's Changed

New Contributors

Full Changelog: v0.9.0...v0.10.0