neovim 0.9.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d86525bb60d51c356a2c75f368d248991a207c7875348a88181a3f7156b6051a
4
- data.tar.gz: cb88fe16e651b54a671ae95f1ea71b692fa5f9c9348f16ce0f38218c98b7b90a
3
+ metadata.gz: 5320dac4af30229401acf28acf82589d27523b419a65caaf6a9b32982be13559
4
+ data.tar.gz: 1de09c53e257cce5c3b82902cd998a8b74601e452e25641e7e5f59fceed9bcaf
5
5
  SHA512:
6
- metadata.gz: f24def6fc7afdab94cb605e5f9fb721d3b621841ebda9016ba26ab4acabf10dba0ad3b79c278c009fdf153654181a1c18b69385445e19627b91494db048d546c
7
- data.tar.gz: f64be9703c9c312fb5571108838b199f4d5349ced2dcac12a32936db8a9f847222643ee05cd37b67a7671c8e92124489703df54ff5ef134d8875e8f546f46b9c
6
+ metadata.gz: 5d4950d5edfd43619d9e2e3c4efccaee9ab9219cad3db41fd9d003262870ad2a98f77f3f76dba60c9fb17272fb0b0ad2982acdb1d9b8a31248e2c9ed494e27ec
7
+ data.tar.gz: 8cc1963557bd46b91e4050363296b4d5b87bd7f1fcf736ac5bb1b6a324d4ec1c84baf2cc6069290c73108ec948af37a2fb57e78b3ec8c5c7622e13f1b6e31e65
@@ -12,7 +12,7 @@ jobs:
12
12
  fail-fast: false
13
13
  matrix:
14
14
  os: [ubuntu-latest, macos-latest]
15
- ruby: [2.7, 3.0, 3.1, 3.2, head]
15
+ ruby: [ruby, head]
16
16
  runs-on: ${{ matrix.os }}
17
17
  if: "!contains(github.event.head_commit.message, '[skip ci]')"
18
18
  steps:
@@ -37,8 +37,6 @@ jobs:
37
37
  windows:
38
38
  strategy:
39
39
  fail-fast: false
40
- matrix:
41
- ruby: [2.7, 3.0, 3.1, 3.2]
42
40
  runs-on: windows-latest
43
41
  if: "!contains(github.event.head_commit.message, '[skip ci]')"
44
42
  steps:
@@ -51,7 +49,7 @@ jobs:
51
49
  repository: neovim/neovim-ruby
52
50
  - uses: ruby/setup-ruby@v1
53
51
  with:
54
- ruby-version: ${{ matrix.ruby }}
52
+ ruby-version: ruby
55
53
  bundler-cache: true
56
54
  - name: Install Neovim
