Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
cajus-nvim
Discontinued Basic config to transform your NVIM in a powerful Clojure IDE using fennel, clojure-lsp and conjure.
-
conjure
Interactive evaluation for Neovim (Clojure, Fennel, Janet, Racket, Hy, MIT Scheme, Guile, Python and more!)
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
I haven't used vim in years but there's a package by Tim Pope: https://github.com/tpope/vim-fireplace
This is a key piece of the REPL workflow: you rarely type into the REPL, you use commands in your editor to select code and run it in a REPL. The idea is that you eval stuff in the same place you type, and that gets run in the same environment over and over again without having to restart it or redefine the data you're using to iterate your functions.
I love Clojure, but the Java source is oddly formatted which I never understood: https://github.com/clojure/clojure/blob/527b330045ef35b47a96...
https://github.com/rafaeldelboni/nvim-fennel-lsp-conjure-as-...
It's for neovim, but is using very modern tools and even uses a clojure like lisp to configure the setup.
https://github.com/rafaeldelboni/nvim-fennel-lsp-conjure-as-...
It's for neovim, but is using very modern tools and even uses a clojure like lisp to configure the setup.
It's absolutely NOT production ready but I once wrote a one-liner Vim macro to send clojure forms to the REPL via ncat:
https://github.com/djtango/spartan-repl
I tidied it up a little for my personal .vimrc but it works surprisingly well for how little effort it took to configure. One known issue is if the thread of execution spawns a sub thread then exits (because the ncat socket is closed)
I've been trying to learn Clojure (well, actually Babashka (https://babashka.org/)) from a book, but the whole REPL thing and its workflow benefits didn't really convey well from such a media. It wasn't until I saw a real workflow example (https://www.youtube.com/watch?v=jm0RXmyjRJ8), that I grokked what REPL development brings to the game. It's quite possible I haven't unlocked its full potential, but I do see value in this way of working.
Im using Calva + vscode and the onboarding seemed pretty simple. Installed Babashka using linuxbrew, then installed Calva in VScode and ran its tutorial. Calva has a pretty good guide on the structural code editing: https://calva.io/paredit/
Now I "just" need to figure out how to parse xml. Zippers melt my brain
I also tried to grok emacs when I started learning clojure. Returning to (neo)vim was one of the best days in my entire career.
I now use clojure + neovim thanks to: https://github.com/Olical/conjure
Dead simple to set up and to use!
Related posts
- Olical/conjure: Interactive evaluation for Neovim (Clojure, Fennel, Janet, Racket, Hy, MIT Scheme, Guile)
- What's the value proposition of meta circular interpreters?
- Critique of Lazy Sequences in Clojure
- Does anyone ever use Neovim to debug PyTorch?
- clojure-lsp in neovim is not navigating to function definitions/namespaces