Releases: elixir-lsp/elixir-ls
Releases · elixir-lsp/elixir-ls
Release v0.27.2
v0.27.2: 24 March 2025
Fixes
- Improved asdf v0.16+ handling in launch script. ElixirLS will no longer overwrite ASDF_* environment variables
- Fixed selection ranges crash with empty do end blocks
- Fixed declaration provider when multiple locations are returned
- Avoid emitting events from debug adapter after
disconnect
request
Release v0.27.1
v0.27.1: 27 February 2025
Fixes
- Fixed regression in legacy asdf handling
Release v0.27.0
v0.27.0: 27 February 2025
Highlights
- Added Go to declaration provider. It can be used to navigate from implementation to callback definition in behaviour module, from protocol implementation to protocol definition or from overriding def to the
__using__
macro. - Added support for asdf v0.16
Improvements
- Better handling of typespecs from behaviours
- Definition provider returns spec and callback location
- Hover provider returns documentation on spec and callbacks
- Added a new setting
elixir_ls.stdlibSrcDir
to allow users to point to their elixir stdlib directory cbecker - Better handling of non standard deps_path and path deps in tracer
- Replace function code action now works with
__MODULE__
and attribute calls - Better macro expansion with cursor AST nodes
Fixes
- Fixed incremental dialyzer crash on error
- Avoid triggering build on settings notification when settings are not changed. This caused a dialyzer crash in some clients
- Fish sell launch script now uses exec instead of eval. This should resolve process leaks
- Use System.halt/1 to exit the server, this is more reliable than System.stop/1 and should resolve issues with process leaks
- Added a workaround for a common completions crash related to Ash
- Fixed a rare parser crash on race conditions between document update and LSP request
- Fixed crash in code action when diagnostic is a markdown document
- Fixed completions crashing on too long regexes
- Fixed a bug in inference engine on invalid pin AST nodes
- Fixed a crash on invalid optional callbacks
Breaking changes
- elixir 1.13 reached end of life and is no longer supported. Consider updating to 1.14+
Release v0.26.4
v0.26.4: 31 January 2025
Fixes
- Fixed a crash when elixir 1.18.0 emits diagnostics without line position
- Fixed a crash in type inference engine when expanding calls
Release v0.26.3
v0.26.3: 30 January 2025
Improvements
- Better handling of AST with cursor in defs and typespecs
- ElixirLS will now respect that locals are not accessible in module body
- Macro accessibility rules are now respected in type inference engine
Fixes
- Fixed completions crash in keyword options
- Fixed completions crash when cursor line in request was outside document range
- Fixed completions crash when unable to format spec
- Fixed a crash when surround context around cursor is dynamic alias
- Fixed a crash when elixir 1.18.0 emits diagnostics without column position
- Fixed completions crash on capture arg
- Fixed signature provider crash on protocol reflection functions
- Fixed multiple provider crashes when LSP request position falls exactly in the middle of UTF16 high surrogate pair
Release v0.26.2
v0.26.2: 2 January 2025
Improvements
- Replace remote function code action now works when erlang modules are aliased
Fixes
- Fix crash when extracting data from diagnostics on elixir 1.18
- Fixed crash in keyword options completions when docs cannot be found
- Fixed crash in keyword options completions when remote type cannot be expanded
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