Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/clojure-vim/acid.nvim

Asynchronous Clojure Interactive Development
https://github.com/clojure-vim/acid.nvim

async clojure-development neovim neovim-plugin nvim

Last synced: 5 days ago
JSON representation

Asynchronous Clojure Interactive Development

Awesome Lists containing this project

README

        

![acid.nvim](https://pictshare.net/wvkzwo.png)

Asynchronous Clojure Interactive Development

## What is it for?

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

## Installing

First, install the python dependencies:

```bash
pip3 install --user pynvim
```

Then, add and install acid:

```vim
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](https://github.com/clojure-vim/acid.nvim/tree/legacy). 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](API.md).
Vim documents are updated on a best effort basis.

## Key features

### Eval with virtualtext support

[![asciicast](https://asciinema.org/a/236693.svg)](https://asciinema.org/a/236693)