Skip to content

Release v0.14.0

Compare
Choose a tag to compare
@github-actions github-actions released this 14 Apr 05:34

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