57
55
  uses: crazy-max/ghaction-chocolatey@v1
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ # 0.10.0
2
+
3
+ - Add `Neovim.start_remote` helper for remote module support
4
+ (https://github.com/neovim/neovim-ruby/pull/107)
5
+
1
6
  # 0.9.1
2
7
 
3
8
  - Fix bug where `Buffer#[]` with `0` returned the last line of the buffer
data/Flavorfile.lock CHANGED
@@ -1 +1 @@
1
- thinca/vim-themis (737e5444713ba53a9dcfbe3b962239bd0bd9162e at master)
1
+ thinca/vim-themis (c1f4d465ce7dd23735513551b5c4c918d9c1bab1 at master)
data/README.md CHANGED
@@ -42,37 +42,21 @@ client = Neovim.attach_unix("/tmp/nvim.sock")
42
42
 
43
43
  Refer to the [`Neovim` docs](https://www.rubydoc.info/github/neovim/neovim-ruby/main/Neovim) for other ways to connect to `nvim`, and the [`Neovim::Client` docs](https://www.rubydoc.info/github/neovim/neovim-ruby/main/Neovim/Client) for a summary of the client interface.
44
44
 
45
- ### Plugins
45
+ ### Remote Modules
46
46
 
47
- Plugins are Ruby files loaded from the `$VIMRUNTIME/rplugin/ruby/` directory. Here's an example plugin:
47
+ Remote modules allow users to define custom handlers in Ruby. To implement a remote module:
48
48
 
49
- ```ruby
50
- # ~/.config/nvim/rplugin/ruby/example_plugin.rb
51
-
52
- Neovim.plugin do |plug|
53
- # Define a command called "SetLine" which sets the contents of the current
54
- # line. This command is executed asynchronously, so the return value is
55
- # ignored.
56
- plug.command(:SetLine, nargs: 1) do |nvim, str|
57
- nvim.current.line = str
58
- end
59
-
60
- # Define a function called "Sum" which adds two numbers. This function is
61
- # executed synchronously, so the result of the block will be returned to nvim.
62
- plug.function(:Sum, nargs: 2, sync: true) do |nvim, x, y|
63
- x + y
64
- end
65
-
66
- # Define an autocmd for the BufEnter event on Ruby files.
67
- plug.autocmd(:BufEnter, pattern: "*.rb") do |nvim|
68
- nvim.command("echom 'Ruby file, eh?'")
69
- end
70
- end
71
- ```
49
+ - Define your handlers in a plain Ruby script that imports `neovim`
50
+ - Spawn the script from lua using `jobstart`
51
+ - Define commands in lua using `nvim_create_user_command` that route to the job's channel ID
52
+
53
+ For usage examples, see:
72
54
 
73
- When you add or update a plugin, you will need to call `:UpdateRemotePlugins` to update the remote plugin manifest. See `:help remote-plugin-manifest` for more information.
55
+ - [`example_remote_module.rb`](spec/acceptance/runtime/example_remote_module.rb)
56
+ - [`example_remote_module.lua`](spec/acceptance/runtime/plugin/example_remote_module.lua)
57
+ - [`remote_module_spec.vim`](spec/acceptance/remote_module_spec.vim)
74
58
 
75
- Refer to the [`Neovim::Plugin::DSL` docs](https://www.rubydoc.info/github/neovim/neovim-ruby/main/Neovim/Plugin/DSL) for a more complete overview of the `Neovim.plugin` DSL.
59
+ *Note*: Remote modules are a replacement for the deprecated "remote plugin" architecture. See https://github.com/neovim/neovim/issues/27949 for details.
76
60
 
77
61
  ### Vim Plugin Support
78
62
 
data/lib/neovim/buffer.rb CHANGED
@@ -4,7 +4,7 @@ require "neovim/line_range"
4
4
  module Neovim
5
5
  # Class representing an +nvim+ buffer.
6
6
  #
7
- # The methods documented here were generated using NVIM v0.9.1
7
+ # The methods documented here were generated using NVIM v0.10.0
8
8
  class Buffer < RemoteObject
9
9
  attr_reader :lines
10
10
 
@@ -305,6 +305,17 @@ module Neovim
305
305
  @param [Hash] opts
306
306
  @return [Integer]
307
307
 
308
+ @method get_option(name)
309
+ See +:h nvim_buf_get_option()+
310
+ @param [String] name
311
+ @return [Object]
312
+
313
+ @method set_option(name, value)
314
+ See +:h nvim_buf_set_option()+
315
+ @param [String] name
316
+ @param [Object] value
317
+ @return [void]
318
+
308
319
  @method get_extmark_by_id(ns_id, id, opts)
309
320
  See +:h nvim_buf_get_extmark_by_id()+
310
321
  @param [Integer] ns_id
@@ -350,17 +361,6 @@ module Neovim
350
361
  @param [Integer] line_end
351
362
  @return [void]
352
363
 
353
- @method get_option(name)
354
- See +:h nvim_buf_get_option()+
355
- @param [String] name
356
- @return [Object]
357
-
358
- @method set_option(name, value)
359
- See +:h nvim_buf_set_option()+
360
- @param [String] name
361
- @param [Object] value
362
- @return [void]
363
-
364
364
  =end
365
365
  end
366
366
  end
data/lib/neovim/client.rb CHANGED
@@ -9,7 +9,7 @@ module Neovim
9
9
  # +RemoteObject+ subclasses (i.e. +Buffer+, +Window+, or +Tabpage+),
10
10
  # which similarly have dynamically generated interfaces.
11
11
  #
12
- # The methods documented here were generated using NVIM v0.9.1
12
+ # The methods documented here were generated using NVIM v0.10.0
13
13
  #
14
14
  # @see Buffer
15
15
  # @see Window
@@ -223,6 +223,16 @@ module Neovim
223
223
  @param [String] name
224
224
  @return [Hash]
225
225
 
226
+ @method get_option(name)
227
+ See +:h nvim_get_option()+
228
+ @param [String] name
229
+ @return [Object]
230
+
231
+ @method call_atomic(calls)
232
+ See +:h nvim_call_atomic()+
233
+ @param [Array] calls
234
+ @return [Array]
235
+
226
236
  @method create_namespace(name)
227
237
  See +:h nvim_create_namespace()+
228
238
  @param [String] name
@@ -261,11 +271,6 @@ module Neovim
261
271
  @param [Hash] opts
262
272
  @return [Hash]
263
273
 
264
- @method get_option(name)
265
- See +:h nvim_get_option()+
266
- @param [String] name
267
- @return [Object]
268
-
269
274
  @method ui_attach(width, height, options)
270
275
  See +:h nvim_ui_attach()+
271
276
  @param [Integer] width
@@ -314,6 +319,12 @@ module Neovim
314
319
  @param [Float] col
315
320
  @return [void]
316
321
 
322
+ @method ui_term_event(event, value)
323
+ See +:h nvim_ui_term_event()+
324
+ @param [String] event
325
+ @param [Object] value
326
+ @return [void]
327
+
317
328
  @method get_hl_id_by_name(name)
318
329
  See +:h nvim_get_hl_id_by_name()+
319
330
  @param [String] name
@@ -332,6 +343,11 @@ module Neovim
332
343
  @param [Hash] val
333
344
  @return [void]
334
345
 
346
+ @method get_hl_ns(opts)
347
+ See +:h nvim_get_hl_ns()+
348
+ @param [Hash] opts
349
+ @return [Integer]
350
+
335
351
  @method set_hl_ns(ns_id)
336
352
  See +:h nvim_set_hl_ns()+
337
353
  @param [Integer] ns_id
@@ -613,11 +629,6 @@ module Neovim
613
629
  See +:h nvim_list_chans()+
614
630
  @return [Array]
615
631
 
616
- @method call_atomic(calls)
617
- See +:h nvim_call_atomic()+
618
- @param [Array] calls
619
- @return [Array]
620
-
621
632
  @method list_uis
622
633
  See +:h nvim_list_uis()+
623
634
  @return [Array]
@@ -0,0 +1,30 @@
1
+ module Neovim
2
+ class RemoteModule
3
+ # The DSL exposed in +Neovim.start_remote+ blocks.
4
+ #
5
+ # @api public
6
+ class DSL < BasicObject
7
+ attr_reader :handlers
8
+
9
+ def initialize(&block)
10
+ @handlers = ::Hash.new do |h, name|
11
+ h[name] = ::Proc.new do |_, *|
12
+ raise NotImplementedError, "undefined handler #{name.inspect}"
13
+ end
14
+ end
15
+
16
+ block&.call(self)
17
+ end
18
+
19
+ # Define an RPC handler for use in remote modules.
20
+ #
21
+ # @param name [String] The handler name.
22
+ # @param block [Proc] The body of the handler.
23
+ def register_handler(name, &block)
24
+ @handlers[name.to_s] = ::Proc.new do |client, *args|
25
+ block.call(client, *args)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,42 @@
1
+ require "neovim/client"
2
+ require "neovim/event_loop"
3
+ require "neovim/logging"
4
+ require "neovim/remote_module/dsl"
5
+ require "neovim/session"
6
+
7
+ module Neovim
8
+ class RemoteModule
9
+ include Logging
10
+
11
+ def self.from_config_block(&block)
12
+ new(DSL::new(&block).handlers)
13
+ end
14
+
15
+ def initialize(handlers)
16
+ @handlers = handlers
17
+ end
18
+
19
+ def start
20
+ event_loop = EventLoop.stdio
21
+ session = Session.new(event_loop)
22
+ client = nil
23
+
24
+ session.run do |message|
25
+ case message
26
+ when Message::Request
27
+ begin
28
+ client ||= Client.from_event_loop(event_loop, session)
29
+ args = message.arguments.flatten(1)
30
+
31
+ @handlers[message.method_name].call(client, *args).tap do |rv|
32
+ session.respond(message.id, rv, nil) if message.sync?
33
+ end
34
+ rescue => e
35
+ log_exception(:error, e, __method__)
36
+ session.respond(message.id, nil, e.message) if message.sync?
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -3,7 +3,7 @@ require "neovim/remote_object"
3
3
  module Neovim
4
4
  # Class representing an +nvim+ tabpage.
5
5
  #
6
- # The methods documented here were generated using NVIM v0.9.1
6
+ # The methods documented here were generated using NVIM v0.10.0
7
7
  class Tabpage < RemoteObject
8
8
  # The following methods are dynamically generated.
9
9
  =begin
@@ -31,6 +31,11 @@ module Neovim
31
31
  See +:h nvim_tabpage_get_win()+
32
32
  @return [Window]
33
33
 
34
+ @method set_win(win)
35
+ See +:h nvim_tabpage_set_win()+
36
+ @param [Window] win
37
+ @return [void]
38
+
34
39
  @method get_number
35
40
  See +:h nvim_tabpage_get_number()+
36
41
  @return [Integer]
@@ -1,3 +1,3 @@
1
1
  module Neovim
2
- VERSION = Gem::Version.new("0.9.1")
2
+ VERSION = Gem::Version.new("0.10.0")
3
3
  end
data/lib/neovim/window.rb CHANGED
@@ -3,7 +3,7 @@ require "neovim/remote_object"
3
3
  module Neovim
4
4
  # Class representing an +nvim+ window.
5
5
  #
6
- # The methods documented here were generated using NVIM v0.9.1
6
+ # The methods documented here were generated using NVIM v0.10.0
7
7
  class Window < RemoteObject
8
8
  # Get the buffer displayed in the window
9
9
  #
@@ -171,6 +171,11 @@ module Neovim
171
171
  @param [Integer] ns_id
172
172
  @return [void]
173
173
 
174
+ @method text_height(opts)
175
+ See +:h nvim_win_text_height()+
176
+ @param [Hash] opts
177
+ @return [Hash]
178
+
174
179
  =end
175
180
  end
176
181
  end
data/lib/neovim.rb CHANGED
@@ -4,6 +4,7 @@ require "neovim/session"
4
4
  require "neovim/event_loop"
5
5
  require "neovim/executable"
6
6
  require "neovim/logging"
7
+ require "neovim/remote_module"
7
8
  require "neovim/version"
8
9
 
9
10
  # The main entrypoint to the +Neovim+ gem. It allows you to connect to a
@@ -83,6 +84,14 @@ module Neovim
83
84
  attach(EventLoop.child(argv))
84
85
  end
85
86
 
87
+ # Start a remote module process with handlers defined in the config block.
88
+ # Blocks indefinitely to handle messages.
89
+ #
90
+ # @see RemoteModule::DSL
91
+ def self.start_remote(&block)
92
+ RemoteModule.from_config_block(&block).start
93
+ end
94
+
86
95
  # Placeholder method for exposing the remote plugin DSL. This gets
87
96
  # temporarily overwritten in +Host::Loader#load+.
88
97
  #
@@ -7,9 +7,9 @@ set -eu
7
7
  case "$(echo "$RUNNER_OS" | tr "[:upper:]" "[:lower:]")" in
8
8
  macos)
9
9
  wget -nv -P /tmp \
10
- "https://github.com/neovim/neovim/releases/download/stable/nvim-macos.tar.gz"
11
- tar -C /tmp -xzf /tmp/nvim-macos.tar.gz
12
- mv /tmp/nvim-macos ./_nvim
10
+ "https://github.com/neovim/neovim/releases/download/stable/nvim-macos-x86_64.tar.gz"
11
+ tar -C /tmp -xzf /tmp/nvim-macos-x86_64.tar.gz
12
+ mv /tmp/nvim-macos-x86_64 ./_nvim
13
13
  ;;
14
14
  linux)
15
15
  mkdir -p _nvim/bin
@@ -0,0 +1,3 @@
1
+ @echo off
2
+ pushd "%~dp0\.." 2>NUL
3
+ ruby -I %CD%\lib %CD%\exe\neovim-ruby-host %*
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env bash
2
+
3
+ cd "$(dirname "$0")/.."
4
+
5
+ exec ruby -I ./lib ./exe/neovim-ruby-host "$@"
@@ -21,7 +21,7 @@ env = {
21
21
  "NVIM_RPLUGIN_MANIFEST" => manifest,
22
22
  "THEMIS_VIM" => nvim,
23
23
  "THEMIS_HOME" => themis_home,
24
- "THEMIS_ARGS" => "-e -s --headless -u #{vimrc}"
24
+ "THEMIS_ARGS" => "-e --headless -u #{vimrc}"
25
25
  }
26
26
 
27
27
  FileUtils.rm_f(manifest)
@@ -30,7 +30,7 @@ Dir.chdir(root) do
30
30
  system(
31
31
  env,
32
32
  nvim,
33
- "-e", "-s", "--headless",
33
+ "-e", "--headless",
34
34
  "-u", vimrc,
35
35
  "+UpdateRemotePlugins", "+qa!"
36
36
  )
@@ -9,34 +9,18 @@ function! s:suite.before_each() abort
9
9
  \ "v:val.client")
