nvim 1.6.0 → 1.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dbd0024450444336d8516c543f5bf6b9ac1f0a6a08a8e342f03a413e20794bcd
4
- data.tar.gz: 5ecd7b84dccc752f82aaf303ad146e5b7462478bc8a58eb25f70fb9393b30e6f
3
+ metadata.gz: d91e5ad07b2fd0ea6dd1da251df0e55dad1312b3ac4fa585cae59658dbccf666
4
+ data.tar.gz: bde8ff51d7a22f70aca3c58f83051b32357f0d56603bdbd7ce209ce6acf94de9
5
5
  SHA512:
6
- metadata.gz: 5dfce6dc61d6c2910f8e1a273324682524246f92c9b7f9d62c8a6c9b915852b7d359b02435039105d6bcf811719a3f9e6a8579f8851f87e0c49e7f8b0182d389
7
- data.tar.gz: 1b58e82f140457815c0ff571aff1a209f591ff3f301269140685f0a5098d3efc315c318797fb22ea10d77c2ab34536f0c220a4ee6cc62c03a5da46a1150992c7
6
+ metadata.gz: c5d55983ed98e326fe1a5a6c15e764ac0a3aff858dadf3538c6edcee5339d7fb117b33984d80334d2fb18d7f8fbd505d89ca854aec09bbbf6513c07b5f9c48ee
7
+ data.tar.gz: c7dc22c69ddcb550b1d1a412963788b33f77337f5520ea87bc4bf2edabed162bcd59402e605eac6a46109c1953994024f88211c2d21af12efb9722e3eab36422
data/INFO.yaml CHANGED
@@ -3,7 +3,7 @@
3
3
  #
4
4
 
5
5
  nvim:
6
- version: 1.6.0
6
+ version: 1.6.1
7
7
  license: BSD-2-Clause+
8
8
  authors:
9
9
  - Bertram Scharpf
data/README.md CHANGED
@@ -411,7 +411,7 @@ main:1:004> \q!!
411
411
  Put text into an X selection or a TMux register.
412
412
 
413
413
  ```vim
414
- let g:ruby_require = "neovim/tools/copy"
414
+ rubyfile <neovim/tools/copy>
415
415
  '<,'>ruby xsel $lines
416
416
  '<,'>ruby xsel! $lines
417
417
  '<,'>ruby tmuxbuf $lines
@@ -421,10 +421,10 @@ Make a hex dump.
421
421
 
422
422
  ```vim
423
423
  ruby <<EOT
424
- require "neovim/foreign/xxd"
424
+ require "neovim/foreign/nxxd"
425
425
  bn = $curbuf.get_name
426
426
  $vim.command :enew!
427
- File.open bn do |b| Xxd::Dump.new.run b do |l| $vim.put [l], "l", false, true end end
427
+ File.open bn do |b| Nxxd::Dump.new.run b do |l| $vim.put [l], "l", false, true end end
428
428
  EOT
429
429
  ```
430
430
 
data/Rakefile CHANGED
@@ -51,7 +51,7 @@ end
51
51
 
52
52
 
53
53
  task :diffdeps do
54
- %w(mplight).each { |gem|
54
+ %w(mplight nxxd).each { |gem|
55
55
  c = `gem contents #{gem}`
56
56
  unless $?.success? then
57
57
  puts "Gem #{gem} not installed. Cannot compare."
@@ -1,19 +1,20 @@
1
1
  #
2
- # neovim/foreign/xxd.rb -- Xxd reimplementation
2
+ # neovim/foreign/nxxd.rb -- Hex Dump Tool
3
3
  #
4
4
 
5
5
  # The purpose of this is simply to reduce dependencies.
6
6
 
7
7
  begin
8
- require "xxd"
8
+ require "nxxd"
9
9
  rescue LoadError
10
10
 
11
11
  # ----------------------------------------------------------------
12
12
  #
13
- # xxd.rb -- A Reimplementation of Xxd in plain Ruby
13
+ # nxxd.rb -- Hex Dump Tool
14
14
  #
15
15
 
16
- module Xxd
16
+
17
+ module Nxxd
17
18
 
18
19
  module ReadChunks
19
20
 
@@ -87,53 +88,44 @@ module Xxd
87
88
  addr += b.size
88
89
  end
89
90
  yield @addr_fmt % addr
91
+ nil
90
92
  end
91
93
 
94
+
92
95
  class <<self
93
96
 
