calva

pez 2026-01-30T10:16:15.574619Z

Dear Calva friends. Thanks to https://github.com/jramosg (@jonurnieta ?), we are getting several super sweet improvements to the structural editing. Please help me put it to some testing before release. The changes: • https://github.com/BetterThanTomorrow/calva/issues/2988`:let`https://github.com/BetterThanTomorrow/calva/issues/2988https://github.com/BetterThanTomorrow/calva/issues/2991`cond`https://github.com/BetterThanTomorrow/calva/issues/2991https://github.com/BetterThanTomorrow/calva/issues/2991`cond->`https://github.com/BetterThanTomorrow/calva/issues/2991`cond->>`https://github.com/BetterThanTomorrow/calva/issues/2991https://github.com/BetterThanTomorrow/calva/issues/2993`case`https://github.com/BetterThanTomorrow/calva/issues/2993https://github.com/BetterThanTomorrow/calva/issues/2995`:>>`https://github.com/BetterThanTomorrow/calva/issues/2995`condp`https://github.com/BetterThanTomorrow/calva/issues/2995https://github.com/BetterThanTomorrow/calva/issues/2766 Pick up the VSIX here: https://app.circleci.com/pipelines/github/BetterThanTomorrow/calva/9335/workflows/55824681-d588-4f9a-ba86-a2365ea3d861/jobs/55112/artifacts (and you can check for later dev builds there, should we need to fix things during testing). Rename the file extension to .vsix if it downloads as a .zip. Install it from VS Code extension pane, meatballs menu at the top: Install from VSIX… Thanks in advance! ❤️ calva

❤️ 1
🙌🏿 1
🎉 3
jramosg 2026-01-30T10:23:53.772499Z

installed!

1
1
pez 2026-01-30T10:28:05.571469Z

Awesome. I have also installed, but need a few moments to reload things to start using. Thanks for contributing!!! ❤️ 🙏

🫶🏿 1
pez 2026-01-30T10:29:37.351399Z

@brjann, I think I have heard you wish that the grow selection would cover some more pairing cases?

❤️ 1
pez 2026-01-30T11:11:52.316149Z

For anyone testing. (And for @jonurnieta in case you were not aware 😃 ) Note that the new pairing treatment also affects the Drag Sexp commands. So, e.g. alt+down moves the “pairs” also in cond now. 🎉 If you find issues with these, or just disagree with how it works, you are super welcome to give feedback. Even if we focus on the grow selection this time and not stop the release on non-serious dragging issues.

jramosg 2026-01-30T11:20:01.093399Z

yes, looks good to me!

jramosg 2026-01-30T11:36:16.315439Z

I'm creating some tests for it

🤘 1
pez 2026-01-30T11:37:02.579269Z

I agree. It may be that we want to stop certain drag operations from happening, but that is hardly new with these changes.

DrLjótsson 2026-01-30T12:11:46.619529Z

Hooray! 😃

🎉 1
DrLjótsson 2026-01-30T12:40:30.014519Z

Hi, I think my Calva was just updated (2.0.545) - and now I can't select what cljs app I want to connect my REPL to. Screenshot in 🧵 Has something changed with regards to selecting cljs app?

DrLjótsson 2026-01-30T12:41:03.508569Z

Somewhere here there used to be a list of my clojurescript apps.

DrLjótsson 2026-01-30T12:41:47.515459Z

pez 2026-01-30T13:05:18.568759Z

Hi! Things have changed a bit, yes. Even if this could be a bug. But anyway… I think that with ClojureScript app you may mean shadow-cljs build? The build button only shows up if the repl client is connected to a ClojureScript repl session. (This hasn’t changed.) What session the repl client is connected to is a rather long story, but we have tried to keep it as similar to before as possible for the plainer use cases. • If you have a ClojureScript file open -> the ClojureScript session (if there is any) • If you have a .cljc file open -> whatever is selected as the CLC target (typically the ClojureScript repl in typical shadow-cljs senario) • If you have the repl window open (I don’t know why you would, but you seem to have that) then there is some logic in selecting it by default that I don’t quite recall at the moment, but more importantly you can point it t a session. You do so with a command or by clicking the green indicator there and then the option about selecting the repl window session. The green indicator always show which session is connected (and tries to indicate “why”). Click it to see how it is routed. The menu also lets you select the CLJC target. See: https://calva.io/repl-ui/ for details. Or huddle with me and I can demo it a a bit 😃

