This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-12-17
Channels
- # adventofcode (76)
- # announcements (6)
- # beginners (103)
- # boot (28)
- # calva (128)
- # cider (48)
- # cljs-dev (40)
- # clojure (268)
- # clojure-austin (2)
- # clojure-dev (2)
- # clojure-europe (47)
- # clojure-italy (10)
- # clojure-nl (17)
- # clojure-spec (2)
- # clojure-uk (15)
- # clojurescript (45)
- # code-reviews (14)
- # cursive (5)
- # data-science (2)
- # datascript (1)
- # datomic (52)
- # duct (4)
- # emacs (2)
- # figwheel (1)
- # figwheel-main (4)
- # fulcro (13)
- # hyperfiddle (51)
- # leiningen (19)
- # nrepl (40)
- # off-topic (45)
- # pathom (3)
- # pedestal (28)
- # portkey (7)
- # re-frame (25)
- # reagent (76)
- # reitit (7)
- # shadow-cljs (92)
- # slack-help (3)
- # specter (5)
- # timbre (2)
- # tools-deps (39)
- # unrepl (1)
- # vim (13)
Btw, the built-in interactive REPL in nREPL is not really meant for any serious use, as it’s mostly a proof-of-concept (a reference for people looking to implement something on top of nREPL). We can’t really depend on REPLy or rebel, but we can always check if they are present and use them if they are. I know that’s different from the discussion, so far, but I’m mentioning it as well, as another way to get a more capable REPL client.
I want both for edge. Nrepl client in the terminal is not especially appealing for local development. Rebel doesn't have an nrepl mode.
@ackerleytng I use stump, and I handle any Ctrl-T mappings in programs by doing ctrl-t t
to pass it in directly.
hi fellow stump user!! emacs' cider's test mappings all use C-t right?
I believe so, though I don't use them because our tests use test-fn-name
instead of fn-name-test
, and I haven't had time to fix it lol.
It might be possible to easily remap those bindings, though my emacs-fu isn't quite strong enough to know how.
i see, yup i don't think it's so straightforward haha
For tmux I rebound the ctrl key to ctrl-[
because I use ctrl-a
to go to the beginning of the line, and that's been really helpful.
i'm trying out ctrl-i, but i'm finding it a little difficult to adapt to, also i guess because C-i needs both hands
that's delete char in emacs! hahah
If I had to use ctrl-t a lot, or if I found that cumbersome, I'd probably bind a different key, such as ctrl-[
as my main modifier.
It hasn't bothered me enough yet to go about rebinding the main modifier, but that's what I did for tmux and ctrl-a
(as I use readline constantly).
Weird thing: I have run cider-jack-in-clj
on a project. Then, I close the connection and run cider-jack-in-clj
on a second project, and this project is of type clojure-cli (deps.edn) I get the following:
@U05542278 would be helpful to get a stacktrace (set to debug-on-error
to t)
saw some stuff about connect-sibling
so I reckon that's why I get problem with the second connection
OK, this bothered me for a long while: if you evaluate something like this: ({:a} 1)
, CIDER will pop up a stacktrace saying Unmatched delimiter: )
.
[dan@fedora clojure]$ clj
Clojure 1.9.0
user=> ({:a} 1)
RuntimeException Map literal must contain an even number of forms clojure.lang.Util.runtimeException (Util.java:221)
1
RuntimeException Unmatched delimiter: ) clojure.lang.Util.runtimeException (Util.java:221)
user=>
seems par for the course[cont] I understand it is the default REPL behavior to evaluate everything until the input is exhausted, but wouldn't it make more sense to short-circuit that the first time an error happens?
Makes it a real pain in the butt to look through a large function to find that one pesky odd-element map.
do you mean this to be in #clojure-dev or here? seems like you want to change clojure?
@dpsutton When that happens in regular Clojure REPL, at least you get all the errors at once. Also, it shows line/column then.
In CIDER though, only the last exception is displayed which doesn't make any sense.
AFAIU, it is probably expected for default Clojure REPL/socket REPL as it's sorta stream-oriented.
But since nREPL has a strictly defined concept of a "message", it should do no harm to discard the eval operation of the whole message at the first error.
If I recall correctly, multiple stacks are sent if available. I'm not sure what's happening to from this.
That's true, they are all sent, and I think they are actually rendered one after the other. But that happens in a rapid succession, so you only get to see the last one.
But I'd argue that the whole "read it till the end" approach is counter-intuitive and potentially dangerous.
As demonstrated in the default Clojure REPL:
user=> (defn send-rockets! [] (println "BOOM!"))
#'user/send-rockets!
user=> (comment {:a} (send-rockets!))
Syntax error reading source at (REPL:1:14).
Map literal must contain an even number of forms
BOOM!
nil
Syntax error reading source at (REPL:1:31).
Unmatched delimiter: )