neovim 0.9.0.pre.1 → 0.9.1
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 +7 -4
- data/.github/workflows/tests.yml +18 -16
- data/.gitignore +1 -1
- data/CHANGELOG.md +5 -0
- data/Flavorfile.lock +1 -0
- data/README.md +5 -5
- data/Rakefile +2 -11
- data/lib/neovim/buffer.rb +120 -40
- data/lib/neovim/client.rb +276 -67
- data/lib/neovim/tabpage.rb +1 -1
- data/lib/neovim/version.rb +1 -1
- data/lib/neovim/window.rb +33 -19
- data/lib/neovim.rb +4 -5
- data/neovim.gemspec +4 -5
- data/script/ci/download_nvim.sh +4 -17
- data/script/run_acceptance.rb +1 -1
- data/spec/acceptance/rplugin_command_spec.vim +2 -2
- data/spec/acceptance/runtime/rplugin/ruby/commands.rb +2 -2
- data/spec/helper.rb +6 -2
- metadata +27 -42
- data/.github/workflows/linter.yml +0 -32
- data/.rubocop.yml +0 -149
- /data/{VimFlavor → Flavorfile} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d86525bb60d51c356a2c75f368d248991a207c7875348a88181a3f7156b6051a
|
4
|
+
data.tar.gz: cb88fe16e651b54a671ae95f1ea71b692fa5f9c9348f16ce0f38218c98b7b90a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f24def6fc7afdab94cb605e5f9fb721d3b621841ebda9016ba26ab4acabf10dba0ad3b79c278c009fdf153654181a1c18b69385445e19627b91494db048d546c
|
7
|
+
data.tar.gz: f64be9703c9c312fb5571108838b199f4d5349ced2dcac12a32936db8a9f847222643ee05cd37b67a7671c8e92124489703df54ff5ef134d8875e8f546f46b9c
|
data/.github/workflows/docs.yml
CHANGED
@@ -1,13 +1,16 @@
|
|
1
1
|
name: Docs
|
2
2
|
on:
|
3
3
|
push:
|
4
|
-
branches: [
|
4
|
+
branches: [main]
|
5
5
|
schedule:
|
6
6
|
- cron: '0 0 * * 0'
|
7
7
|
jobs:
|
8
8
|
docs:
|
9
9
|
runs-on: ubuntu-latest
|
10
10
|
if: "!contains(github.event.head_commit.message, '[skip ci]')"
|
11
|
+
permissions:
|
12
|
+
contents: write
|
13
|
+
pull-requests: write
|
11
14
|
steps:
|
12
15
|
- uses: actions/checkout@v2
|
13
16
|
with:
|
@@ -15,20 +18,20 @@ jobs:
|
|
15
18
|
- uses: ruby/setup-ruby@v1
|
16
19
|
with:
|
17
20
|
ruby-version: head
|
21
|
+
- name: Install libfuse
|
22
|
+
run: sudo apt install libfuse2
|
18
23
|
- name: Bundle install
|
19
24
|
run: |
|
20
25
|
bundle config set path vendor/bundle
|
21
26
|
bundle install --jobs 3 --retry 3
|
22
27
|
- name: Install Neovim
|
23
|
-
env:
|
24
|
-
BUILD: latest
|
25
28
|
run: bundle exec rake ci:download_nvim
|
26
29
|
- name: Generate docs
|
27
30
|
env:
|
28
31
|
NVIM_EXECUTABLE: "_nvim/bin/nvim"
|
29
32
|
run: bundle exec rake docs:generate
|
30
33
|
- name: Open pull request
|
31
|
-
uses: peter-evans/create-pull-request@
|
34
|
+
uses: peter-evans/create-pull-request@v3
|
32
35
|
with:
|
33
36
|
token: ${{ secrets.GITHUB_TOKEN }}
|
34
37
|
commit-message: "[skip ci] Update generated docs"
|
data/.github/workflows/tests.yml
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
name: Tests
|
2
2
|
on:
|
3
3
|
push:
|
4
|
-
branches: [
|
4
|
+
branches: [main]
|
5
5
|
pull_request:
|
6
|
-
branches: [
|
6
|
+
branches: [main]
|
7
7
|
schedule:
|
8
8
|
- cron: '0 0 * * 0'
|
9
9
|
jobs:
|
@@ -12,23 +12,23 @@ jobs:
|
|
12
12
|
fail-fast: false
|
13
13
|
matrix:
|
14
14
|
os: [ubuntu-latest, macos-latest]
|
15
|
-
ruby: [2.
|
15
|
+
ruby: [2.7, 3.0, 3.1, 3.2, 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
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
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:
|
@@ -38,25 +38,27 @@ jobs:
|
|
38
38
|
strategy:
|
39
39
|
fail-fast: false
|
40
40
|
matrix:
|
41
|
-
ruby: [2.
|
41
|
+
ruby: [2.7, 3.0, 3.1, 3.2]
|
42
42
|
runs-on: windows-latest
|
43
43
|
if: "!contains(github.event.head_commit.message, '[skip ci]')"
|
44
44
|
steps:
|
45
|
+
- name: Fix up git URLs
|
46
|
+
run: |
|
47
|
+
echo '[url "https://github.com/"]' >> ~/.gitconfig
|
48
|
+
echo ' insteadOf = "git://github.com/"' >> ~/.gitconfig
|
45
49
|
- uses: actions/checkout@v2
|
46
50
|
with:
|
47
51
|
repository: neovim/neovim-ruby
|
48
52
|
- uses: ruby/setup-ruby@v1
|
49
53
|
with:
|
50
54
|
ruby-version: ${{ matrix.ruby }}
|
51
|
-
|
52
|
-
run: |
|
53
|
-
bundle config set path vendor/bundle
|
54
|
-
bundle install --jobs 3 --retry 3
|
55
|
+
bundler-cache: true
|
55
56
|
- name: Install Neovim
|
56
57
|
uses: crazy-max/ghaction-chocolatey@v1
|
57
58
|
with:
|
58
|
-
args: install neovim
|
59
|
+
args: install neovim -fy --ignore-dependencies --ignore-checksums
|
59
60
|
- name: Run tests
|
60
61
|
env:
|
61
|
-
|
62
|
+
VIM_FLAVOR_HOME: 'D:\'
|
63
|
+
NVIM_EXECUTABLE: 'C:\tools\neovim\nvim-win64\bin\nvim'
|
62
64
|
run: bundle exec rake spec
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
data/Flavorfile.lock
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
thinca/vim-themis (737e5444713ba53a9dcfbe3b962239bd0bd9162e at master)
|
data/README.md
CHANGED
@@ -27,10 +27,10 @@ gem install neovim
|
|
27
27
|
|
28
28
|
## Usage
|
29
29
|
|
30
|
-
|
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
|
-
$
|
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`:
|
@@ -40,7 +40,7 @@ require "neovim"
|
|
40
40
|
client = Neovim.attach_unix("/tmp/nvim.sock")
|
41
41
|
```
|
42
42
|
|
43
|
-
Refer to the [`Neovim` docs](https://www.rubydoc.info/github/neovim/neovim-ruby/
|
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
|
### Plugins
|
46
46
|
|
@@ -72,7 +72,7 @@ end
|
|
72
72
|
|
73
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.
|
74
74
|
|
75
|
-
Refer to the [`Neovim::Plugin::DSL` docs](https://www.rubydoc.info/github/neovim/neovim-ruby/
|
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.
|
76
76
|
|
77
77
|
### Vim Plugin Support
|
78
78
|
|
@@ -85,7 +85,7 @@ The Neovim gem also acts as a compatibility layer for Ruby plugins written for `
|
|
85
85
|
* CI: <https://github.com/neovim/neovim-ruby/actions>
|
86
86
|
* Documentation:
|
87
87
|
* Latest Gem: <https://rubydoc.info/gems/neovim>
|
88
|
-
*
|
88
|
+
* Main: <https://rubydoc.info/github/neovim/neovim-ruby/main>
|
89
89
|
|
90
90
|
## Contributing
|
91
91
|
|
data/Rakefile
CHANGED
@@ -1,24 +1,15 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
2
|
require "rspec/core/rake_task"
|
3
|
-
require "rubocop/rake_task"
|
4
3
|
|
5
4
|
Bundler.setup
|
6
5
|
|
7
|
-
RuboCop::RakeTask.new(:linter)
|
8
|
-
|
9
6
|
namespace :spec do
|
10
7
|
desc "Run functional specs"
|
11
8
|
RSpec::Core::RakeTask.new(:functional)
|
12
9
|
|
13
10
|
desc "Run acceptance specs"
|
14
11
|
task acceptance: "acceptance:deps" do
|
15
|
-
run_script(
|
16
|
-
"run_acceptance.rb",
|
17
|
-
"--reporter", "dot",
|
18
|
-
# TODO: remove once rubyeval is merged in nvim
|
19
|
-
"--exclude", "rubyeval",
|
20
|
-
"spec/acceptance"
|
21
|
-
)
|
12
|
+
run_script("run_acceptance.rb", "--reporter", "dot", "spec/acceptance")
|
22
13
|
end
|
23
14
|
|
24
15
|
namespace :acceptance do
|
@@ -45,7 +36,7 @@ end
|
|
45
36
|
desc "Run specs"
|
46
37
|
task spec: [:"spec:functional", :"spec:acceptance"]
|
47
38
|
|
48
|
-
task default:
|
39
|
+
task default: :spec
|
49
40
|
|
50
41
|
def run_script(relpath, *args)
|
51
42
|
path = File.expand_path("script/#{relpath}", __dir__)
|
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.9.1
|
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 <
|
133
|
+
def check_index(index, min)
|
134
|
+
raise ArgumentError, "Index out of bounds" if index < min
|
132
135
|
end
|
133
136
|
|
134
137
|
public
|
@@ -164,6 +167,24 @@ module Neovim
|
|
164
167
|
@param [Array<String>] replacement
|
165
168
|
@return [void]
|
166
169
|
|
170
|
+
@method set_text(start_row, start_col, end_row, end_col, replacement)
|
171
|
+
See +:h nvim_buf_set_text()+
|
172
|
+
@param [Integer] start_row
|
173
|
+
@param [Integer] start_col
|
174
|
+
@param [Integer] end_row
|
175
|
+
@param [Integer] end_col
|
176
|
+
@param [Array<String>] replacement
|
177
|
+
@return [void]
|
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
|
+
|
167
188
|
@method get_offset(index)
|
168
189
|
See +:h nvim_buf_get_offset()+
|
169
190
|
@param [Integer] index
|
@@ -197,11 +218,6 @@ module Neovim
|
|
197
218
|
@param [String] lhs
|
198
219
|
@return [void]
|
199
220
|
|
200
|
-
@method get_commands(opts)
|
201
|
-
See +:h nvim_buf_get_commands()+
|
202
|
-
@param [Hash] opts
|
203
|
-
@return [Hash]
|
204
|
-
|
205
221
|
@method set_var(name, value)
|
206
222
|
See +:h nvim_buf_set_var()+
|
207
223
|
@param [String] name
|
@@ -213,21 +229,6 @@ module Neovim
|
|
213
229
|
@param [String] name
|
214
230
|
@return [void]
|
215
231
|
|
216
|
-
@method get_option(name)
|
217
|
-
See +:h nvim_buf_get_option()+
|
218
|
-
@param [String] name
|
219
|
-
@return [Object]
|
220
|
-
|
221
|
-
@method set_option(name, value)
|
222
|
-
See +:h nvim_buf_set_option()+
|
223
|
-
@param [String] name
|
224
|
-
@param [Object] value
|
225
|
-
@return [void]
|
226
|
-
|
227
|
-
@method get_number
|
228
|
-
See +:h nvim_buf_get_number()+
|
229
|
-
@return [Integer]
|
230
|
-
|
231
232
|
@method get_name
|
232
233
|
See +:h nvim_buf_get_name()+
|
233
234
|
@return [String]
|
@@ -245,11 +246,94 @@ module Neovim
|
|
245
246
|
See +:h nvim_buf_is_valid()+
|
246
247
|
@return [Boolean]
|
247
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
|
+
|
248
262
|
@method get_mark(name)
|
249
263
|
See +:h nvim_buf_get_mark()+
|
250
264
|
@param [String] name
|
251
265
|
@return [Array<Integer>]
|
252
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_extmark_by_id(ns_id, id, opts)
|
309
|
+
See +:h nvim_buf_get_extmark_by_id()+
|
310
|
+
@param [Integer] ns_id
|
311
|
+
@param [Integer] id
|
312
|
+
@param [Hash] opts
|
313
|
+
@return [Array<Integer>]
|
314
|
+
|
315
|
+
@method get_extmarks(ns_id, start, end, opts)
|
316
|
+
See +:h nvim_buf_get_extmarks()+
|
317
|
+
@param [Integer] ns_id
|
318
|
+
@param [Object] start
|
319
|
+
@param [Object] end
|
320
|
+
@param [Hash] opts
|
321
|
+
@return [Array]
|
322
|
+
|
323
|
+
@method set_extmark(ns_id, line, col, opts)
|
324
|
+
See +:h nvim_buf_set_extmark()+
|
325
|
+
@param [Integer] ns_id
|
326
|
+
@param [Integer] line
|
327
|
+
@param [Integer] col
|
328
|
+
@param [Hash] opts
|
329
|
+
@return [Integer]
|
330
|
+
|
331
|
+
@method del_extmark(ns_id, id)
|
332
|
+
See +:h nvim_buf_del_extmark()+
|
333
|
+
@param [Integer] ns_id
|
334
|
+
@param [Integer] id
|
335
|
+
@return [Boolean]
|
336
|
+
|
253
337
|
@method add_highlight(ns_id, hl_group, line, col_start, col_end)
|
254
338
|
See +:h nvim_buf_add_highlight()+
|
255
339
|
@param [Integer] ns_id
|
@@ -266,20 +350,16 @@ module Neovim
|
|
266
350
|
@param [Integer] line_end
|
267
351
|
@return [void]
|
268
352
|
|
269
|
-
@method
|
270
|
-
See +:h
|
271
|
-
@param [
|
272
|
-
@
|
273
|
-
@param [Integer] line_end
|
274
|
-
@return [void]
|
353
|
+
@method get_option(name)
|
354
|
+
See +:h nvim_buf_get_option()+
|
355
|
+
@param [String] name
|
356
|
+
@return [Object]
|
275
357
|
|
276
|
-
@method
|
277
|
-
See +:h
|
278
|
-
@param [
|
279
|
-
@param [
|
280
|
-
@
|
281
|
-
@param [Hash] opts
|
282
|
-
@return [Integer]
|
358
|
+
@method set_option(name, value)
|
359
|
+
See +:h nvim_buf_set_option()+
|
360
|
+
@param [String] name
|
361
|
+
@param [Object] value
|
362
|
+
@return [void]
|
283
363
|
|
284
364
|
=end
|
285
365
|
end
|