Explain that love2d support is opt-in for licensing reasons.
Booooooooo GFDL.
Also include a link to apt.technomancy.us.
Compatible with Fennel 1.5.2.
Add no-decreasing-comparison lint (off by default)
Fix warning in completion test; remove unused stuff from makefile.
Install luarocks in CI manifest, not in ci makefile target.
analyzer can search into macro expansions and functions
shoutouts to rudy for working with me on these changes.
docs: add a table for lspconfig to be happy
Disable printing during compilation.
Allow trailing underscores to bypass unused local warnings.
Strings beginning with digits can't be rewritten as syms.
Also fix a self-lint.
Make it so that Lua 5.1 works again
tset lint should only apply when rewriting as sym is valid
rename "check" to add-lint-diagnostics
json-rpc: handle when \r isn't present
In windows, (in:read) will remove the \r, so the json rpc parsing code
shouldn't assume that the carriage return is always present.
Add instructions for configuring Sublime Text
Add assert-ok helper for linting tests.
Also factor out FAITH_TEST flag so you can use it to run an entire
module, not just individual tests.
Add unnecessary-tset, unnecessary-do, and redundant-do lints.
"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.
Add match-should-case lint and fix action.
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.