Asynchronous Clojure Interactive Development
Acid.nvim is a plugin for clojure development on neovim.
First, install the python dependencies:
pip3 install --user pynvim
Then, add and install acid:
Plug 'clojure-vim/acid.nvim', { 'do': ':UpdateRemotePlugins' }
Most of acid functionality is available through the lua interface. As lua doesn't provide the required asynchronous capabilities for handling nREPL connectivity, a python layer exists to provide them.
Nonetheless, one should never require to interact with python directly.
The new version 2.x uses a both lua (to implement high-level features, such as code navigation, evaluating the current form or requiring the current buffer) and python (for the low-level features, such as fs navigation, sending messages to the nrepl and dealing with concurrency/async).
If you are looking for the 1.x version, you can find it on this branch. It won't be further updated, but you can still use if if you need something that this version is missing.
Aside from the python/lua difference, there's also a bunch of minor differences:
- The new version doesn't try to deal with user prompt (other than
AcidInsertEval
). - The new version provides most functions as an API so new clients/extended features can be built on top of acid.
- Newer neovim features were incorporated on the new version (such as virtualtext and floating windows).
- Acid now supports boot and tools.deps.
- Acid can now spawn it's own nREPL client through tools.deps.
- Acid can now take a
[ip, port]
tuple to connect to.
Most of the lua code is documented here. Vim documents are updated on a best effort basis.