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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6261883caf16dbd51bb9b1a869b61cf71597615e32c51af87727ea25b90f8fcd
4
- data.tar.gz: 33053c2596c20db1e6314ff38c23f3ca091d994736c9852a45fc3237dcdcdba2
3
+ metadata.gz: 5320dac4af30229401acf28acf82589d27523b419a65caaf6a9b32982be13559
4
+ data.tar.gz: 1de09c53e257cce5c3b82902cd998a8b74601e452e25641e7e5f59fceed9bcaf
5
5
  SHA512:
6
- metadata.gz: 8ab4995d175c7dd2821bf547b43c4b2128ee332c5110d59698e419352d325ec94ff761cda257d8bd4612f2f3c3c868c59fcaf947f923c0c1b98ae1d83c88991c
7
- data.tar.gz: 996aef5dece8afdf5306a9b716545793dd16d469f869c0d17eb336fc58ce91bf9154e234f42e5e0aab5c2b56e9025a8a5e2c86edbd48e5a7cb459b790252769e
6
+ metadata.gz: 5d4950d5edfd43619d9e2e3c4efccaee9ab9219cad3db41fd9d003262870ad2a98f77f3f76dba60c9fb17272fb0b0ad2982acdb1d9b8a31248e2c9ed494e27ec
7
+ data.tar.gz: 8cc1963557bd46b91e4050363296b4d5b87bd7f1fcf736ac5bb1b6a324d4ec1c84baf2cc6069290c73108ec948af37a2fb57e78b3ec8c5c7622e13f1b6e31e65
@@ -18,13 +18,13 @@ jobs:
18
18
  - uses: ruby/setup-ruby@v1
19
19
  with:
20
20
  ruby-version: head
21
+ - name: Install libfuse
22
+ run: sudo apt install libfuse2
21
23
  - name: Bundle install
22
24
  run: |
23
25
  bundle config set path vendor/bundle
24
26
  bundle install --jobs 3 --retry 3
25
27
  - name: Install Neovim
26
- env:
27
- BUILD: latest
28
28
  run: bundle exec rake ci:download_nvim
29
29
  - name: Generate docs
30
30
  env:
@@ -12,23 +12,23 @@ jobs:
12
12
  fail-fast: false
13
13
  matrix:
14
14
  os: [ubuntu-latest, macos-latest]
