Skip to content

Latest commit

 

History

History
64 lines (40 loc) · 1.97 KB

README.md

File metadata and controls

64 lines (40 loc) · 1.97 KB

acid.nvim

Asynchronous Clojure Interactive Development

What is it for?

Acid.nvim is a plugin for clojure development on neovim.

Installing

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.

Version 2.x

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.

Differences from 1.x

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.

Documentation

Most of the lua code is documented here. Vim documents are updated on a best effort basis.

Key features

Eval with virtualtext support

asciicast