chlorine-clover

About Chlorine for Atom and Clover for VS Code: https://atom.io/packages/chlorine and https://marketplace.visualstudio.com/items?itemName=mauricioszabo.clover
mauricio.szabo 2020-02-20T12:45:45.157200Z

Well, after some other bugfixes, I just published Chlorine. It drops Ink, but is still behind experimental features. It seems that it made Atom a little bit faster. When it becomes stable, I'll also add a config to not render the inline results too 🙂

seancorfield 2020-02-20T12:56:07.157900Z

I'm testing it by having Chlorine's Experimental Features enabled and Ink Disabled completely. Seems to be working nicely!

seancorfield 2020-02-20T12:56:57.159300Z

Of course, then I tried cmd-i cmd-c to clear inline results and it didn't work 🙂 Soon found chlorine:clear-inline-results and bound it to ctrl-; K

mauricio.szabo 2020-02-20T12:57:33.159700Z

Great! I remember you told me that there were some glitches while evaluating Clojure code with experimental features on. Please let me know if they still appear

mauricio.szabo 2020-02-20T12:59:09.161300Z

I've also double-checked, and there should be no difference between evaluating Clojure with experimental features on or off. Also, I'm trying to find a way to also disable UNREPL (with a config or something) so there are less "moving parts" that I need to be aware of 🙂

seancorfield 2020-02-20T13:04:11.161700Z

If you disable unrepl, what features would be tied to that?

seancorfield 2020-02-20T13:04:51.163Z

(I'm pleased by the idea of no longer relying on unrepl -- of course! -- you know my mantra about spartan tooling!)

mauricio.szabo 2020-02-20T13:07:19.164900Z

Break evaluation, rendering (things like {(keyword "foo bar") 10} will need treatment), some inspections of Java objects, capturing stdout / stderr, and also long strings / long objects can lock up Atom

mauricio.szabo 2020-02-20T13:08:43.166500Z

Also, it'll lose the ability to render infinite sequences (these will also probably lock Atom). Not that these problems do not exist today - they just don't occur with Clojure, but can occur with ClojureScript, Joker, Babashka, Clojerl, ClojureCLR and so on. So maybe not a big deal 🙂

seancorfield 2020-02-20T13:39:19.167Z

I suspect the stdout/stderr capture will be a deal breaker -- test output, for example?

mauricio.szabo 2020-02-20T14:03:21.167900Z

Yes, currently I'm analyzing how UNREPL works, so I can replicate parts of its code. So far, I'm getting a StackOverflow error 😅

mauricio.szabo 2020-02-20T14:31:43.168600Z

(just found some errors on invalidation / update / detection of inline results without Ink, I'll check if I can publish a fix)

seancorfield 2020-02-20T15:01:11.169Z

Looks like clear inline results does not clear exception/error output?

seancorfield 2020-02-20T16:32:04.169700Z

Hmm, clear inline results do not reliably clear all inline results @mauricio.szabo Sometimes they go away, sometimes they stay around.

mauricio.szabo 2020-02-20T16:32:40.170200Z

Yes, it's exactly the problem I'm having

mauricio.szabo 2020-02-20T16:33:35.171200Z

Debugging it, it seems that the Atom API is not really reliable on what the "last line" of an inline result. I'll probably just accumulate then all and clear then at once.

seancorfield 2020-02-20T16:36:53.171900Z

Sounds good. I'm just left with odd docstring output and exceptions scattered around my files now, until I close & reopen the file 🙂

seancorfield 2020-02-20T16:37:04.172200Z

(I can live with that until you figure out a fix)

mauricio.szabo 2020-02-20T16:37:39.172900Z

Great, I'll see if I can do a fix today 🙂.