Releases: elixir-lsp/elixir-ls
Releases · elixir-lsp/elixir-ls
Release v0.26.1
v0.26.1: 30 December 2024
Fixes
- Fixed regression in formatter plugin loader
Release v0.26.0
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
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
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
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.17Macro.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
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
v0.22.1: 10 July 2024
Improvements
- Improvements to symbol presentation in document symbols
- ANSI colors enabled in Debug Adapter
Release v0.22.0
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
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
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