Fork me on GitHub

@pez, back with you on dev branch. I've been working the previous snapshot hard on serious hacking, and it's been doing great.


whatever gremlyn was screwing up my fonts in the repl has left the building.


about to hit another hacking wave, so we'll see how dev stands up.


is there a plan to release to real VS-code repo ?


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.


Why don't you ”hide” the computations inside comment forms, @lspector ?


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 seems a bit suboptimal to not be able to load the file, though.


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 terminal is soon history. 😃


That will be great for clarity, assuming that the replacement does what's needed 🙂


I don’t think I understand why you need to send the text to the terminal.


If I'm debugging a function and I add a println, I want to see what it prints


Ah, and that doesn’t happen with inline eval?


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


the default behavior is to show it in the editor pane, anyway


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


also allows for copy + pasting etc.


I think that would be a good compromise in Calva: for general evaluation, seeing the output inline in the editor window. for when one wants to copy-paste or view large outputs, opening a new window with the results with a different command


Calva shows the results in the output pane as well.