Skip to content

Releases: erlang-ls/erlang_ls

0.22.0

04 Feb 13:08
4205028
Compare
Choose a tag to compare

Highlights

Parse Incomplete Text

Screenshot 2022-02-04 at 13 44 53

Ever been annoyed by not being able to navigate or hover for docs functions simply because your function is not complete and therefore it does not parse? @gomoripeti improved the way Points of Interest are extracted from the code, so that's no longer the case!

Improved Support for Variables

Thanks to @plux Erlang LS can now identify the scope of a variable in a more consistent and reliable way. Among the new improvements:

  • Improve the identification of variable scopes within functions
  • Add possibility to rename variables within -spec
  • Fix parsing of variables within macros
  • Add support for navigating variables outside of functions
  • Add support for finding variable references

Rename Functions While Standing on -spec

Screenshot 2022-02-04 at 14 06 06

It was already possible to rename a function via Erlang LS (which would update all references to it). For extra convenience, it is now possible to trigger the rename operation from a -spec, too!

Global Config

maps:merge(Global, Local)

Erlang LS offers the possibility to specify a system-wide erlang-ls.config. Until now, a local configuration for a project would override the global one entirely. Erlang LS now combines the two configuration, for a hopefully more natural development experience.

Module Name Check

Screenshot 2022-02-04 at 13 43 02

In Erlang, the name of a module, expressed in a module attribute has to coincide with the filename minus the extension to ensure code loading works smoothly.

A new diagnostic is now emitted when this is not the case, informing the user. The next natural step is to add a quick action to quickly fix this. Why not to implement this as your first Erlang LS contribution? We are happy to help in getting started on how to become a contributor!

Debug Logs

erlang_ls -l debug

Due to a bug, it was not possible to correctly visualize debug logs. Thanks to @AminArria this bug is finally fixed, so happy troubleshooting!

What's Changed

New Contributors

Full Changelog: 0.21.2...0.22.0

0.21.2

03 Dec 10:42
e12f90c
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.21.1...0.21.2

0.21.1

01 Dec 17:10
77f26e8
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.21.0...0.21.1

0.21.0

01 Dec 14:49
210b871
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.20.0...0.21.0

0.20.0

04 Oct 18:42
cbc0f8d
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.19.0...0.20.0

0.19.0

10 Sep 15:14
3ccf513
Compare
Choose a tag to compare
  • Add config option to exclude unused headers from warnings (thanks @NAR)
  • Introduce experimental BSP support (thanks @al-khanji)
  • Find non-parametrized macro definitions (thanks @NAR)
  • Fix type mismatch in unused_macros diagnostic (thanks @nwalker)
  • Enable incremental_sync by default
  • Introduce diagnostic codes for the OTP compiler (thanks @alanz)
  • Simplify protocol implementation (thanks @al-khanji)
  • Add telemetry/event notifications for compiler diagnostics (thanks @alanz)

0.18.0

14 Aug 15:04
c42f6dd
Compare
Choose a tag to compare
  • Fix issue with code reloading when no cookie is set up
  • Fix support for multiple threads in DAP continue request (thanks @TheGeorge)
  • Add guidelines on encoding binaries
  • Publish escripts as part of CI
  • Specify category for DAP events, so they get displayed via the Emacs UI
  • Speed up detection of unused includes (thanks @keynslug)
  • Fix issue with the initialization of the DAP server
  • Fix display of DAP logpoints
  • Show warning in case of missing configuration file
  • Reduce log level of events related to background jobs and compilation
  • Support macros as record names
  • Ignore Emacs backup and temporary files (thanks @pierre-rouleau)
  • Refactor distribution and improve support for longnames (thanks @zsoci)
  • Fix crash when applying edits to unicode text (thanks @plux)
  • Add hover support on record expressions (thanks @ztion)

0.17.0

11 Jun 14:26
0612167
Compare
Choose a tag to compare
  • Prevent infinite recursion when enumerating document POIs (thanks @keynslug)
  • Fix creating macro POIs in function applications (thanks @gomoripeti)
  • Add logging via window/LogMessage (thanks @TheGeorge)
  • Find implementations for callback functions
  • Fix completion for incomplete export entry (thanks @gomoripete)
  • Fix docs for macros with arguments (thanks @gomoripeti)
  • Add support for renaming types (thanks @plux)
  • Add support for long names in DAP (thanks @zsoci)
  • Implement dummy handler for pause in DAP (thanks @TheGeorge)
  • Remove TCP support
  • Add support for attach in DAP (thanks @RunyaoZhang)

0.16.0

31 May 10:25
28694b7
Compare
Choose a tag to compare
  • Support renaming for record names and record fields (thanks @gomoripeti)
  • Correctly decode path to custom configuration on Windows (thanks @misaki214)
  • Allow config file to be named erlang_ls.yaml in addition to erlang_ls.config (thanks @elbrujohalcon)
  • Implement support for incremental text synchronization (thanks @plux)
  • Fix finding references for types defined in header files (thanks @plux)
  • Upgrade ranch dependency to 2.0.0 (thanks @plux)
  • Fix scoping for macro and record referencing (thanks @gomoripeti)
  • Use column numbers for Dialyzer diagnostics when available (thanks @plux)
  • Fix Dialyzer diagnostics support for OTP 24 (thanks @plux)
  • Truncate suggested spec titles (thanks @hellmean)
  • Improve installation instructions (thanks @pierre-rouleau)
  • Allow renaming functions when pointing at function references (thanks @plux)
  • Fix crash in function references code lens (thanks @hellmean)
  • Debugger support for conditions and hitconditions for breakpoints and logpoints (thanks @hajduakos)
  • Use erlfmt for parsing (thanks @gomoripeti)

0.15.0

27 Apr 12:48
016167e
Compare
Choose a tag to compare
  • Return references if no definitions are found (thanks @TheGeorge)
  • Fix incorrect bound variable warnings in fun expression heads (thanks @gomoripeti)
  • Clear stalled indicator on termination (thanks @zsoci)