Fork me on GitHub
#chlorine-clover
<
2020-05-01
>
mauricio.szabo18:05:10

I am thinking on adding one more option to Chlorine - to not use any "helper" for evaluation (for example, Clojure will not use "unrepl" as its using now, for example).

mauricio.szabo18:05:47

I'm also having trouble with UNREPL and I want to change the way I'm evaluating code

mauricio.szabo18:05:00

So, I'm thinking about a "simple way" that does not support "break", and a more complex one that does. This can solve the current issues with UNREPL (when I evaluate something and it breaks everything, so the only choice is to reconnect Chlorine) and also guarantee for users that connect Atom on sensible environments that there'll be no code injection happening at all, even things that only bind local variables (that's what UNREPL is doing right now). WDYT?

👍 4
vlaaad18:05:59

I don't use chlorine, so my opinion in this question might not be worth much, but it will allow tools like Reveal to integrate nicely with chlorine!

seancorfield18:05:45

@mauricio.szabo I'd be perfectly happy with that -- you know my feelings on injection, since I connect Chlorine to production processes 🙂 I think I've only ever needed to "break" an eval once in all the time I've been using Chlorine.

mauricio.szabo21:05:01

@vlaaad what are the primary pain points to integrate Reveal with Chlorine now?

vlaaad06:05:02

Reveal is a repl, so when it's used from chlorine, it's unrepl starts it's own repl, which limits the underlying reveal repl to printing text instead of showing actual values where Reveal's strength lies

mauricio.szabo22:05:44

Ahh, ok! I understood! Yes, it'll probably make things better. The only issue I can see is that Chlorine will probably wrap the command to evaluate in a complicated blob to be able to capture results, but I think you'll be able to ignore the extra info 🙂

mauricio.szabo21:05:35

Also, why unrepl is blocking this integration?

mauricio.szabo21:05:48

@seancorfield yeah, I imagine you would like that 😄. The main reason for this decision is also to have a simpler tooling that will work 99% of the time (and maybe fail 1% because of parallel execution or other things that can happen). Probably not too hard to implement, just a little tricky 🙂

seancorfield21:05:56

I've updated my Atom/Chlorine Setup https://github.com/seancorfield/atom-chlorine-setup to include a ClojureDocs for var command, and added all the keymap to the README with a brief explanation.

seancorfield21:05:38

(this relies on being able to display web pages inline in Cognitect's REBL and navigate between links 🙂 -- I already had JavaDocs integrated)

seancorfield22:05:45

REBL understands that (.URL. "") should be rendered as HTML -- Stu Halloway demo'd that when he launched REBL at Conj 2018 but I don't know how many folks know it's possible.

seancorfield22:05:40

When I'm developing web apps in Atom/Chlorine+REBL, I use that trick to display the app in REBL, side-by-side with Chlorine.

mauricio.szabo22:05:19

Well, it almost works with the new "interactive renderer" 😄

mauricio.szabo22:05:49

It can't parse the CSS, obviously, so this happens...

vlaaad06:05:02

Reveal is a repl, so when it's used from chlorine, it's unrepl starts it's own repl, which limits the underlying reveal repl to printing text instead of showing actual values where Reveal's strength lies