94
- def reverse input
95
- r = nil
96
- pos = 0
97
- repeat = false
97
+ def reverse input, output = nil
98
+ output ||= ""
99
+ o = String === output ? (WriteChunksString.new output) : output
100
+ o.set_encoding Encoding::ASCII_8BIT
101
+ r, repeat = nil, false
98
102
  input.each_line { |l|
103
+ l.chomp!
99
104
  case l
100
- when /^\s*#/ then
101
- when /^\*/ then repeat = true
102
- else
103
- if (l.slice! /^(\h+):\s*/) then
105
+ when /^\s*(?:#|$)/ then nil
106
+ when /^\*/ then repeat = true
107
+ when /^(?:(\h+):)?\s*((?:\h\h ?)*)/ then
108
+ addr, nibs = $~.captures
109
+ if addr then
104
110
  addr = $1.to_i 0x10
105
111
  if repeat then
106
- while pos + r.length < addr do
107
- yield r
108
- pos += r.length
109
- end
110
- if pos < addr then
111
- yield r[ 0, addr - pos]
112
- pos = addr
112
+ loop do
113
+ s = addr - o.tell
114
+ break if s <= 0
115
+ o.write s >= r.length ? r : r[ 0, s]
113
116
  end
114
117
  repeat = false
115
118
  else
116
- if pos < addr then
117
- r = ([0].pack "C*") * (addr - pos)
118
- yield r
119
- pos = addr
120
- elsif pos > addr then
121
- yield nil, addr
122
- pos = addr
123
- end
124
119
  end
120
+ o.seek addr
125
121
  end
126
- row = []
127
- while (nib = l.slice! /^\h\h ?/) do
128
- row.push nib.to_i 0x10
129
- end
130
- if row.any? then
131
- r = row.pack "C*"
132
- yield r
133
- pos += r.length
134
- end
122
+ r = (nibs.scan /\h\h/).map { |x| x.to_i 0x10 }.pack "C*"
123
+ o.write r
124
+ else
125
+ raise "Uninterpretable hex dump: #{l.chomp}"
135
126
  end
136
127
  }
128
+ output
137
129
  end
138
130
 
139
131
  end
@@ -161,12 +153,13 @@ module Xxd
161
153
  def run input, &block
162
154
  if @varname then
163
155
  yield "unsigned char #@varname[] = {"
164
- yield "};"
165
156
  len = run_plain input, &block
157
+ yield "};"
166
158
  yield "unsigned int #@varname\_len = %d;" % len
167
159
  else
168
160
  run_plain input, &block
169
161
  end
162
+ nil
170
163
  end
171
164
 
172
165
  private
@@ -187,6 +180,34 @@ module Xxd
187
180
 
188
181
  end
189
182
 
183
+ class WriteChunksString
184
+ def initialize str
185
+ @str = str
186
+ end
187
+ def set_encoding enc
188
+ @str.force_encoding enc
189
+ end
190
+ def tell ; @pos || @str.length ; end
191
+ def seek pos
192
+ s = pos - @str.length
193
+ if s >= 0 then
194
+ s.times { @str << "\0".b }
195
+ else
196
+ @pos = pos
197
+ end
198
+ end
199
+ def write b
200
+ if @pos then
201
+ l = b.length
202
+ @str[ @pos, l] = b
203
+ @pos += l
204
+ @pos = nil if @pos >= @str.length
205
+ else
206
+ @str << b
207
+ end
208
+ end
209
+ end
210
+
190
211
  end
191
212
 
192
213
  # ----------------------------------------------------------------
data/lib/neovim/info.rb CHANGED
@@ -1,10 +1,10 @@
1
1
  require "neovim/meta.rb"
2
2
  Neovim::INFO = Neovim::Meta.new "nvim",
3
- version: "1.6.0",
3
+ version: "1.6.1",
4
4
  license: "BSD-2-Clause+",
5
5
  authors: ["Bertram Scharpf"],
6
6
  email: "software@bertram-scharpf.de",
7
7
  summary: "Yet another Ruby client for Neovim",
8
8
  description: "A simple Ruby client for Neovim.\nClean code, minimal dependecies, no frills, no wokeness.",
9
9
  homepage: "https://github.com/BertramScharpf/ruby-nvim",
10
- commit: "b2ddce4"
10
+ commit: "4e96338"
data/nvim.gemspec CHANGED
@@ -25,6 +25,7 @@ Gem::Specification.new do |spec|
25
25
  if false then
26
26
  spec.add_dependency "supplement", "~> 2.18"
27
27
  spec.add_dependency "mplight", "~> 1.0"
28
+ spec.add_dependency "nxxd", "~> 1.0"
28
29
  end
29
30
 
30
31
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nvim
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bertram Scharpf
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-01-26 00:00:00.000000000 Z
10
+ date: 2025-02-02 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  email: software@bertram-scharpf.de
13
13
  executables:
@@ -46,9 +46,9 @@ files:
46
46
  - lib/neovim/connection.rb
47
47
  - lib/neovim/foreign/mplight.rb
48
48
  - lib/neovim/foreign/mplight/bufferio.rb
49
+ - lib/neovim/foreign/nxxd.rb
49
50
  - lib/neovim/foreign/supplement.rb
50
51
  - lib/neovim/foreign/supplement/socket.rb
51
- - lib/neovim/foreign/xxd.rb
52
52
  - lib/neovim/handler.rb
53
53
  - lib/neovim/host.rb
54
54
  - lib/neovim/info.rb