10
10
  endfunction
11
11
 
12
- function! s:suite.get_script_host_client_info() abort
13
- let client_info = s:client_chans[1]
14
-
15
- call s:expect(sort(keys(client_info))).to_equal(
16
- \ ["attributes", "methods", "name", "type", "version"])
17
-
18
- call s:expect(client_info.attributes).to_be_dict()
19
- call s:expect(client_info.methods).to_equal({"specs": {"nargs": 1}, "poll": {}})
20
- call s:expect(client_info.name).to_equal("ruby-script-host")
21
- call s:expect(client_info.type).to_equal("host")
22
-
23
- call s:expect(client_info.version.major).to_be_number()
24
- call s:expect(client_info.version.minor).to_be_number()
25
- call s:expect(client_info.version.patch).to_be_number()
26
- endfunction
27
-
28
- function! s:suite.get_rplugin_client_info() abort
29
- let client_info = s:client_chans[0]
30
-
31
- call s:expect(sort(keys(client_info))).to_equal(
32
- \ ["attributes", "methods", "name", "type", "version"])
33
-
34
- call s:expect(client_info.attributes).to_be_dict()
35
- call s:expect(client_info.methods).to_equal({"specs": {"nargs": 1}, "poll": {}})
36
- call s:expect(client_info.name).to_equal("ruby-rplugin-host")
37
- call s:expect(client_info.type).to_equal("host")
38
-
39
- call s:expect(client_info.version.major).to_be_number()
40
- call s:expect(client_info.version.minor).to_be_number()
41
- call s:expect(client_info.version.patch).to_be_number()
12
+ function! s:suite.get_client_info() abort
13
+ for client_info in s:client_chans
14
+ call s:expect(sort(keys(client_info))).to_equal(
15
+ \ ["attributes", "methods", "name", "type", "version"])
16
+
17
+ call s:expect(client_info.attributes).to_be_dict()
18
+ call s:expect(client_info.methods).to_equal({"specs": {"nargs": 1}, "poll": {}})
19
+ call s:expect(client_info.name).to_match("ruby-\\(script\\|rplugin\\)-host")
20
+ call s:expect(client_info.type).to_equal("host")
21
+
22
+ call s:expect(client_info.version.major).to_be_number()
23
+ call s:expect(client_info.version.minor).to_be_number()
24
+ call s:expect(client_info.version.patch).to_be_number()
25
+ endfor
42
26
  endfunction
