2024-06-07
Highlights
Fuzzy go-to-definition for functions
One of the challenges of a language server is to provide good ergonomics while working with partially correct code. Until now, go-to-definition would only work if the arity of the invoked function was exactly the same as the number of arguments passed in the invocation. We are now relaxing that constraint so that, if no definitions are found with an exact match (function name + arity) we fall back to a function with the same name but different arity. Handy if you are in the process of authoring code.
Support for Linux ARM64
Thanks to @asabil we now have a CI for Linux ARM64. Try the produced artifacts and let us know in case of issues!
No more "Background parsing" progress bar
The "Background Parsing" (separate from the "Loading Applications" one) spinner was displayed while the language server was populating its own internal cache. Many users interpreted this as part of the initial indexing process, so they were waiting for it to complete before using language features. This was not necessary - the background parsing is just an internal optimization -, so we are now hiding it from the user.
Bug fixes and improvements
- New version of eqwalizer!
- Fix crash in the elp shell that could happen during large rebases
Full ChangeLog
dd91c9a Bump extension (Roberto Aloi)
25154e0 Gracefully fail sending progress end (Michał Muskała)
ed3077e CI: add linux aarch64 build (#33) (Ali Sabil)
5754c77 Disable smart elaboration of negation in guards (Victor Lanvin)
42deec4 Repro -- invalid occurrence typing with negation of atoms (Victor Lanvin)
106b771 Sync file change logic from server to shell (Victor Lanvin)
687608f BE: Normalise types during lowering (Alan Zimmerman)
0968593 Only set eqWAlizer config if it has been changed (Victor Lanvin)
8fe7311 Avoid code duplication (Roberto Aloi)
6979267 Limit fuzzy search to go-to-definition (Roberto Aloi)
ff59c24 Fuzzy (any arity) go-to-definition for functions (Roberto Aloi)
3160b7a Add --clause-coverage option (Victor Lanvin)
e980308 EqwalizerConfig as Salsa input (Victor Lanvin)
f779dce Use correct name for [build_info] section (Roberto Aloi)
c37ed3b Remove "Background parsing" spinner (Alan Zimmerman)
8c47bb1 Reload project on change for ELP shell (Victor Lanvin)