Awesome
Neovim Ruby
Ruby support for Neovim.
Installation
Add this line to your application's Gemfile:
gem "neovim"
And then execute:
bundle
Or install it yourself as:
gem install neovim
Usage
Neovim supports the --listen
option for specifying an address to serve its RPC API. To connect to Neovim over a Unix socket, start it up like this:
$ nvim --listen /tmp/nvim.sock
You can then connect to that socket path to get a Neovim::Client
:
require "neovim"
client = Neovim.attach_unix("/tmp/nvim.sock")
Refer to the Neovim
docs for other ways to connect to nvim
, and the Neovim::Client
docs for a summary of the client interface.
Remote Modules
Remote modules allow users to define custom handlers in Ruby. To implement a remote module:
- Define your handlers in a plain Ruby script that imports
neovim
- Spawn the script from lua using
jobstart
- Define commands in lua using
nvim_create_user_command
that route to the job's channel ID
For usage examples, see:
Note: Remote modules are a replacement for the deprecated "remote plugin" architecture. See https://github.com/neovim/neovim/issues/27949 for details.
Vim Plugin Support
The Neovim gem also acts as a compatibility layer for Ruby plugins written for vim
. The :ruby
, :rubyfile
, and :rubydo
commands are intended to match their original behavior, and their documentation can be found here.
Links
- Source: https://github.com/neovim/neovim-ruby
- Bugs: https://github.com/neovim/neovim-ruby/issues
- CI: https://github.com/neovim/neovim-ruby/actions
- Documentation:
Contributing
- Fork it (https://github.com/neovim/neovim-ruby/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request