pez 2026-01-30T13:07:07.148729Z

So, if you select a ClojureScript session for the REPL Window the build indicator should show up. And, since you seem to have been away for a while, these days also a shadow-cljs runtime indicator, if you have the same app/build running on different devices/tabs etc.

DrLjótsson 2026-01-30T13:09:55.085069Z

Thanks! So the build selector magically re-appeared without me doing anything 😄 Yes, I haven't migrated to the new nREPL window yet - I know its no longer the recommended way to have the "source code" nREPL window.

pez 2026-01-30T13:18:04.424579Z

I do hope it didn’t re-appear without you doing anything. But rather that you selected another file and it connected Calva to a ClojureScript repl. This magic has always been there. I think what may have changed is how the repl window connection is selected. And there may be a bug there, because I don’t quite see a reason why it would connect to a Clojure REPL in you case.

DrLjótsson 2026-01-30T13:19:28.639759Z

I am 100% that I was in a cljs file when the app selection wasn't visible. But maybe I need to move away from the old nREPL window and this won't happen again

pez 2026-01-30T13:31:44.185259Z

What are you using the repl window for?

DrLjótsson 2026-01-30T13:31:53.037239Z

Nothing

DrLjótsson 2026-01-30T13:32:39.359289Z

Except being confused when I accidentally close it and can't remember how to get it back...

pez 2026-01-30T13:32:39.585189Z

Ah, then configure Calva to use either the output window or the terminal for its output. I prefer the terminal because its not in the editor area.

pez 2026-01-30T13:34:10.033799Z

There is a command for opening the repl window. All you need to bother your memory with is that the command palette is great for searching 😃

❤️ 1
pez 2026-01-30T13:35:12.076609Z

And I should change the default output destinations…

DrLjótsson 2026-01-30T13:36:16.202189Z

Trying to find the setting for changing it to the terminal...

pez 2026-01-30T13:45:39.903269Z

It’s called output destinations. The settings editor also has very good search. (As long as you know what to search for, like I do. 😃 )

DrLjótsson 2026-01-30T13:48:04.075909Z

Which output destination do you use?

DrLjótsson 2026-01-30T13:49:21.518389Z

Need to pick up kids from school - but I'll revisit this on Monday!

pez 2026-01-30T13:53:51.388869Z

I use terminal for all.

Johnny Hane 2026-01-30T14:10:14.842599Z

Just want to say that all the little utilities in calva are so SO awesome. I have keyboard shortcuts for Copy last evaluation result to clipboard and replace current selection with pretty printed form and I use them constantly. It's so effortless to hit a database or an API, paste the result straight into my script, and then write code around the data. I'm currently exploring an awful old database that only has schemaless JSONB columns everywhere. Without babashka + calva I'd be copy pasting IDs into zillions of different queries in datagrip and requests in postman. I would be absolutely tearing my hair out. But with babashka + calva I'm just FLYING through this work. And I might even be having fun??

2
2
❤️ 2
🎉 2
pez 2026-01-30T14:29:01.598719Z

Thanks for sharing! You could help spreading some awareness by posting this in #gratitude. I will very seldom ask for gratitude 😃 , but your feedback is tangible, that I think it would be excellent for awareness.

Johnny Hane 2026-01-30T14:31:37.302009Z

ah thanks! I thought there was a channel like that. I was looking for #appreciation and couldn't find it lol

pez 2026-01-30T14:38:44.679659Z

Great feedback. I added the channel you looked for and pointed to gratitude form there. 😃

🙏 1