This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-03-10
Channels
- # announcements (1)
- # asami (44)
- # babashka (62)
- # beginners (84)
- # calva (42)
- # cider (5)
- # clj-kondo (32)
- # cljs-dev (8)
- # clojure (61)
- # clojure-australia (3)
- # clojure-berlin (1)
- # clojure-europe (12)
- # clojure-japan (3)
- # clojure-nl (4)
- # clojure-serbia (5)
- # clojure-spec (1)
- # clojure-uk (9)
- # clojurescript (31)
- # community-development (21)
- # conjure (5)
- # cursive (17)
- # datomic (14)
- # emacs (10)
- # etaoin (1)
- # figwheel-main (1)
- # fulcro (9)
- # garden (5)
- # graalvm (16)
- # helix (7)
- # honeysql (13)
- # jackdaw (25)
- # jobs (2)
- # lsp (21)
- # malli (25)
- # missionary (2)
- # mount (3)
- # off-topic (12)
- # practicalli (3)
- # re-frame (43)
- # reagent (45)
- # reitit (36)
- # releases (6)
- # remote-jobs (2)
- # reveal (28)
- # rewrite-clj (7)
- # shadow-cljs (45)
- # slack-help (4)
- # spacemacs (5)
- # sql (23)
- # startup-in-a-month (7)
- # tools-deps (59)
- # vim (26)
Given: 1. a remote process without reveal on the classpath (but with the ability to also provide a prepl) 2. an editor that talks to the process in 1. via nrepl Is there a way to launch a reveal window that could receive tap> output from a tap> command sent from 2 to 1?
Hi! I made a blog post about this setup: https://vlaaad.github.io/reveal-repls-and-networking
But I guess, if you connect reveal to a prepl server in a remote VM 1, and then you connect your editor to a nrepl server in remote VM 1, and invoke tap>
using nrepl connection, it will be forwarded to reveal since tap is a global queue per VM
here is my setup: 1. remote process with prepl server:
clj -Sdeps '{:deps {nrepl/nrepl {:mvn/version "0.8.3"}}}' -J-Dclojure.server.prepl='{:port 7777 :accept
re.server/io-prepl}'
2. reveal connected to remote process:
clj -Sdeps '{:deps {vlaaad/reveal {:mvn/version "1.3.196"}}}' -X vlaaad.reveal/remote-prepl :port 7777
3. using different connection to tap values:
clj -Sdeps '{:deps {vlaaad/remote-repl {:mvn/version "1.1"}}}' -X vlaaad.remote-repl/repl :port 7777
(tap> 1)
{:tag :ret, :val "true", :ns "user", :ms 1, :form "(tap> 1)"}
{:tag :tap, :val "1"}
here is a complete example: 1. nrepl server + prepl server in a single remote process:
$ clj -Sdeps '{:deps {nrepl/nrepl {:mvn/version "0.8.3"}}}' -J-Dclojure.server.prepl='{:port 7777 :accept
re.server/io-prepl}' -M -m nrepl.cmdline
nREPL server started on port 63380 on host 127.0.0.1 -
2. reveal connected to prepl server:
$ clj -Sdeps '{:deps {vlaaad/reveal {:mvn/version "1.3.196"}}}' -X vlaaad.reveal/remote-prepl :port 7777
3. editor connected to nrepl server
4. evaluate (tap> 1)
5. tap is shown in the Reveal windowThank you for that, I'll compare it with what I tried. Probably some typo then on my side.
Finally. I got it working. I had two errors:
1. I originally put to -J-D... arg at the end as opposed to before -M
2. as the target jvm runs inside a docker container, I had to add :address "0.0.0.0"
to the prepl config map
I don't have any links at hand, but I saw some posts about running desktop ui from within docker..