neovim 0.9.0.pre.1 → 0.9.1
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 +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
|