[Olical/conjure] Issue opened by victorb
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 @borkdude)
You can try to reproduce this with a minimal nREPL client perhaps
like lein repl :connect
, so it's easier for me to take a look, if this is on the bb side
oh yes, babashka returns the same kind of exception as in clj land
the nice stack trace is only done when invoking a script from the command line
@borkdude thanks! Tried it out and the same in lein repl https://gist.github.com/victorb/55ddf12b5faa90db37bcfb1a6d2adf66 indeed
Installed neovim 5 nightly, and the highlight feature is pretty neat
although, a bit slow for my liking, so will decrease the timeout from 500, in half.
yes, 250ms is better
Yeah I put it at 100 which felt good for me.
If everyone is lowering that setting maybe we should change the default 🙂
Speed junkies 🙂
500 is imho a little too long
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'd like to play around with marking a sexp as edited but not evaluated,
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
Also I have so many other things to work on that it's far down the list 😅
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
But that's all internal, maybe I can expose some hooks somehow...
I'm too lazy to do the highlight current form that cursor is in
I recall asking about this yonks ago
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
deffo a good feature for an aniseed based plugin 🙂
yup, that's right 🙂
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.
:thumbsup: :partywombat:
What would Aniseed loading things faster do?
Does it affect performance when editing or something else?
Mostly for people using Aniseed for all of their configuration, so affects start up time of nvim
I have multiple userbases with different concerns 😅
Ah cool - haven't gotten that deep yet 😛
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
And then conjure benefits from that
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.
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.
This could also be super handy for developing bb scripts!
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 😛
In the best of worlds it could be a good newcomer thing as well
That'd be fantastic
Would happily link from the wiki https://github.com/Olical/conjure/wiki#guides-posts-recipes-and-tricks and twoot it
I've done some, but 3rd party are far better imo
It is hard to do for your own projects
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.)
Works for me on my installation
using neovim 5 nightly and latest on dev conjure branch
on arch linux
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 😅)
@dharrigan wins the "bleeding edge software power user" prize 😂
oh, I was inspired by others here 🙂
@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)
for me the repl == editor 🙂
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. 🙂
That's not 100ms
it's 250ms
Oh, no kidding!
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 😛
🙂
So, I opened up a log
then underneath this
; Sponsored by @lucaslollobrigida ❤
I inserted (+ 1 1 1)
I'm still able to eval on the first column
in the log
Hmmm.. Ok then it could just be me
thanks for checking
I'll do a gif
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?
Works for me on both develop and master, dunno what it could be.
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])
; <https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Thread.html#sleep(long)>
Is that what you mean? Or more?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!