This is getting messy, but now the same sym can reference multiple
places. (. file references mysym) only holds the last one, but
(. file definitions <x> :referenced-by) could still hold older
references.
Ideally, any time you write:
(local x (<some form with compiler error>))
(print x)
I don't want it to say "unknown variable x". To make sure that's the
case, I need to do as much error recovery as possible. I don't have full
error recovery, but I've got the common cases, and I'm working down the
fennel.friends list
== Features ==
* Completions and docs for `coroutine`, `debug`, `io`, `math`, `os`, `string`, `table`, `utf8` and their fields.
* Global metadata can follow locals: With `(local p print)`, looking up `p` will show `print`'s information.
* New lint for erroneous calls to (values) that are in a position that would get truncated immediately.
* Upgrade to Fennel 1.4.2
== Bug Fixes ==
* `(-?> x)` and similar macros no longer give a warning (even in fennel 1.4.1 before my -?> patch landed)
* Fixed off-by-one when measuring the cursor position on a multisym. For example, `table|.insert` (where `|` is the cursor) will correctly give information about `table` instead of `insert`.
* Can give completions in the contexts "(let [x " and "(if ", which previously failed to compile.
* Fields added to a table via `(fn t.field [] ...)` now properly appear in completions
* `(include)` is now treated like `(require)`
== Misc ==
* Switched testing framework to faith
* Tests abstract out the filesystem
* Tests use the "|" character to mark the cursor, instead of manually specifying coordinates