This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-05-13
Channels
- # announcements (8)
- # architecture (11)
- # babashka (159)
- # beginners (112)
- # biff (3)
- # chlorine-clover (4)
- # cider (10)
- # clj-kondo (51)
- # cljs-dev (43)
- # cljsrn (10)
- # clojure (45)
- # clojure-bay-area (5)
- # clojure-europe (11)
- # clojure-france (4)
- # clojure-italy (4)
- # clojure-nl (2)
- # clojure-norway (1)
- # clojure-sweden (1)
- # clojure-uk (8)
- # clojurescript (75)
- # code-reviews (1)
- # community-development (2)
- # conjure (88)
- # cryogen (5)
- # data-science (1)
- # datomic (3)
- # dirac (2)
- # fulcro (4)
- # helix (1)
- # jackdaw (5)
- # kaocha (5)
- # leiningen (2)
- # lsp (49)
- # malli (9)
- # mid-cities-meetup (1)
- # off-topic (8)
- # pathom (3)
- # polylith (19)
- # re-frame (6)
- # releases (3)
- # rewrite-clj (1)
- # shadow-cljs (98)
- # spacemacs (2)
- # tools-deps (6)
- # vim (4)
- # xtdb (6)
Just realized the issue could be on Babashkas side as well if the point is to return exceptions the same way as nrepl/nrepl does it in clj-land, unsure and haven't looked into it further (cc @U04V15CAJ)
like lein repl :connect
, so it's easier for me to take a look, if this is on the bb side
@U04V15CAJ thanks! Tried it out and the same in lein repl https://gist.github.com/victorb/55ddf12b5faa90db37bcfb1a6d2adf66 indeed
although, a bit slow for my liking, so will decrease the timeout from 500, in half.
I wonder is there some state I could hook into with regards to which forms has been evaluated?
It's like Data from Star Trek, if I may paraphrase, "500 milliseconds, sir. For a developer, that is nearly an eternity."
I have quite a few WTF moments when i've changed some code but have not sent it to repl 🙂
"what's changed but not evaluated" support was something I was considering as a core feature, it'll probably just lean on newer nvim features for cool gutter stuff, so I've been putting it off
There is an event for evals, but I don't think you get the eval table like I do in Conjure. There's actually a table that gets passed around that contains the form content + it's coordinates (file/line/col) and what kinda eval it was
Yeah that one is a little less to do with evals and more a UI plugin I think :thinking_face: and maybe also relies on 0.5 features
I think the core works good enough - with a few plugins I've not felt limited in using it for work
My current priority is to get Aniseed loading everything faster + magic-kit ready for new users (and some of my team members at work!) to maybe rely on.
Mostly for people using Aniseed for all of their configuration, so affects start up time of nvim
Improving Aniseed's efficiency may help with Conjure's startup time too, although that's already damn snappy considering the size. Conjure lazy loads everything on demand anyway.
Like I added the concept of "autoload" to the lua modules to replace require that requires on use, just like the viml concept
Just spending a little while focussing on accessibility/on ramp, perf and bugs in Conjure+Aniseed. The next feature I'm considering is automatic babashka jack in for Clojure files.
Color me intrigued!
Is the idea that if there's an .nrepl-port
file, Conjure auto-connects to the nREPL server, otherwise it falls back to starting a Babashka environment?
Or is the idea that Babashka has its own server, and the Babashka jack-in only works if you have a Babashka nREPL running (is that a thing? I still haven't used Babashka yet 😅)
I'd try to do the normal flow first and if there isn't a .nrepl-port etc Conjure will log out that it's starting a bb repl (if you have it installed) and would automatically connect to it. As soon as you connect to something else it'll probably shut it down? Maybe if you disconnect from a Clojure REPL it'll immediately fill in the gap with a bb one :thinking_face: so it basically always tries to ensure you have something ready to handle evals?
That's a cool idea. It would be pretty neat to just edit a scratch .clj file in /tmp or something, and be able to do quick experiments with the Clojure standard library without having to start a REPL first.
I'm considering writing up a workflow article and/or screencast, would be interesting to have feedback on it - maybe I'm missing something cool that I should be using 😛

Would happily link from the wiki https://github.com/Olical/conjure/wiki#guides-posts-recipes-and-tricks and twoot it
I found a little bug when evaluating forms in the REPL:
; Sponsored by @campbellr ❤
(+ 1 1 1)
If you put the cursor on the very first column and run <localleader>ee
, it won't be evaluated.
I'm guessing the cause is in the "at" sign and/or the heart icon.; bla bla @something
; some innocent comment line
(+ 1 1 1) ;; evaluating on the opening parenthesis is ignored
Also happens here. So it's probably caused by the at
sign in the comment.Can someone reproduce and confirm this is not just an issue on my machine?
(This is in Clojure, by the way.)
@dharrigan wins the "bleeding edge software power user" prize 😂
@dharrigan Looks like you're editing in a file, the issue is when you edit in the repl window itself (i.e. after doing <localleader>lv
to open it in a vertical split)
I'm glad you posted those gifs -- it gives me an opportunity to see what an eval highlight period of 100 ms looks like. Too fast for my tastes. 🙂
I'm just using the default, which I guess is 500ms from reading above. Seems fine to me, FWIW. I wouldn't complain if @olical felt like changing the default, though. I'm happy to change the value in my config.
> for me the repl == editor Same here, 99% of the time. In the other 1%, I find a bug 😛
Hmmm.. Ok then it could just be me
Yeah that's exactly what doesn't work for me. I'm on Neovim 0.5.X as well, but on the Conjure master
branch.
Hmm working for me too... feels like an off by one error so I wonder what could cause that within one specific configuration. I'm guessing there's some option you have on that others don't that's causing my paren match finding code to freak out :thinking_face: you could always try using the experimental tree-sitter based selection code (option is in :h conjure somewhere) if you continue to have issues?
I've got that treesetter flag enabled (already had). This is not an issue for me at all, btw. I just thought I'd share it when I spotted it, in case it's one of those bugs that seem innocent but actually have some bigger impact elsewhere.
Oh! Then it's probably a tree sitter bug! As in related to my use of it or a bug in the Clojure tree sitter module. Narrows it down?
In fireplace, the doc binding (K) would fallthru to javadoc for java classes. Is that already a feature in Conjure? I couldn't find it.
There's this when I K
on Thread/sleep
; --------------------------------------------------------------------------------
; doc (word): Thread/sleep
; No results, checking CIDER's info op
; java.lang.Thread/sleep
; ([long] [long int])
;
Is that what you mean? Or more?Ahh, I see. if I do it on a var class I've imported and used without qualification it doesn't work:
; --------------------------------------------------------------------------------
; doc (word): DateTimeFormatter
; (err) Syntax error compiling var at (time.clj:5:30).
; (err) Expecting var, but DateTimeFormatter is mapped to class java.time.format.DateTimeFormatter
; --------------------------------------------------------------------------------
; doc (word): java.time.format/DateTimeFormatter
; No results, checking CIDER's info op
; java.time.format.DateTimeFormatter
;
Hmm interesting! Would you be able to open an issue for me so it's not lost to the information shredder that is Slack Free Plan? Thank you!
Ahh, I see. if I do it on a var class I've imported and used without qualification it doesn't work:
; --------------------------------------------------------------------------------
; doc (word): DateTimeFormatter
; (err) Syntax error compiling var at (time.clj:5:30).
; (err) Expecting var, but DateTimeFormatter is mapped to class java.time.format.DateTimeFormatter
; --------------------------------------------------------------------------------
; doc (word): java.time.format/DateTimeFormatter
; No results, checking CIDER's info op
; java.time.format.DateTimeFormatter
;