babashka

borkdude 2026-01-31T12:01:08.018509Z

Babashka REPL completions are merged. Test with:

bash <(curl )  --dev-build --dir .

🔥 11
🍑 1
🤩 1
lread 2026-01-31T13:36:12.392459Z

Nice! Cool that you show ns only when navigating to a specific completion. And multi-line editing is sweet too!

borkdude 2026-01-31T13:38:06.589709Z

> Cool that you show ns only when navigating to a specific completion. Can you make screenshot of that? not sure what you mean here

lread 2026-01-31T13:41:49.733199Z

Ya sure! Showing all completions (without ns):

lread 2026-01-31T13:42:06.267729Z

Tabbing to a specific completion shows ns:

lread 2026-01-31T13:42:24.617449Z

lread 2026-01-31T13:43:10.220309Z

I'm assuming that was intentional. Less noise at first, useful noise when you need it?

borkdude 2026-01-31T13:43:24.998859Z

funny, that's not how it works for me, but perhaps it depends on the terminal width?

lread 2026-01-31T13:43:35.552869Z

Or color scheme?

borkdude 2026-01-31T13:43:54.651899Z

it's probably the color scheme. it always shows the ns I think

borkdude 2026-01-31T13:44:28.758459Z

lread 2026-01-31T13:46:11.109879Z

Yeah, I switched my theme and see ns now:

lread 2026-01-31T13:49:03.404019Z

I was using a theme called "Solarized (dark)" in xfce4-terminal. Maybe it had a booboo in its theme that made the ns disappear.

lread 2026-01-31T13:49:48.419379Z

And here I thought you were being clever with a design choice! Always showing ns makes sense.

borkdude 2026-01-31T13:50:21.777729Z

I'm not even sure if I have that level of control with jline's completion stuff

lread 2026-01-31T13:51:58.547729Z

Oh, colors are preset in jline? I'm guessing a bug in my terminal's theme...

borkdude 2026-01-31T14:02:41.039309Z

this is the preset of jline

borkdude 2026-01-31T14:02:45.234699Z

I can change those though

borkdude 2026-01-31T14:06:09.543059Z

One more cool thing that rebel-readline has is showing docs when typing (similar to CIDER). Would that be a welcome addition, or too much?

borkdude 2026-01-31T14:06:40.778489Z

(and it also has something with cljfmt indenting and colored output, but I'm not sure about those yet)

borkdude 2026-01-31T14:13:07.326569Z

cljfmt seems to be the most popular formatting tool, I could just bundle that with bb too, so people don't have to install separate cljfmt binaries :P

borkdude 2026-01-31T14:13:23.726389Z

but it already works from source with bb, so probably no need

borkdude 2026-01-31T14:13:29.662229Z

unless bb itself would use it

lread 2026-01-31T14:13:52.113179Z

I haven't tried rebel-readline in ages, I see it has config for all these doodads: https://github.com/bhauman/rebel-readline?tab=readme-ov-file#configuration

borkdude 2026-01-31T14:14:29.291899Z

ah yes, eldoc is what I meant

borkdude 2026-01-31T14:14:42.476709Z

what I now have is pretty much the equivalent of what lein repl does

borkdude 2026-01-31T14:15:08.706209Z

what lein repl also does is start an nREPL server

borkdude 2026-01-31T14:15:59.634359Z

maybe I'll just keep it as is for now and then see how people will use it

lread 2026-01-31T14:17:51.713449Z

Ya, that seems like a good approach. Oh, cool, rebel-readline has optional vi key bindings: https://github.com/bhauman/rebel-readline?tab=readme-ov-file#default-to-vi-bindings (but yeah, base features first).

borkdude 2026-01-31T14:19:06.714689Z

I think focusing on a blog post / tutorial how people can write TUIs with bb is probably good to accompany the next release

borkdude 2026-01-31T14:19:22.372319Z

(and to discover potential holes in the exposes JLine classes)

borkdude 2026-01-31T14:19:39.139269Z

this lib fully works with bb dev now: https://github.com/TimoKramer/charm.clj

🆒 2
Bob B 2026-01-31T22:42:47.165919Z

lread it is possible to get vi keybindings with the current iteration - you can do <C-x><C-v> from emacs mode and/or (this isn't the prettiest thing, but...) you can make a jlinerc file and tell bb's jline to use it with a system property:

 cat .jlinerc
set editing-mode vi
 ./bb-dev -Dorg.jline.reader.props.input-rc-file-name=.jlinerc
That's sort of just a tiny bit of what can be tweaked, but Jline's docs are (IMO) a bit lacking in terms of configuring stuff outside of the app code.

🤯 3
🚀 1
lread 2026-01-31T23:22:12.754409Z

Thanks, @highpressurecarsalesm! It works!

brandonvin 2026-01-31T22:12:39.181269Z

I recently tried using babashka.cli . One thing I noticed is that positional arguments feel not-very-well supported. Is that part of its philosophy?

borkdude 2026-01-31T22:17:04.140879Z

can you make an example? they are supported