This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-11-15
Channels
- # beginners (97)
- # boot (54)
- # cider (13)
- # cljs-dev (3)
- # cljsrn (9)
- # clojure (64)
- # clojure-berlin (1)
- # clojure-brasil (119)
- # clojure-dev (3)
- # clojure-france (5)
- # clojure-greece (1)
- # clojure-italy (5)
- # clojure-madison (1)
- # clojure-russia (15)
- # clojure-spec (25)
- # clojure-uk (57)
- # clojurebridge (5)
- # clojurescript (45)
- # code-art (1)
- # community-development (17)
- # cursive (24)
- # datomic (83)
- # emacs (11)
- # fulcro (70)
- # hoplon (7)
- # immutant (3)
- # leiningen (19)
- # luminus (5)
- # lumo (25)
- # onyx (123)
- # other-languages (7)
- # pedestal (2)
- # re-frame (12)
- # ring (15)
- # ring-swagger (51)
- # shadow-cljs (89)
- # spacemacs (23)
- # sql (4)
- # unrepl (57)
- # utah-clojurians (1)
- # vim (1)
@cgrand missed your reply the other day about CIDER. Largely, yes, don't need middleware. However there's lots of useful functions in CIDER, e.g. A stacktrace tagger which gives you a data form of a stack, which certain lines marked (e.g it could tag unrepl frames, for hiding/fading)
I have been thinking of stacktraces recently: what about display the most nested cause first and bottom to top?
@cgrand hmm, depends what unrepl provides. My understanding is that cider had a big bag of functions. The other useful thing is the Mr Anderson'd version of tns, for refreshing code. Also things like the spec explorer, the enhanced metadata. Mostly little things, but I think they've got a lot of edge cases covered.
I’d like to first make a detour by the blob. I’ve been ambiguous on to blob or not to blob in the past. Here is my current thinking: blob is the default, no blob should be the exception.
Clients should support BYOB (bring your own blob), it allows:
• quick experimentation/dev/user mods
• no blob by --blob /dev/null
(thanks @pesterhazy)
Clients should prefer declaring and using actions templates over directly emitting code to aux
. For three reasons:
• better byob support
• in the future support CLJS, CLJSJS and CLJ with the same client and several blobs
• it fosters code sharing across clients.
this is not related to above, but I was playing with unrepl and I noticed something that might be weird behavior when printing strings
when using println or prn, things work as expected, you get a :read, a :started-eval, an :out, an :eval and a :prompt. but if you use print or pr, you get :read :started-eval :eval :prompt and then :out
I tried it in unrepl and unravel, same behavior in both.. which ends up putting the printed str at the beginning of the next prompt
@dominicm a fork (hopefully temporary) of cider-nrepl to make some features shared may be an option
Have a look at https://github.com/clojure-emacs/cider-nrepl/blob/master/src/cider/nrepl/middleware/stacktrace.clj for example
that’s at least two places where things would have to be done differently to leverage unrepl
black-list -> elision instead of suppression pprint to string -> nothing, put the value
Yeah. Those definitely are things I'd like to see improve in cider-nrepl. And I'd actually be happy to make the changes (they're quite trivial)
My brain is at "Well, just use it as a library" currently. And I'm ignoring the trivial pprint and blacklisting that nrepl has caused.
Okay, you started talking about unrepl extensions, and I wasn't certain about your intent.
I was interested in having cider.el load the cider-nrepl.jar via the class side loader.
@dominicm what’s the first milestone you want to achieve? And could you remind us of your overall plan?
Not sure of my overall plan. My milestone was to be able to have a client bring a tooling jar of some kind, with various namespaces in. How do I get from that jar to a format that is easy to sideload.
Yeah 😳. Not necessarily full detail. I just didn't understand the gap between jar and base64 encoded class.
Have you seen how unravel does sideloading from a directory of classes? JAR won’t be much different
I have neglected it, but I basically have somewhere the code that fetches dependencies and puts them in a blob
dunno if it can be helpful
well maybe I am not up to date myself with new developments 😄
@richiardiandrea blobs are so yesterday
yeah I was afraid of that 😄