Releases: erlang-ls/erlang_ls
0.23.1
What's Changed
- Fix support for renaming modules by @robertoaloi in #1199
Full Changelog: 0.23.0...0.23.1
0.23.0
What's Changed
- Add case snippet by @robertoaloi in #1194
- Add support for renaming modules by @plux in #1196
- Fix handle module name whitespace by @plux in #1195
- Revert "Precompute list of enabled diagnostics" by @robertoaloi in #1197
Full Changelog: 0.22.0...0.23.0
0.22.0
Highlights
Parse Incomplete Text
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
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
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
- [#1152] Emit error in case the module name does not coincide with the filename by @robertoaloi in #1156
- Parse incomplete text by @gomoripeti in #1146
- [#1050] Add separate way to send log notification to avoid recursion by @AminArria in #1158
- Precompute list of enabled diagnostics by @robertoaloi in #1172
- [#1174] [emacs] Ensure keybinding is configured before loading lsp-mode by @robertoaloi in #1175
- Fix parsing trailing comments in modules by @gomoripeti in #1178
- Update elvis_core to deal with CRLF line endings by @lukebakken in #1176
- Fix typos by @kianmeng in #1173
- Augment local config onto global config by @plux in #1184
- Fix issues with rename variable involving specs by @plux in #1183
- Completion without snippets by @sirikid in #1170
- Ensure that default node name is valid by @plux in #1182
- Fix parsing of define arguments by @plux in #1186
- Allow installing into custom directory by @HiPhish in #1188
- Support renaming function when standing on spec by @plux in #1190
- Improve goto definition for variables by @plux in #1187
New Contributors
- @AminArria made their first contribution in #1158
- @lukebakken made their first contribution in #1176
- @kianmeng made their first contribution in #1173
- @sirikid made their first contribution in #1170
- @HiPhish made their first contribution in #1188
Full Changelog: 0.21.2...0.22.0
0.21.2
0.21.1
What's Changed
- [#1149] Exit with 0 on --version by @robertoaloi in #1150
Full Changelog: 0.21.0...0.21.1
0.21.0
What's Changed
- [#859] Ignore test data directories. by @dgud in #1109
- [#1110] Discover test files automatically by @robertoaloi in #1111
- Hover docs for fun expressions referring to local or remote functions by @gomoripeti in #1112
- Update erlfmt to 1.0.0 by @gomoripeti in #1113
- Add make target
clean
by @JimMoen in #1116 - Provide a Gradualizer diagnostic by @erszcz in #1117
- Eep 48 markdown by @garazdawi in #1100
- Remove fragile heuristics from editable_range by @gomoripeti in #1126
- Do not recurse in els_utils:fold_files by @dgud in #1122
- [#1128] Refactor test framework for diagnostics by @robertoaloi in #1129
- Bring back
coveralls send
step in CI by @pablocostass in #1130 - Remove TCP support by @adrianroe in #1131
- [1140] Do not include error description in code by @robertoaloi in #1141
- [#1143] Lower docs log message level to DEBUG by @robertoaloi in #1144
- Fix unicode output via stdout by @garazdawi in #1147
New Contributors
- @JimMoen made their first contribution in #1116
- @adrianroe made their first contribution in #1131
Full Changelog: 0.20.0...0.21.0
0.20.0
What's Changed
- Fix DAP not finding the source for a module by @maxno-kivra in #1084
- Temporarily skip coveralls send by @robertoaloi in #1087
- Mark headers with compiler attributes as used by @robertoaloi in #1085
- Handle Elvis config errors by @robertoaloi in #1088
- User background job for hover provider to avoid blocking request queue by @TheGeorge in #1091
- Add support for Call Hierarchy by @robertoaloi in #1096
- Detect unused record fields by @robertoaloi in #1099
- Shutdown request does not include parameters by @robertoaloi in #1108
Full Changelog: 0.19.0...0.20.0
0.19.0
- 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
- 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
- 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)