@@ -0,0 +1,13 @@
1
+ let s:suite = themis#suite("Remote module")
2
+ let s:expect = themis#helper("expect")
3
+
4
+ call themis#helper('command').with(s:)
5
+
6
+ function! s:suite.defines_commands() abort
7
+ RbSetVar set_from_rb_mod foobar
8
+ call s:expect(g:set_from_rb_mod).to_equal('foobar')
9
+ endfunction
10
+
11
+ function! s:suite.propagates_errors() abort
12
+ Throws /oops/ :RbWillRaise
13
+ endfunction
@@ -0,0 +1,11 @@
1
+ require "neovim"
2
+
3
+ Neovim.start_remote do |mod|
4
+ mod.register_handler("rb_set_var") do |nvim, name, val|
5
+ nvim.set_var(name, val.to_s)
6
+ end
7
+
8
+ mod.register_handler("rb_will_raise") do |nvim|
9
+ raise "oops"
10
+ end
11
+ end
@@ -1,7 +1,12 @@
1
1
  let s:lib_path = getcwd() . "/lib"
2
2
  let s:exe_path = getcwd() . "/exe/neovim-ruby-host"
3
3
  let g:acceptance_rtp = getcwd() . "/spec/acceptance/runtime"
4
- let g:ruby_host_prog = printf("ruby -I %s %s", s:lib_path, s:exe_path)
4
+
5
+ if has("win32") || has("win64")
6
+ let g:ruby_host_prog = getcwd() . "/script/host_wrapper.bat"
7
+ else
8
+ let g:ruby_host_prog = getcwd() . "/script/host_wrapper.sh"
9
+ endif
5
10
 
