Good day. Is there any way to prevent vanilla emacs hanging on long cider-repl buffer output? Or maybe there some guide in the Internet how to mitigate the issue? Personally I read that so-long mode (emacs 27.1) should address this issue but I haven't found any differences. Be honest, clojure tends to work with data so huge text output on the cider-repl buffer is common use case, and that's very unfortunate.
I think there is cider-interrupt
I also didn’t see any difference with so-long.
I don’t have a real solution for this, but you can mitigate it a bit with *print-length*
and *print-depth*
, and by defining print-method
on classes that are known to print very large strings. It’s also helpful to bind cider-repl-clear-buffer
to an easy key.
yes, most of the time I found myself using either first
or spit
output to file and then check this output in other editor, but if I forgot to do this or output was to much, I need to restart emacs, that super annoying.
I just want to know how other people organize their workflow in this regard
if it gets wedged sometimes I can use C-c M-o
, which I have bound to cider-repl-clear-buffer
, and then eventually (maybe after a minute or so) that will clear everything in the buffer and it will become responsive again.
don't need to restart emacs. cider-repl-clear-output
(`C-c C-o`) will clear the last repl output and C-u C-c C-o
(same command but with a prefix arg) will clear the whole buffer
We have also implemented print-method
s for things we know are a problem, like in-memory Datomic databases and our internal state map that gets passed around everywhere.
thank you everyone, checking this
@ilyuha21st Suggest not using the Repl buffer directly. Instead evaluate expressions in the source code buffer, seeing results in line It's much more efficient as you don't need to change namespaces. Evaluation results are truncated so the buffer doesn't slow down Emacs cider-inspect shows the full results of an expression and pages through very large data sets and deeply nested data structures. With the cider-inspect buffer open, it's updated when expressions are evaluated.