Skip to content

Rewritten, more languages, nREPL, ClojureScript completion, oh my!

Compare
Choose a tag to compare
@Olical Olical released this 04 May 10:38
· 1198 commits to master since this release
248f2eb

So I accidentally invented Aniseed, a way to write Neovim plugins interactively in a Lisp that looks just like Clojure. Then I slipped and accidentally rewrote Conjure using this system which also happens to support more than one language now.

So, the new Conjure, what does it mean:

  • Replaced prepl with nREPL since it has complete ecosystem adoption and brilliant ClojureScript support. You get autocompletion and shadow-cljs works perfectly now!
  • No extra JVM required, just start your program with an nREPL embedded within it, open Neovim, evaluate things immediately. Everything runs within Neovim itself under the embedded LuaJIT.
  • No JVM required to run Conjure, so no bin/compile step to install the plugin!
  • Evaluate more than Clojure, it also supports Fennel with Aniseed. It'll support Racket, Janet and other Lisps in the near future! Eventually it'll allow you to evaluate things that aren't even Lisps!
  • A smarter, smoother, log buffer that works more like a regular terminal you can edit.
  • A heads up display (HUD) that pops up as and when it's required and hides as you continue to work. It's a little floating window that tries to stay out of the way.
  • All of the previous autocompletion tools have been updated to work with the new version, you'll just need to update them 🎉 (unless you use deoplete, that's been updated with Conjure)
  • Eval at mark no longer flickers the screen!
  • Better go to definition with the power of nREPL and CIDER! (even works in CLJS!)
  • Conjure's Clojure support will now benefit from the future developments of nREPL and CIDER.
  • Support for multiple nREPL sessions, so you can hop between your ClojureScript piggiebacked session, your web server and your JVM evaluations.
  • You can interrupt your Clojure evaluations!
  • It works with babashka's nREPL server!

Okay, I can't think of any more right now, but basically it's better in every single way. I hope you'll agree!

Once you've updated you can use :help conjure to learn all about the mappings and configuration available in the new version. :help conjure-client-clojure-nrepl will tell you all about the Clojure specific configuration and mappings.

For those of you that just need prepl support, I'll be providing that with another Clojure client you can opt into at a later date. It won't be as powerful as this new nREPL version, but it'll probably cater to the needs of some of you.

I hope you enjoy, it's been a LOT of work to get to this point. I mean like, years of implementations and experiments and then months of work to get this version production ready. I just hope it was all worth it 😅

Let me know if you have any feedback or issues, I'd love to hear your thoughts.

May the 4th be with you 🧙

(if you want to share the good news, please give my twoot a re-twoot!)