6
11
  ruby require "rspec/expectations"
7
12
  ruby include ::RSpec::Matchers.dup
@@ -0,0 +1,23 @@
1
+ local chan
2
+
3
+ local function ensure_job()
4
+ if chan then
5
+ return chan
6
+ end
7
+
8
+ chan = vim.fn.jobstart({
9
+ 'ruby',
10
+ '-I', 'lib',
11
+ 'spec/acceptance/runtime/example_remote_module.rb',
12
+ }, { rpc = true })
13
+
14
+ return chan
15
+ end
16
+
17
+ vim.api.nvim_create_user_command('RbSetVar', function(args)
18
+ vim.fn.rpcrequest(ensure_job(), 'rb_set_var', args.fargs)
19
+ end, { nargs = '*' })
20
+
21
+ vim.api.nvim_create_user_command('RbWillRaise', function(args)
22
+ vim.fn.rpcrequest(ensure_job(), 'rb_will_raise', args.fargs)
23
+ end, { nargs = 0 })
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neovim
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Genco
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-08-13 00:00:00.000000000 Z
11
+ date: 2024-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -160,6 +160,8 @@ files:
160
160
  - lib/neovim/plugin.rb
161
161
  - lib/neovim/plugin/dsl.rb
162
162
  - lib/neovim/plugin/handler.rb
