neovim 0.9.0 → 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/docs.yml +2 -2
- data/.github/workflows/tests.yml +15 -17
- data/.gitignore +1 -1
- data/CHANGELOG.md +10 -0
- data/Flavorfile.lock +1 -0
- data/README.md +14 -30
- data/lib/neovim/buffer.rb +84 -47
- data/lib/neovim/client.rb +233 -92
- 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 +31 -21
- data/lib/neovim.rb +13 -5
- data/neovim.gemspec +4 -4
- data/script/ci/download_nvim.sh +5 -18
- data/script/host_wrapper.bat +3 -0
- data/script/host_wrapper.sh +5 -0
- data/script/run_acceptance.rb +3 -3
- 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 +35 -24
- /data/{VimFlavor → Flavorfile} +0 -0
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
|
@@ -117,6 +117,84 @@ module Neovim
|
|
117
117
|
|
118
118
|
# The following methods are dynamically generated.
|
119
119
|
=begin
|
120
|
+
@method get_autocmds(opts)
|
121
|
+
See +:h nvim_get_autocmds()+
|
122
|
+
@param [Hash] opts
|
123
|
+
@return [Array]
|
124
|
+
|
125
|
+
@method create_autocmd(event, opts)
|
126
|
+
See +:h nvim_create_autocmd()+
|
127
|
+
@param [Object] event
|
128
|
+
@param [Hash] opts
|
129
|
+
@return [Integer]
|
130
|
+
|
131
|
+
@method del_autocmd(id)
|
132
|
+
See +:h nvim_del_autocmd()+
|
133
|
+
@param [Integer] id
|
134
|
+
@return [void]
|
135
|
+
|
136
|
+
@method clear_autocmds(opts)
|
137
|
+
See +:h nvim_clear_autocmds()+
|
138
|
+
@param [Hash] opts
|
139
|
+
@return [void]
|
140
|
+
|
141
|
+
@method create_augroup(name, opts)
|
142
|
+
See +:h nvim_create_augroup()+
|
143
|
+
@param [String] name
|
144
|
+
@param [Hash] opts
|
145
|
+
@return [Integer]
|
146
|
+
|
147
|
+
@method del_augroup_by_id(id)
|
148
|
+
See +:h nvim_del_augroup_by_id()+
|
149
|
+
@param [Integer] id
|
150
|
+
@return [void]
|
151
|
+
|
152
|
+
@method del_augroup_by_name(name)
|
153
|
+
See +:h nvim_del_augroup_by_name()+
|
154
|
+
@param [String] name
|
155
|
+
@return [void]
|
156
|
+
|
157
|
+
@method exec_autocmds(event, opts)
|
158
|
+
See +:h nvim_exec_autocmds()+
|
159
|
+
@param [Object] event
|
160
|
+
@param [Hash] opts
|
161
|
+
@return [void]
|
162
|
+
|
163
|
+
@method parse_cmd(str, opts)
|
164
|
+
See +:h nvim_parse_cmd()+
|
165
|
+
@param [String] str
|
166
|
+
@param [Hash] opts
|
167
|
+
@return [Hash]
|
168
|
+
|
169
|
+
@method cmd(cmd, opts)
|
170
|
+
See +:h nvim_cmd()+
|
171
|
+
@param [Hash] cmd
|
172
|
+
@param [Hash] opts
|
173
|
+
@return [String]
|
174
|
+
|
175
|
+
@method create_user_command(name, command, opts)
|
176
|
+
See +:h nvim_create_user_command()+
|
177
|
+
@param [String] name
|
178
|
+
@param [Object] command
|
179
|
+
@param [Hash] opts
|
180
|
+
@return [void]
|
181
|
+
|
182
|
+
@method del_user_command(name)
|
183
|
+
See +:h nvim_del_user_command()+
|
184
|
+
@param [String] name
|
185
|
+
@return [void]
|
186
|
+
|
187
|
+
@method get_commands(opts)
|
188
|
+
See +:h nvim_get_commands()+
|
189
|
+
@param [Hash] opts
|
190
|
+
@return [Hash]
|
191
|
+
|
192
|
+
@method exec(src, output)
|
193
|
+
See +:h nvim_exec()+
|
194
|
+
@param [String] src
|
195
|
+
@param [Boolean] output
|
196
|
+
@return [String]
|
197
|
+
|
120
198
|
@method command_output(command)
|
121
199
|
See +:h nvim_command_output()+
|
122
200
|
@param [String] command
|
@@ -128,6 +206,71 @@ module Neovim
|
|
128
206
|
@param [Array] args
|
129
207
|
@return [Object]
|
130
208
|
|
209
|
+
@method get_hl_by_id(hl_id, rgb)
|
210
|
+
See +:h nvim_get_hl_by_id()+
|
211
|
+
@param [Integer] hl_id
|
212
|
+
@param [Boolean] rgb
|
213
|
+
@return [Hash]
|
214
|
+
|
215
|
+
@method get_hl_by_name(name, rgb)
|
216
|
+
See +:h nvim_get_hl_by_name()+
|
217
|
+
@param [String] name
|
218
|
+
@param [Boolean] rgb
|
219
|
+
@return [Hash]
|
220
|
+
|
221
|
+
@method get_option_info(name)
|
222
|
+
See +:h nvim_get_option_info()+
|
223
|
+
@param [String] name
|
224
|
+
@return [Hash]
|
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
|
+
|
236
|
+
@method create_namespace(name)
|
237
|
+
See +:h nvim_create_namespace()+
|
238
|
+
@param [String] name
|
239
|
+
@return [Integer]
|
240
|
+
|
241
|
+
@method get_namespaces
|
242
|
+
See +:h nvim_get_namespaces()+
|
243
|
+
@return [Hash]
|
244
|
+
|
245
|
+
@method set_decoration_provider(ns_id, opts)
|
246
|
+
See +:h nvim_set_decoration_provider()+
|
247
|
+
@param [Integer] ns_id
|
248
|
+
@param [Hash] opts
|
249
|
+
@return [void]
|
250
|
+
|
251
|
+
@method get_option_value(name, opts)
|
252
|
+
See +:h nvim_get_option_value()+
|
253
|
+
@param [String] name
|
254
|
+
@param [Hash] opts
|
255
|
+
@return [Object]
|
256
|
+
|
257
|
+
@method set_option_value(name, value, opts)
|
258
|
+
See +:h nvim_set_option_value()+
|
259
|
+
@param [String] name
|
260
|
+
@param [Object] value
|
261
|
+
@param [Hash] opts
|
262
|
+
@return [void]
|
263
|
+
|
264
|
+
@method get_all_options_info
|
265
|
+
See +:h nvim_get_all_options_info()+
|
266
|
+
@return [Hash]
|
267
|
+
|
268
|
+
@method get_option_info2(name, opts)
|
269
|
+
See +:h nvim_get_option_info2()+
|
270
|
+
@param [String] name
|
271
|
+
@param [Hash] opts
|
272
|
+
@return [Hash]
|
273
|
+
|
131
274
|
@method ui_attach(width, height, options)
|
132
275
|
See +:h nvim_ui_attach()+
|
133
276
|
@param [Integer] width
|
@@ -135,6 +278,11 @@ module Neovim
|
|
135
278
|
@param [Hash] options
|
136
279
|
@return [void]
|
137
280
|
|
281
|
+
@method ui_set_focus(gained)
|
282
|
+
See +:h nvim_ui_set_focus()+
|
283
|
+
@param [Boolean] gained
|
284
|
+
@return [void]
|
285
|
+
|
138
286
|
@method ui_detach
|
139
287
|
See +:h nvim_ui_detach()+
|
140
288
|
@return [void]
|
@@ -171,34 +319,23 @@ module Neovim
|
|
171
319
|
@param [Float] col
|
172
320
|
@return [void]
|
173
321
|
|
174
|
-
@method
|
175
|
-
See +:h
|
176
|
-
@param [String]
|
177
|
-
@param [
|
178
|
-
@return [String]
|
179
|
-
|
180
|
-
@method command(command)
|
181
|
-
See +:h nvim_command()+
|
182
|
-
@param [String] command
|
322
|
+
@method ui_term_event(event, value)
|
323
|
+
See +:h nvim_ui_term_event()+
|
324
|
+
@param [String] event
|
325
|
+
@param [Object] value
|
183
326
|
@return [void]
|
184
327
|
|
185
|
-
@method get_hl_by_name(name, rgb)
|
186
|
-
See +:h nvim_get_hl_by_name()+
|
187
|
-
@param [String] name
|
188
|
-
@param [Boolean] rgb
|
189
|
-
@return [Hash]
|
190
|
-
|
191
|
-
@method get_hl_by_id(hl_id, rgb)
|
192
|
-
See +:h nvim_get_hl_by_id()+
|
193
|
-
@param [Integer] hl_id
|
194
|
-
@param [Boolean] rgb
|
195
|
-
@return [Hash]
|
196
|
-
|
197
328
|
@method get_hl_id_by_name(name)
|
198
329
|
See +:h nvim_get_hl_id_by_name()+
|
199
330
|
@param [String] name
|
200
331
|
@return [Integer]
|
201
332
|
|
333
|
+
@method get_hl(ns_id, opts)
|
334
|
+
See +:h nvim_get_hl()+
|
335
|
+
@param [Integer] ns_id
|
336
|
+
@param [Hash] opts
|
337
|
+
@return [Hash]
|
338
|
+
|
202
339
|
@method set_hl(ns_id, name, val)
|
203
340
|
See +:h nvim_set_hl()+
|
204
341
|
@param [Integer] ns_id
|
@@ -206,11 +343,26 @@ module Neovim
|
|
206
343
|
@param [Hash] val
|
207
344
|
@return [void]
|
208
345
|
|
209
|
-
@method
|
346
|
+
@method get_hl_ns(opts)
|
347
|
+
See +:h nvim_get_hl_ns()+
|
348
|
+
@param [Hash] opts
|
349
|
+
@return [Integer]
|
350
|
+
|
351
|
+
@method set_hl_ns(ns_id)
|
352
|
+
See +:h nvim_set_hl_ns()+
|
353
|
+
@param [Integer] ns_id
|
354
|
+
@return [void]
|
355
|
+
|
356
|
+
@method set_hl_ns_fast(ns_id)
|
357
|
+
See +:h nvim_set_hl_ns_fast()+
|
358
|
+
@param [Integer] ns_id
|
359
|
+
@return [void]
|
360
|
+
|
361
|
+
@method feedkeys(keys, mode, escape_ks)
|
210
362
|
See +:h nvim_feedkeys()+
|
211
363
|
@param [String] keys
|
212
364
|
@param [String] mode
|
213
|
-
@param [Boolean]
|
365
|
+
@param [Boolean] escape_ks
|
214
366
|
@return [void]
|
215
367
|
|
216
368
|
@method input(keys)
|
@@ -236,11 +388,6 @@ module Neovim
|
|
236
388
|
@param [Boolean] special
|
237
389
|
@return [String]
|
238
390
|
|
239
|
-
@method eval(expr)
|
240
|
-
See +:h nvim_eval()+
|
241
|
-
@param [String] expr
|
242
|
-
@return [Object]
|
243
|
-
|
244
391
|
@method exec_lua(code, args)
|
245
392
|
See +:h nvim_exec_lua()+
|
246
393
|
@param [String] code
|
@@ -254,19 +401,6 @@ module Neovim
|
|
254
401
|
@param [Hash] opts
|
255
402
|
@return [Object]
|
256
403
|
|
257
|
-
@method call_function(fn, args)
|
258
|
-
See +:h nvim_call_function()+
|
259
|
-
@param [String] fn
|
260
|
-
@param [Array] args
|
261
|
-
@return [Object]
|
262
|
-
|
263
|
-
@method call_dict_function(dict, fn, args)
|
264
|
-
See +:h nvim_call_dict_function()+
|
265
|
-
@param [Object] dict
|
266
|
-
@param [String] fn
|
267
|
-
@param [Array] args
|
268
|
-
@return [Object]
|
269
|
-
|
270
404
|
@method strwidth(text)
|
271
405
|
See +:h nvim_strwidth()+
|
272
406
|
@param [String] text
|
@@ -327,20 +461,6 @@ module Neovim
|
|
327
461
|
@param [Object] value
|
328
462
|
@return [void]
|
329
463
|
|
330
|
-
@method get_option(name)
|
331
|
-
See +:h nvim_get_option()+
|
332
|
-
@param [String] name
|
333
|
-
@return [Object]
|
334
|
-
|
335
|
-
@method get_all_options_info
|
336
|
-
See +:h nvim_get_all_options_info()+
|
337
|
-
@return [Hash]
|
338
|
-
|
339
|
-
@method get_option_info(name)
|
340
|
-
See +:h nvim_get_option_info()+
|
341
|
-
@param [String] name
|
342
|
-
@return [Hash]
|
343
|
-
|
344
464
|
@method echo(chunks, history, opts)
|
345
465
|
See +:h nvim_echo()+
|
346
466
|
@param [Array] chunks
|
@@ -407,13 +527,6 @@ module Neovim
|
|
407
527
|
@param [String] data
|
408
528
|
@return [void]
|
409
529
|
|
410
|
-
@method open_win(buffer, enter, config)
|
411
|
-
See +:h nvim_open_win()+
|
412
|
-
@param [Buffer] buffer
|
413
|
-
@param [Boolean] enter
|
414
|
-
@param [Hash] config
|
415
|
-
@return [Window]
|
416
|
-
|
417
530
|
@method list_tabpages
|
418
531
|
See +:h nvim_list_tabpages()+
|
419
532
|
@return [Array<Tabpage>]
|
@@ -427,15 +540,6 @@ module Neovim
|
|
427
540
|
@param [Tabpage] tabpage
|
428
541
|
@return [void]
|
429
542
|
|
430
|
-
@method create_namespace(name)
|
431
|
-
See +:h nvim_create_namespace()+
|
432
|
-
@param [String] name
|
433
|
-
@return [Integer]
|
434
|
-
|
435
|
-
@method get_namespaces
|
436
|
-
See +:h nvim_get_namespaces()+
|
437
|
-
@return [Hash]
|
438
|
-
|
439
543
|
@method paste(data, crlf, phase)
|
440
544
|
See +:h nvim_paste()+
|
441
545
|
@param [String] data
|
@@ -503,11 +607,6 @@ module Neovim
|
|
503
607
|
@param [String] lhs
|
504
608
|
@return [void]
|
505
609
|
|
506
|
-
@method get_commands(opts)
|
507
|
-
See +:h nvim_get_commands()+
|
508
|
-
@param [Hash] opts
|
509
|
-
@return [Hash]
|
510
|
-
|
511
610
|
@method get_api_info
|
512
611
|
See +:h nvim_get_api_info()+
|
513
612
|
@return [Array]
|
@@ -530,18 +629,6 @@ module Neovim
|
|
530
629
|
See +:h nvim_list_chans()+
|
531
630
|
@return [Array]
|
532
631
|
|
533
|
-
@method call_atomic(calls)
|
534
|
-
See +:h nvim_call_atomic()+
|
535
|
-
@param [Array] calls
|
536
|
-
@return [Array]
|
537
|
-
|
538
|
-
@method parse_expression(expr, flags, highlight)
|
539
|
-
See +:h nvim_parse_expression()+
|
540
|
-
@param [String] expr
|
541
|
-
@param [String] flags
|
542
|
-
@param [Boolean] highlight
|
543
|
-
@return [Hash]
|
544
|
-
|
545
632
|
@method list_uis
|
546
633
|
See +:h nvim_list_uis()+
|
547
634
|
@return [Array]
|
@@ -564,12 +651,66 @@ module Neovim
|
|
564
651
|
@param [Hash] opts
|
565
652
|
@return [void]
|
566
653
|
|
567
|
-
@method
|
568
|
-
See +:h
|
569
|
-
@param [
|
654
|
+
@method del_mark(name)
|
655
|
+
See +:h nvim_del_mark()+
|
656
|
+
@param [String] name
|
657
|
+
@return [Boolean]
|
658
|
+
|
659
|
+
@method get_mark(name, opts)
|
660
|
+
See +:h nvim_get_mark()+
|
661
|
+
@param [String] name
|
662
|
+
@param [Hash] opts
|
663
|
+
@return [Array]
|
664
|
+
|
665
|
+
@method eval_statusline(str, opts)
|
666
|
+
See +:h nvim_eval_statusline()+
|
667
|
+
@param [String] str
|
668
|
+
@param [Hash] opts
|
669
|
+
@return [Hash]
|
670
|
+
|
671
|
+
@method exec2(src, opts)
|
672
|
+
See +:h nvim_exec2()+
|
673
|
+
@param [String] src
|
570
674
|
@param [Hash] opts
|
675
|
+
@return [Hash]
|
676
|
+
|
677
|
+
@method command(command)
|
678
|
+
See +:h nvim_command()+
|
679
|
+
@param [String] command
|
571
680
|
@return [void]
|
572
681
|
|
682
|
+
@method eval(expr)
|
683
|
+
See +:h nvim_eval()+
|
684
|
+
@param [String] expr
|
685
|
+
@return [Object]
|
686
|
+
|
687
|
+
@method call_function(fn, args)
|
688
|
+
See +:h nvim_call_function()+
|
689
|
+
@param [String] fn
|
690
|
+
@param [Array] args
|
691
|
+
@return [Object]
|
692
|
+
|
693
|
+
@method call_dict_function(dict, fn, args)
|
694
|
+
See +:h nvim_call_dict_function()+
|
695
|
+
@param [Object] dict
|
696
|
+
@param [String] fn
|
697
|
+
@param [Array] args
|
698
|
+
@return [Object]
|
699
|
+
|
700
|
+
@method parse_expression(expr, flags, highlight)
|
701
|
+
See +:h nvim_parse_expression()+
|
702
|
+
@param [String] expr
|
703
|
+
@param [String] flags
|
704
|
+
@param [Boolean] highlight
|
705
|
+
@return [Hash]
|
706
|
+
|
707
|
+
@method open_win(buffer, enter, config)
|
708
|
+
See +:h nvim_open_win()+
|
709
|
+
@param [Buffer] buffer
|
710
|
+
@param [Boolean] enter
|
711
|
+
@param [Hash] config
|
712
|
+
@return [Window]
|
713
|
+
|
573
714
|
=end
|
574
715
|
end
|
575
716
|
end
|
@@ -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
|
#
|
@@ -64,6 +64,26 @@ module Neovim
|
|
64
64
|
|
65
65
|
# The following methods are dynamically generated.
|
66
66
|
=begin
|
67
|
+
@method get_option(name)
|
68
|
+
See +:h nvim_win_get_option()+
|
69
|
+
@param [String] name
|
70
|
+
@return [Object]
|
71
|
+
|
72
|
+
@method set_option(name, value)
|
73
|
+
See +:h nvim_win_set_option()+
|
74
|
+
@param [String] name
|
75
|
+
@param [Object] value
|
76
|
+
@return [void]
|
77
|
+
|
78
|
+
@method set_config(config)
|
79
|
+
See +:h nvim_win_set_config()+
|
80
|
+
@param [Hash] config
|
81
|
+
@return [void]
|
82
|
+
|
83
|
+
@method get_config
|
84
|
+
See +:h nvim_win_get_config()+
|
85
|
+
@return [Hash]
|
86
|
+
|
67
87
|
@method get_buf
|
68
88
|
See +:h nvim_win_get_buf()+
|
69
89
|
@return [Buffer]
|
@@ -116,17 +136,6 @@ module Neovim
|
|
116
136
|
@param [String] name
|
117
137
|
@return [void]
|
118
138
|
|
119
|
-
@method get_option(name)
|
120
|
-
See +:h nvim_win_get_option()+
|
121
|
-
@param [String] name
|
122
|
-
@return [Object]
|
123
|
-
|
124
|
-
@method set_option(name, value)
|
125
|
-
See +:h nvim_win_set_option()+
|
126
|
-
@param [String] name
|
127
|
-
@param [Object] value
|
128
|
-
@return [void]
|
129
|
-
|
130
139
|
@method get_position
|
131
140
|
See +:h nvim_win_get_position()+
|
132
141
|
@return [Array<Integer>]
|
@@ -143,15 +152,6 @@ module Neovim
|
|
143
152
|
See +:h nvim_win_is_valid()+
|
144
153
|
@return [Boolean]
|
145
154
|
|
146
|
-
@method set_config(config)
|
147
|
-
See +:h nvim_win_set_config()+
|
148
|
-
@param [Hash] config
|
149
|
-
@return [void]
|
150
|
-
|
151
|
-
@method get_config
|
152
|
-
See +:h nvim_win_get_config()+
|
153
|
-
@return [Hash]
|
154
|
-
|
155
155
|
@method hide
|
156
156
|
See +:h nvim_win_hide()+
|
157
157
|
@return [void]
|
@@ -166,6 +166,16 @@ module Neovim
|
|
166
166
|
@param [LuaRef] fun
|
167
167
|
@return [Object]
|
168
168
|
|
169
|
+
@method set_hl_ns(ns_id)
|
170
|
+
See +:h nvim_win_set_hl_ns()+
|
171
|
+
@param [Integer] ns_id
|
172
|
+
@return [void]
|
173
|
+
|
174
|
+
@method text_height(opts)
|
175
|
+
See +:h nvim_win_text_height()+
|
176
|
+
@param [Hash] opts
|
177
|
+
@return [Hash]
|
178
|
+
|
169
179
|
=end
|
170
180
|
end
|
171
181
|
end
|
data/lib/neovim.rb
CHANGED
@@ -4,17 +4,17 @@ 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
|
10
11
|
# running +nvim+ instance programmatically or define a remote plugin to be
|
11
12
|
# autoloaded by +nvim+.
|
12
13
|
#
|
13
|
-
# You can connect to a running +nvim+
|
14
|
-
#
|
15
|
-
#
|
16
|
-
#
|
17
|
-
# +Neovim.attach_child(argv)+.
|
14
|
+
# You can connect to a running +nvim+ process using the appropriate +attach_+
|
15
|
+
# method. This is currently supported for both UNIX domain sockets and TCP. You
|
16
|
+
# can also spawn and connect to an +nvim+ subprocess using
|
17
|
+
# +Neovim.attach_child+.
|
18
18
|
#
|
19
19
|
# You can define a remote plugin using the +Neovim.plugin+ DSL, which allows
|
20
20
|
# you to register commands, functions, and autocmds. Plugins are autoloaded by
|
@@ -84,6 +84,14 @@ module Neovim
|
|
84
84
|
attach(EventLoop.child(argv))
|
85
85
|
end
|
86
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
|
+
|
87
95
|
# Placeholder method for exposing the remote plugin DSL. This gets
|
88
96
|
# temporarily overwritten in +Host::Loader#load+.
|
89
97
|
#
|
data/neovim.gemspec
CHANGED
@@ -22,10 +22,10 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_dependency "msgpack", "~> 1.1"
|
23
23
|
spec.add_dependency "multi_json", "~> 1.0"
|
24
24
|
|
25
|
-
spec.add_development_dependency "bundler"
|
26
|
-
spec.add_development_dependency "pry"
|
25
|
+
spec.add_development_dependency "bundler"
|
26
|
+
spec.add_development_dependency "pry", "~> 0.14"
|
27
27
|
spec.add_development_dependency "pry-byebug"
|
28
28
|
spec.add_development_dependency "rake"
|
29
|
-
spec.add_development_dependency "rspec"
|
30
|
-
spec.add_development_dependency "vim-flavor"
|
29
|
+
spec.add_development_dependency "rspec"
|
30
|
+
spec.add_development_dependency "vim-flavor"
|
31
31
|
end
|
data/script/ci/download_nvim.sh
CHANGED
@@ -2,32 +2,19 @@
|
|
2
2
|
|
3
3
|
set -eu
|
4
4
|
|
5
|
-
: ${RUNNER_OS:?}
|
6
|
-
|
7
|
-
case "$BUILD" in
|
8
|
-
latest)
|
9
|
-
URL_PART="latest/download"
|
10
|
-
;;
|
11
|
-
nightly)
|
12
|
-
URL_PART="download/nightly"
|
13
|
-
;;
|
14
|
-
*)
|
15
|
-
echo "BUILD must be 'latest' or 'nightly'." >&2
|
16
|
-
exit 1
|
17
|
-
;;
|
18
|
-
esac
|
5
|
+
: ${RUNNER_OS:?}
|
19
6
|
|
20
7
|
case "$(echo "$RUNNER_OS" | tr "[:upper:]" "[:lower:]")" in
|
21
8
|
macos)
|
22
9
|
wget -nv -P /tmp \
|
23
|
-
"https://github.com/neovim/neovim/releases
|
24
|
-
tar -C /tmp -xzf /tmp/nvim-macos.tar.gz
|
25
|
-
mv /tmp/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
|
26
13
|
;;
|
27
14
|
linux)
|
28
15
|
mkdir -p _nvim/bin
|
29
16
|
wget -nv -O _nvim/bin/nvim \
|
30
|
-
"https://github.com/neovim/neovim/releases
|
17
|
+
"https://github.com/neovim/neovim/releases/download/stable/nvim.appimage"
|
31
18
|
;;
|
32
19
|
*)
|
33
20
|
echo "Unrecognized \$RUNNER_OS" >&2
|