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