This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-03-10
Channels
- # announcements (3)
- # asami (4)
- # babashka (21)
- # beginners (97)
- # calva (32)
- # cider (4)
- # clj-kondo (7)
- # cljdoc (1)
- # clojure (70)
- # clojure-europe (27)
- # clojure-nl (10)
- # clojure-norway (18)
- # clojure-uk (8)
- # clojure-ukraine (1)
- # clojurescript (5)
- # datalevin (7)
- # docker (1)
- # emacs (3)
- # fulcro (4)
- # girouette (4)
- # graalvm (2)
- # graphql (9)
- # gratitude (3)
- # honeysql (4)
- # hoplon (3)
- # hyperfiddle (7)
- # jobs (3)
- # kaocha (31)
- # lsp (23)
- # malli (7)
- # missionary (6)
- # nextjournal (9)
- # off-topic (6)
- # pathom (13)
- # polylith (13)
- # practicalli (3)
- # remote-jobs (3)
- # reveal (7)
- # schema (1)
- # sci (23)
- # shadow-cljs (31)
- # tools-deps (62)
- # xtdb (8)
Hi there, I'm just starting out with Reveal and so far I've been very impressed with it, so thank you for the wonderful tool 🙂 I did, however, come across something which I'm not sure if it's by design or not: For a Cursive project that I'm working on, I noticed that if I send a form that may result in some exception being thrown, to the contrary of my expectation, nothing is shown in Reveal. This has cost me a few hours to debug until I opened up the Cursive REPL window and saw everything being printed correctly. Is this behaviour by design? If not, is there any way I can reroute all the exception messages to Reveal, or better yet, reroute everything to Reveal? Thanks in advance.
Hi, thanks for your kind words! Can you show how it looks? Built-in reveal repls show thrown exceptions in the output... Is the exception thrown on a different thread that does not have *out*
binding forwarded from the REPL? Do you use nrepl?
Ah sorry I think I've made a mistake. Sending forms to the REPL works fine with everything printed correctly. But if I use my frontend to send a request which triggers the same form, then all the messages won't be printed out correctly.
Ah, this one is tricky because it happens on the different thread that does not forward *out*
bindings. The solution to this is overriding System/out and System/err, which is hard to do because it's a global mutable state that can't be localized. This means, for example, that you can't start 2 reveal REPLs in the process and make them both receive all System/{out,err} output.