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_commandthat 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