From XeroOl to ~technomancy/fennel
Hey everyone, I've been maintaining fennel-ls (the language server for Fennel) for a while now. While it's been wonderful to that people are using it, I've been feeling burnt out as the primary maintainer. I think the project would benefit from broader community involvement. I'd like to propose that we consider making fennel-ls an official Fennel project, by migrating the repository from ~xerool/fennel-ls to ~technomancy/fennel-ls. This would give it a more "official" status, similar to where `fnlfmt` is today. I've already given technomancy access to the ~xerool/fennel-ls repository, so it will still be possible to keep fennel-ls maintained
From XeroOl to ~xerool/fennel-ls
Dear Mattly, Thank you for the contribution! I've applied it! Sincerely, XeroOl
From XeroOl to ~xerool/fennel-ls
Phil, I'm merging/applying(?) your lints now. Not sure the terminology, but you know what I mean. Thank you very much for your patches! Sincerely, XeroOl
From XeroOl to ~xerool/fennel-ls
I've added a lot since the last release of fennel-ls. So far I've been making fennel-ls releases to respond to fennel releases, and this one is for Fennel 1.5.0. However, the latest fennel release isn't yet out on LuaRocks, so if you get fennel-ls from luarocks, it will still be using fennel 1.4.2. Here's what's changed: ### 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
From XeroOl to ~xerool/fennel-ls
Thank you very much! I've applied both of these. XeroOl
From XeroOl to ~technomancy/fennel
I think this may mean that we never need things to defensively wrap
themselves in IIFE for side-effects ever again. We'll still need some
IIFE to deal with multival, though.
---
Before, an expression like
```fnl
(or (foo) (bar) (baz)
(if true 1 2) ;; this one needs a statement
(quux)
(do 100) ;; this one needs a statement
a b c)
```
would compile to
[message trimmed]
From XeroOl to ~xerool/public-inbox
I applied it, and pushed a v0.1.1 to LuaRocks. Thank you very much!
From XeroOl to ~technomancy/fennel
My previous patch messed up the -?> macro. Although -?> and -?>> don't
handle intermediate multivals, their final step can be a multival, and
shouldn't be stored in a variable.
The (doto) macro also was changed in the previous patch, but doesn't
need to be fixed; it still works as intended.
There's a careful balance between making `-?>` a recursive function, and
making `-?>` emit a call to `-?>` that needs to go through another
macroexpand step. A recursive call will run much faster, but it will also
skip the autogensym step, so all of the `tmp#` identifiers would receive
the same symbol. Because of this, the `tmp#` branch emits a `-?>` call in
the output to force autogensym, but the other call is native recursion
for speed.
[message trimmed]
From XeroOl to ~technomancy/fennel
This patch changes the output of -?> and -?>> to only bind their
argument to an identifier if it isn't already idempotent. To do this,
the (double-eval-safe?) helper function is promoted to the top of
src/fennel/macros.fnl, so the logic can be cleanly shared across the
macros.
Each macro is written so that it expects its argument to be idempotent.
Whenever this expectation is broken, the macro simply binds the argument
and recursively re-invokes itself.
The doto macro also had logic to prevent unnecessary bindings, and this
patch refactors that logic so that it is in the same format as the -?>
and -?>> macros.
[message trimmed]
From XeroOl to ~technomancy/fennel
Changes the rules so that multisym symbols whose tail pieces start with a digit contain `&`, such as `foo.0123:&&&` are allowed. This commit doesn't fix the other issue with symbols that end in `.`. --- src/fennel/compiler.fnl | 2 +- src/fennel/parser.fnl | 3 --- src/fennel/repl.fnl | 1 - test/failures.fnl | 2 -- test/misc.fnl | 4 ++++ 5 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/fennel/compiler.fnl b/src/fennel/compiler.fnl index 8b2b296..94d94e0 100644 --- a/src/fennel/compiler.fnl [message trimmed]