neovim 0.9.0 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|