"Redundant" means that it's a `do` in a context where there's already
an implicit `do`, as defined by fennel.syntax indicating body-form? is
true. Unnecessary means it only has one argument.
When a `match` call's patterns do not contain any symbols that reference
the outer scope, then there is no reason to use `match`; that call
should be replaced with `case`.
This allocates diagnostic code 308 to match-should-case.
In order to detect this, I had to add a loop over file.lexicals. This
is often a very large table, so it could adverse performance impact. I
believe it is necessary in order to distinguish between case vs match
since other means seem to only be applied after macroexpansion by
which time neither one exists.
I've updated docs/linting.md to mention the new loop and cleaned up a
few things in that file that were outdated.
I've added tests for the new lint to ensure it doesn't trigger when it
shouldn't.
The first thing to change is to load the love2d docset inside a pcall,
because it's not included in the standard `make` build, so we need to
not crash if it's not present. Note that we are storing these under
libraries.love2d rather than libraries.love-2d, because even tho it's
inconsistent with tic-80; I've never seen them use the hyphenated
version, and now the name matches the module name.
Secondly, we extend the get-global function to work with anything in
the server.configuration.libraries table, not just hard-coded to
tic-80.
Finally, update the manual to reflect the removal of the love2d hypen.
== Features ==
* Updated to fennel 1.5.0
* Better results when syntax errors are present
* Docs for each Lua version: 5.1 through 5.4
* Docs for TIC-80
== Changes ==
* --check is now --lint
== Bug Fixes ==
* Solved a case where there were duplicate completion candidates
* Special workaround for Eglot to be able to complete multisyms
To be honest, this isn't even Eglot's fault; the LSP specification leaves it ambiguous
[Eglot's issue](https://github.com/joaotavora/eglot/issues/402)
[LSP's issue](https://github.com/microsoft/language-server-protocol/issues/648)
[fennel-mode can't fix it on their end](188ee04e86)
== Misc ==
* Switch json libraries from rxi/json.lua to dkjson
* Lots of refactoring and renaming things
* You can now build fennel-ls with no vendored dependencies if you want
* Building is more reproducible now! `tools/get-deps.fnl` will reproducibly get all the deps, instead of you needing to trust me
* faith updated to 0.2.0