This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-04-20
Channels
- # beginners (27)
- # calva (32)
- # cider (9)
- # clojure (111)
- # clojure-spec (71)
- # clojure-uk (7)
- # clojurescript (22)
- # cursive (20)
- # devcards (1)
- # emacs (4)
- # fulcro (3)
- # hyperfiddle (3)
- # off-topic (8)
- # pathom (26)
- # planck (19)
- # quil (4)
- # re-frame (1)
- # reitit (43)
- # rewrite-clj (9)
- # shadow-cljs (13)
- # spacemacs (7)
- # uncomplicate (5)
@pez, back with you on dev branch. I've been working the previous snapshot hard on serious hacking, and it's been doing great.
I've been removing some blockers for the repl window's release. Have one major thing left there. (The cljs repl window hangs when there are evaluation errors, and sometimes otherwise too.) And there is still quite a lot of work on the jack in. No ETA for when this can be released right now. But I don't think it should be very far away...
On loading files on evaluation, and needing loading for evaluating expressions to work: I'm one of those who often has heavy computations that would happen on load (as in, they might take days), so I definitely don't want automatic evaluation ever. But I also want to be able to evaluate expressions in a file that has not been fully loaded/evaluated. This is in fact my standard workflow. And it's currently possible in Calva but using "Run selected text" (which sends things to the Terminal channel, which would be great except it also sends all of the code it is evaluating there, which makes it hard to see results and outputs and errors). I would really love this to also be possible with whatever new way of evaluating code will be the preferred one (the new repl window, it seems). If loading is necessary for evaluating individual expressions, the workaround would be to go and comment out everything first, load, uncomment, and then begin working. But that seems unnecessary considering that "Run selected text" doesn't need it.
I don't hide the computations in comments because I want them to execute. Just not when I'm only editing the file and evaluating expressions as I develop my code.
It can be loaded, but I only load it when I want it to run, not when I just want to edit it, or to selectively run other things in the file.
This doesn't make sense for every project -- it depends on what the code is being used for, whether it'll be run interactively, etc.
But as a general principle, I don't think things should be run without the user directing the system to do so.
And it doesn't seem like it should be necessary just to edit, or to evaluate other expressions.
I don’t think we will have to make Calva load the file automatically w/o the user explicitly opting in on that.
But it is a fact that Calva relies on evaluation being done before it can deliver some of its services.
As it is now, one doesn't need to load, and one can evaluate things, but only with the "Run selected text" thing
There is also static analysis, but that involves a whole lot of work that I just can’t afford to put in.
I really don't need or think I want much more than is already provided with "Run selected text," except that the fact that that spews all of the code to the terminal, along with results/printed-outputs/errors is problematic, because it makes it hard to see the results/outputs/errors if you're evaluating a lot of code.
The inline stuff gets layered on top of the editing pane, which doesn't work for large values, and I don't think it can be copied. I find that whole concept odd and when I've tried to get used to it I've been stymied by at least those two issues. I want everything (results/outputs/errors, but not extraneous copies of the code or prompts or anything else) to go to one plain text place, not on top of the editing pane, that can be treated like any other plain text place in terms of copying
Most Lisp environments I've used over the years act this way, sending everything to the REPL. There may be a prompt at the beginning, and then the next REPL prompt at the very end, but in between will be all and only the results/outputs/errors from the code that I've evaluated
CIDER seems to default to not sending things to the REPL, which is where Calva took that from maybe
typically for large inputs, I use a different function cider-pprint-eval-last-sexp
which sends the output to it's own buffer and pretty-prints the result for me