15
- ruby: [2.5, 2.6, 2.7, 3.0, 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:
19
+ - name: Fix up git URLs
20
+ run: echo -e '[url "https://github.com/"]\n insteadOf = "git://github.com/"' >> ~/.gitconfig
19
21
  - uses: actions/checkout@v2
20
22
  with:
21
23
  repository: neovim/neovim-ruby
22
24
  - uses: ruby/setup-ruby@v1
23
25
  with:
24
26
  ruby-version: ${{ matrix.ruby }}
25
- - name: Bundle install
26
- run: |
27
- bundle config set path vendor/bundle
28
- bundle install --jobs 3 --retry 3
27
+ bundler-cache: true
28
+ - name: Install libfuse
29
+ run: sudo apt install libfuse2
30
+ if: matrix.os == 'ubuntu-latest'
29
31
  - name: Install Neovim
30
- env:
31
- BUILD: nightly
32
32
  run: bundle exec rake ci:download_nvim
33
33
  - name: Run tests
34
34
  env:
@@ -37,28 +37,26 @@ jobs:
37
37
  windows:
38
38
  strategy:
39
39
  fail-fast: false
40
- matrix:
41
- ruby: [2.5, 2.6, 2.7, 3.0]
42
40
  runs-on: windows-latest
43
41
  if: "!contains(github.event.head_commit.message, '[skip ci]')"
44
42
  steps:
43
+ - name: Fix up git URLs
44
+ run: |
45
+ echo '[url "https://github.com/"]' >> ~/.gitconfig
46
+ echo ' insteadOf = "git://github.com/"' >> ~/.gitconfig
45
47
  - uses: actions/checkout@v2
46
48
  with:
47
49
  repository: neovim/neovim-ruby
48
50
  - uses: ruby/setup-ruby@v1
49
51
  with:
50
- ruby-version: ${{ matrix.ruby }}
51
- - name: Bundle install
52
- run: |
53
- bundle config set path vendor/bundle
54
- bundle install --jobs 3 --retry 3
52
+ ruby-version: ruby
53
+ bundler-cache: true
55
54
  - name: Install Neovim
56
55
  uses: crazy-max/ghaction-chocolatey@v1
57
56
  with:
58
- # TODO: Install `--pre` once nightly release is fixed:
59
- # https://github.com/neovim/neovim/issues/13312
60
57
  args: install neovim -fy --ignore-dependencies --ignore-checksums
61
58
  - name: Run tests
62
59
  env:
63
- NVIM_EXECUTABLE: 'C:\tools\neovim\Neovim\bin\nvim'
60
+ VIM_FLAVOR_HOME: 'D:\'
61
+ NVIM_EXECUTABLE: 'C:\tools\neovim\nvim-win64\bin\nvim'
64
62
  run: bundle exec rake spec
data/.gitignore CHANGED
@@ -18,7 +18,7 @@ test/tmp
18
18
  test/version_tmp
19
19
  tmp
20
20
  spec/workspace
21
- spec/acceptance/runtime/flavors
21
+ spec/acceptance/runtime/pack
22
22
  spec/acceptance/runtime/rplugin_manifest.vim
23
23
  vendor/bundle
24
24
  bin
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
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
+
6
+ # 0.9.1
7
+
8
+ - Fix bug where `Buffer#[]` with `0` returned the last line of the buffer
9
+ (https://github.com/neovim/neovim-ruby/issues/97)
10
+
1
11
  # 0.9.0
2
12
 
3
13
  - Add RPC support for `:rubyeval`.
data/Flavorfile.lock ADDED
@@ -0,0 +1 @@
1
+ thinca/vim-themis (c1f4d465ce7dd23735513551b5c4c918d9c1bab1 at master)
data/README.md CHANGED
@@ -27,10 +27,10 @@ gem install neovim
27
27
 
28
28
  ## Usage
29
29
 
30
- You can control a running `nvim` process by connecting to `$NVIM_LISTEN_ADDRESS`. For example, to connect to `nvim` over a UNIX domain socket, start it up like this:
30
+ 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:
31
31
 
32
32
  ```shell
33
- $ NVIM_LISTEN_ADDRESS=/tmp/nvim.sock nvim
33
+ $ nvim --listen /tmp/nvim.sock
34
34
  ```
35
35
 
36
36
  You can then connect to that socket path to get a `Neovim::Client`:
@@ -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
 
@@ -85,7 +69,7 @@ The Neovim gem also acts as a compatibility layer for Ruby plugins written for `
85
69
  * CI: <https://github.com/neovim/neovim-ruby/actions>
86
70
  * Documentation:
87
71
  * Latest Gem: <https://rubydoc.info/gems/neovim>
88
- * Main: <https://rubydoc.info/github/neovim/neovim-ruby/main/frames>
72
+ * Main: <https://rubydoc.info/github/neovim/neovim-ruby/main>
89
73
 
90
74
  ## Contributing
91
75
 
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.5.0
7
+ # The methods documented here were generated using NVIM v0.10.0
8
8
  class Buffer < RemoteObject
9
9
  attr_reader :lines
10
10
 
@@ -54,7 +54,7 @@ module Neovim
54
54
  # @param index [Integer]
55
55
  # @return [String]
56
56
  def [](index)
57
- check_index(index)
57
+ check_index(index, 1)
58
58
  @lines[index - 1]
59
59
  end
60
60
 
@@ -64,7 +64,7 @@ module Neovim
64
64
  # @param str [String]
65
65
  # @return [String]
66
66
  def []=(index, str)
67
- check_index(index)
67
+ check_index(index, 1)
68
68
  @lines[index - 1] = str
69
69
  end
70
70
 
@@ -73,13 +73,16 @@ module Neovim
73
73
  # @param index [Integer]
74
74
  # @return [void]
75
75
  def delete(index)
76
- check_index(index)
76
+ check_index(index, 1)
77
77
  @lines.delete(index - 1)
78
78
  nil
79
79
  end
80
80
 
81
81
  # Append a line after the given line (1-indexed).
82
82
  #
83
+ # Unlike the other methods, `0` is a valid index argument here, and inserts
84
+ # into the first line of the buffer.
85
+ #
83
86
  # To maintain backwards compatibility with +vim+, the cursor is forced back
84
87
  # to its previous position after inserting the line.
85
88
  #
@@ -87,7 +90,7 @@ module Neovim
87
90
  # @param str [String]
88
91
  # @return [String]
89
92
  def append(index, str)
90
- check_index(index)
93
+ check_index(index, 0)
91
94
  window = @session.request(:nvim_get_current_win)
92
95
  cursor = window.cursor
93
96
 
@@ -127,8 +130,8 @@ module Neovim
127
130
 
128
131
  private
129
132
 
130
- def check_index(index)
131
- raise ArgumentError, "Index out of bounds" if index < 0
133
+ def check_index(index, min)
134
+ raise ArgumentError, "Index out of bounds" if index < min
132
135
  end
133
136
 
134
137
  public
@@ -173,6 +176,15 @@ module Neovim
173
176
  @param [Array<String>] replacement
174
177
  @return [void]
175
178
 
179
+ @method get_text(start_row, start_col, end_row, end_col, opts)
180
+ See +:h nvim_buf_get_text()+
181
+ @param [Integer] start_row
182
+ @param [Integer] start_col
183
+ @param [Integer] end_row
184
+ @param [Integer] end_col
185
+ @param [Hash] opts
186
+ @return [Array<String>]
187
+
176
188
  @method get_offset(index)
177
189
  See +:h nvim_buf_get_offset()+
178
190
  @param [Integer] index
@@ -206,11 +218,6 @@ module Neovim
206
218
  @param [String] lhs
207
219
  @return [void]
208
220
 
209
- @method get_commands(opts)
210
- See +:h nvim_buf_get_commands()+
211
- @param [Hash] opts
212
- @return [Hash]
213
-
214
221
  @method set_var(name, value)
215
222
  See +:h nvim_buf_set_var()+
216
223
  @param [String] name
@@ -222,17 +229,6 @@ module Neovim
222
229
  @param [String] name
223
230
  @return [void]
224
231
 
225
- @method get_option(name)
226
- See +:h nvim_buf_get_option()+
227
- @param [String] name
228
- @return [Object]
229
-
230
- @method set_option(name, value)
231
- See +:h nvim_buf_set_option()+
232
- @param [String] name
233
- @param [Object] value
234
- @return [void]
235
-
236
232
  @method get_name
237
233
  See +:h nvim_buf_get_name()+
238
234
  @return [String]
@@ -250,11 +246,76 @@ module Neovim
250
246
  See +:h nvim_buf_is_valid()+
251
247
  @return [Boolean]
252
248
 
249
+ @method del_mark(name)
250
+ See +:h nvim_buf_del_mark()+
251
+ @param [String] name
252
+ @return [Boolean]
253
+
254
+ @method set_mark(name, line, col, opts)
255
+ See +:h nvim_buf_set_mark()+
256
+ @param [String] name
257
+ @param [Integer] line
258
+ @param [Integer] col
259
+ @param [Hash] opts
260
+ @return [Boolean]
261
+
253
262
  @method get_mark(name)
254
263
  See +:h nvim_buf_get_mark()+
255
264
  @param [String] name
256
265
  @return [Array<Integer>]
257
266
 
267
+ @method call(fun)
268
+ See +:h nvim_buf_call()+
269
+ @param [LuaRef] fun
270
+ @return [Object]
271
+
272
+ @method create_user_command(name, command, opts)
273
+ See +:h nvim_buf_create_user_command()+
274
+ @param [String] name
275
+ @param [Object] command
276
+ @param [Hash] opts
277
+ @return [void]
278
+
279
+ @method del_user_command(name)
280
+ See +:h nvim_buf_del_user_command()+
281
+ @param [String] name
282
+ @return [void]
283
+
284
+ @method get_commands(opts)
285
+ See +:h nvim_buf_get_commands()+
286
+ @param [Hash] opts
287
+ @return [Hash]
288
+
289
+ @method get_number
290
+ See +:h nvim_buf_get_number()+
291
+ @return [Integer]
292
+
293
+ @method clear_highlight(ns_id, line_start, line_end)
294
+ See +:h nvim_buf_clear_highlight()+
295
+ @param [Integer] ns_id
296
+ @param [Integer] line_start
297
+ @param [Integer] line_end
298
+ @return [void]
299
+
300
+ @method set_virtual_text(src_id, line, chunks, opts)
301
+ See +:h nvim_buf_set_virtual_text()+
302
+ @param [Integer] src_id
303
+ @param [Integer] line
304
+ @param [Array] chunks
305
+ @param [Hash] opts
306
+ @return [Integer]
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
+
258
319
  @method get_extmark_by_id(ns_id, id, opts)
259
320
  See +:h nvim_buf_get_extmark_by_id()+
260
321
  @param [Integer] ns_id
@@ -300,30 +361,6 @@ module Neovim
300
361
  @param [Integer] line_end
301
362
  @return [void]
302
363
 
303
- @method set_virtual_text(src_id, line, chunks, opts)
304
- See +:h nvim_buf_set_virtual_text()+
305
- @param [Integer] src_id
306
- @param [Integer] line
307
- @param [Array] chunks
308
- @param [Hash] opts
309
- @return [Integer]
310
-
311
- @method call(fun)
312
- See +:h nvim_buf_call()+
313
- @param [LuaRef] fun
314
- @return [Object]
315
-
316
- @method get_number
317
- See +:h nvim_buf_get_number()+
318
- @return [Integer]
319
-
320
- @method clear_highlight(ns_id, line_start, line_end)
321
- See +:h nvim_buf_clear_highlight()+
322
- @param [Integer] ns_id
323
- @param [Integer] line_start
324
- @param [Integer] line_end
325
- @return [void]
326
-
327
364
  =end
328
365
  end
329
366
  end