A Neovim client library for creating plugins written in Clojure.
I've been building from master. Currently,
You've probably already got this if you're using Clojure. Version 1.6 or later is required.
Launch Neovim, explicitly setting the
$> lein repl neovim-client.nvim=> (connect! "localhost" 7777) ... neovim-client.nvim=> (run-command! ":echo 'Hello Neovim!'") ...
Several sample plugins -- consumers of neovim-client -- are included.
While these plugins can be installed locally, the easiest thing to do is to
run them from the repl, as described above. Simply use
lein repl from the
plugin project's root directory.
This plugin stays running, and maintains state. Additionally, it shows how plugins are actually servers, which Neovim can make requests to via rpcrequest().
Socket Repl Plugin
A simple alternative to vim-fireplace. Send code in vim buffers to a built-in Clojure socket repl.
Tighter Integration with Neovim
Neovim's strategy for remote plugins says that it's ok to create a remote plugins as "arbitrary programs that communicate directly with the high-level Nvim API and are called via [msgpack-rpc]". That's exactly what the included sample-plugin does (utilizing neovim-client).
However, it goes on to outline a better approach, utilizing a "plugin host". While neovim-client could potentially fill that role, considerably more work is needed.
Individual plugins can be distributed as jars using AOT compilation. Additionally, porting this client library to Clojurescript would facilitate a fast startup time, via Node.
Distributed under the same license as Neovim.