Releases: elixir-lsp/elixir-ls
Releases · elixir-lsp/elixir-ls
Release v0.14.5
Fixes
- Fixed regression in debugger not respecting
MIX_ENV
andMIX_TARGET
- Silence output from
dialyxir
making client disconnect from the server on elixir < 1.14 - Avoid serializing PID to JSON
Release v0.14.4
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
Fixes
- Fixed compatibility with elixir 1.12 and 1.13 Maciej Szlosarczyk
Release v0.14.2
Fixes
- Print correct version
Release v0.14.1
Hotfix release fixing mix crash
Release v0.14.0
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. Elixirmix
swallows those warnings since 1.10 - Builds now use
--all-warnings
flag onmix 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 onmix 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
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
Improvements:
- Support for list destructuring and comprehension in
for
andwith
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
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 overdefoverridable
- 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
- Dashbit
- fly.io
- Parker Selbert
- Japa Swadia
- Qdentity
- and ohers
Release v0.10.0
See CHANGELOG.md for release notes: https://github.com/elixir-lsp/elixir-ls/blob/master/CHANGELOG.md#v0100-10-june-2022
What's Changed
- Add Elixir 1.13 to CI by @axelson in #641
- Bump all applications to 0.9.0 by @wingyplus in #644
- Set minimum Elixir 1.13 to 1.13.0 by @wingyplus in #643
- Fix dialyzer invalid contract in token_pairs.ex by @wingyplus in #646
- Fix dialyzer invalid contract in special_token.ex by @wingyplus in #647
- Fix dialyzer invalid contract in line.ex by @wingyplus in #648
- Fix dialyzer overlapping contract in comment_block.ex by @wingyplus in #649
- Use TextEdit struct instead of map string key by @wingyplus in #650
- Debugger: Allow disabling auto interpreting by @axelson in #616
- Fix docsite publish by @DaniruKun in #636
- CI: use erlef/setup-beam by @axelson in #652
- Add restart custom command by @lukaszsamson in #653
- Bump elixir sense by @lukaszsamson in #657
- add quick search to hexdocs.pm by @zhenfeng-zhu in #574
- Add support for function breakpoints in debugger by @lukaszsamson in #656
- Fix: markdown doc lines should wrap with \n\n by @BlindingDark in #663
- Handle blank mix target value properly by @mnishiguchi in #670
- Conditional breakpoints by @lukaszsamson in #661
- Add test coverage and fix some small issues in debugger variables by @lukaszsamson in #668
- Add support for hit count and log message on breakpoints by @lukaszsamson in #671
- Fix hover bug by @zhenfeng-zhu in #674
- Add support for variable expansion of evaluate results by @lukaszsamson in #672
- Add support for pause and terminateThread requests in debugger by @lukaszsamson in #675
- Fix numerous cases of incorrect utf16 positions returned and passed into elixir_sense by @lukaszsamson in #677
- Make debugger conform to DAP 1.51 continue/stepin/stepout/stepover by @lukaszsamson in #678
- Add support for hover and clipboard eval in debugger by @lukaszsamson in #680
- Add support for completions in debugger by @lukaszsamson in #679
- Add debugger variable scopes with messages and process info by @lukaszsamson in #681
- Suggest an appropriate module name with the 'defmodule' snippet by @bottlenecked in #684
- Misc mkdocs fixes by @timothyvanderaerden in #692
- Build cleanup by @lukaszsamson in #698
- Update changelog for 0.10 release by @lukaszsamson in #697
New Contributors
- @zhenfeng-zhu made their first contribution in #574
- @BlindingDark made their first contribution in #663
- @mnishiguchi made their first contribution in #670
- @bottlenecked made their first contribution in #684
- @timothyvanderaerden made their first contribution in #692
Full Changelog: v0.9.0...v0.10.0