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 +4 -4
- data/.github/workflows/tests.yml +2 -4
- data/CHANGELOG.md +5 -0
- data/Flavorfile.lock +1 -1
- data/README.md +11 -27
- data/lib/neovim/buffer.rb +12 -12
- data/lib/neovim/client.rb +22 -11
- data/lib/neovim/remote_module/dsl.rb +30 -0
- data/lib/neovim/remote_module.rb +42 -0
- data/lib/neovim/tabpage.rb +6 -1
- data/lib/neovim/version.rb +1 -1
- data/lib/neovim/window.rb +6 -1
- data/lib/neovim.rb +9 -0
- data/script/ci/download_nvim.sh +3 -3
- data/script/host_wrapper.bat +3 -0
- data/script/host_wrapper.sh +5 -0
- data/script/run_acceptance.rb +2 -2
- data/spec/acceptance/client_info_spec.vim +14 -30
- data/spec/acceptance/remote_module_spec.vim +13 -0
- data/spec/acceptance/runtime/example_remote_module.rb +11 -0
- data/spec/acceptance/runtime/init.vim +6 -1
- data/spec/acceptance/runtime/plugin/example_remote_module.lua +23 -0
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5320dac4af30229401acf28acf82589d27523b419a65caaf6a9b32982be13559
|
4
|
+
data.tar.gz: 1de09c53e257cce5c3b82902cd998a8b74601e452e25641e7e5f59fceed9bcaf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d4950d5edfd43619d9e2e3c4efccaee9ab9219cad3db41fd9d003262870ad2a98f77f3f76dba60c9fb17272fb0b0ad2982acdb1d9b8a31248e2c9ed494e27ec
|
7
|
+
data.tar.gz: 8cc1963557bd46b91e4050363296b4d5b87bd7f1fcf736ac5bb1b6a324d4ec1c84baf2cc6069290c73108ec948af37a2fb57e78b3ec8c5c7622e13f1b6e31e65
|
data/.github/workflows/tests.yml
CHANGED
@@ -12,7 +12,7 @@ jobs:
|
|
12
12
|
fail-fast: false
|
13
13
|
matrix:
|
14
14
|
os: [ubuntu-latest, macos-latest]
|
15
|
-
ruby: [
|
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:
|
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
data/Flavorfile.lock
CHANGED
@@ -1 +1 @@
|
|
1
|
-
thinca/vim-themis (
|
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
|
-
###
|
45
|
+
### Remote Modules
|
46
46
|
|
47
|
-
|
47
|
+
Remote modules allow users to define custom handlers in Ruby. To implement a remote module:
|
48
48
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
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
|
-
|
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
|
-
|
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.
|
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.
|
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
|
data/lib/neovim/tabpage.rb
CHANGED
@@ -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.
|
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]
|
data/lib/neovim/version.rb
CHANGED
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.
|
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
|
#
|
data/script/ci/download_nvim.sh
CHANGED
@@ -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
|
data/script/run_acceptance.rb
CHANGED
@@ -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
|
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", "
|
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.
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
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
|
@@ -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
|
-
|
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.
|
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:
|
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
|