hara.runtime.neovim.impl

+init+

invoke-ptr-neovim

added in 4.1

(invoke-ptr-neovim rt ptr args)

Invokes a pointer in the Neovim runtime.

lua-eval-wrap

added in 4.1

(lua-eval-wrap code)

Wraps Lua code so that the return value is JSON-serialized by Neovim.

neovim

added in 4.1

(neovim)(neovim m)

Creates and starts a Neovim runtime.

neovim-exec

added in 4.1

(neovim-exec)

Resolves the neovim executable.

neovim-shared:create

added in 4.1

(neovim-shared:create m)

Creates a shared Neovim runtime client.

A flat :id is promoted to :rt/id so that (script :lua {:runtime :neovim :id :shared}) shares the same process across namespaces.

neovim:create

added in 4.1

(neovim:create {:keys [id exec], :as m})

Creates a Neovim runtime.

next-msgid

added in 4.1

(next-msgid rt)

Returns the next request id and increments the counter.

pack-request

added in 4.1

(pack-request msgid method params)

Packs a MessagePack-RPC request into bytes.

raw-eval-neovim

added in 4.1

(raw-eval-neovim rt code)

Evaluates Lua code inside Neovim and returns the JSON-decoded result.

rt-neovim-string

added in 4.1

(rt-neovim-string {:keys [id]})

String representation of the neovim runtime.

send-request

added in 4.1

(send-request {:keys [output unpacker], :as rt} method params)

Sends a msgpack-rpc request and waits for the matching response.

start-neovim

added in 4.1

(start-neovim {:keys [id exec port], :as rt})

Starts a headless nvim –listen server and connects a client socket.

stop-neovim

added in 4.1

(stop-neovim {:keys [process socket], :as rt})

Stops the nvim process and socket.

value->clj

added in 4.1

(value->clj v)

Converts an org.msgpack.type.Value into Clojure data.