163
+ - lib/neovim/remote_module.rb
164
+ - lib/neovim/remote_module/dsl.rb
163
165
  - lib/neovim/remote_object.rb
164
166
  - lib/neovim/ruby_provider.rb
165
167
  - lib/neovim/ruby_provider/buffer_ext.rb
@@ -174,10 +176,13 @@ files:
174
176
  - script/ci/download_nvim.sh
175
177
  - script/dump_api.rb
176
178
  - script/generate_docs.rb
179
+ - script/host_wrapper.bat
180
+ - script/host_wrapper.sh
177
181
  - script/j2mp.rb
178
182
  - script/mp2j.rb
179
183
  - script/run_acceptance.rb
180
184
  - spec/acceptance/client_info_spec.vim
185
+ - spec/acceptance/remote_module_spec.vim
181
186
  - spec/acceptance/rplugin_autocmd_spec.vim
182
187
  - spec/acceptance/rplugin_command_spec.vim
183
188
  - spec/acceptance/rplugin_function_spec.vim
@@ -196,7 +201,9 @@ files:
196
201
  - spec/acceptance/rubyfile/set_pwd_after.rb
197
202
  - spec/acceptance/rubyfile/set_pwd_before.rb
198
203
  - spec/acceptance/rubyfile_spec.vim
204
+ - spec/acceptance/runtime/example_remote_module.rb
199
205
  - spec/acceptance/runtime/init.vim
206
+ - spec/acceptance/runtime/plugin/example_remote_module.lua
200
207
  - spec/acceptance/runtime/rplugin/ruby/autocmds.rb
201
208
  - spec/acceptance/runtime/rplugin/ruby/commands.rb
202
209
  - spec/acceptance/runtime/rplugin/ruby/functions.rb
@@ -250,6 +257,7 @@ specification_version: 4
250
257
  summary: A Ruby client for Neovim
251
258
  test_files:
252
259
  - spec/acceptance/client_info_spec.vim
260
+ - spec/acceptance/remote_module_spec.vim
253
261
  - spec/acceptance/rplugin_autocmd_spec.vim
254
262
  - spec/acceptance/rplugin_command_spec.vim
255
263
  - spec/acceptance/rplugin_function_spec.vim
@@ -268,7 +276,9 @@ test_files:
268
276
  - spec/acceptance/rubyfile/set_pwd_after.rb
269
277
  - spec/acceptance/rubyfile/set_pwd_before.rb
270
278
  - spec/acceptance/rubyfile_spec.vim
279
+ - spec/acceptance/runtime/example_remote_module.rb
271
280
  - spec/acceptance/runtime/init.vim
281
+ - spec/acceptance/runtime/plugin/example_remote_module.lua
272
282
  - spec/acceptance/runtime/rplugin/ruby/autocmds.rb
273
283
  - spec/acceptance/runtime/rplugin/ruby/commands.rb
274
284
  - spec/acceptance/runtime/rplugin/ruby/functions.rb