go-client

module
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 18, 2022 License: Apache-2.0

README

go-client

pkg.go.dev Github Actions codecov.io

Neovim/go-client is a Neovim client and plugin host for Go.

This example plugin adds the Hello command to Nvim.

package main

import (
    "strings"
    "github.com/neovim/go-client/nvim/plugin"
)

func hello(args []string) (string, error) {
    return "Hello " + strings.Join(args, " "), nil
}

func main() {
    plugin.Main(func(p *plugin.Plugin) error {
        p.HandleFunction(&plugin.FunctionOptions{Name: "Hello"}, hello)
            return nil
    })
}

Build the program with the go tool to an executable named hello. Ensure that the executable is on your path.

// Use the go build to generate an executable
// Enusre this hello executable on your path
// you can move hello to your $GOPATH/bin
// or set the current dir into env variable `path`
go build -o hello

Add the following plugin to Nvim:

if exists('g:loaded_hello')
    finish
endif
let g:loaded_hello = 1

function! s:Requirehello(host) abort
    " 'hello' is the binary created by compiling the program above.
    return jobstart(['hello'], {'rpc': v:true})
endfunction

call remote#host#Register('hello', 'x', function('s:Requirehello'))
" The following lines are generated by running the program
" command line flag --manifest hello
call remote#host#RegisterPlugin('hello', '0', [
    \ {'type': 'function', 'name': 'Hello', 'sync': 1, 'opts': {}},
    \ ])

" vim:ts=4:sw=4:et

Start Nvim and run the following command:

:echo Hello('world')

Directories

Path Synopsis
Package msgpack implements MessagePack encoding and decoding.
Package msgpack implements MessagePack encoding and decoding.
rpc
Package rpc implements MessagePack RPC.
Package rpc implements MessagePack RPC.
Package nvim implements a Nvim client.
Package nvim implements a Nvim client.
plugin
Package plugin is a Nvim remote plugin host.
Package plugin is a Nvim remote plugin host.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL