nvim 1.0.0
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 +7 -0
- data/INFO.yaml +18 -0
- data/LICENSE +52 -0
- data/README.md +264 -0
- data/Rakefile +68 -0
- data/bin/neovim-ruby-host +51 -0
- data/lib/neovim/client.rb +108 -0
- data/lib/neovim/connection.rb +129 -0
- data/lib/neovim/foreign/mplight/bufferio.rb +51 -0
- data/lib/neovim/foreign/mplight.rb +327 -0
- data/lib/neovim/foreign/supplement/socket.rb +20 -0
- data/lib/neovim/foreign/supplement.rb +34 -0
- data/lib/neovim/handler.rb +139 -0
- data/lib/neovim/host.rb +87 -0
- data/lib/neovim/info.rb +10 -0
- data/lib/neovim/logging.rb +249 -0
- data/lib/neovim/messager.rb +185 -0
- data/lib/neovim/meta.rb +68 -0
- data/lib/neovim/remote.rb +56 -0
- data/lib/neovim/remote_object.rb +331 -0
- data/lib/neovim/ruby_provider.rb +372 -0
- data/lib/neovim/session.rb +60 -0
- data/lib/neovim/vimscript_provider.rb +49 -0
- data/lib/neovim.rb +22 -0
- metadata +66 -0
@@ -0,0 +1,60 @@
|
|
1
|
+
#
|
2
|
+
# neovim/session.rb -- Sessions
|
3
|
+
#
|
4
|
+
|
5
|
+
require "neovim/foreign/supplement"
|
6
|
+
|
7
|
+
require "neovim/logging"
|
8
|
+
require "neovim/connection"
|
9
|
+
require "neovim/messager"
|
10
|
+
|
11
|
+
|
12
|
+
module Neovim
|
13
|
+
|
14
|
+
class Session
|
15
|
+
|
16
|
+
include Logging
|
17
|
+
|
18
|
+
class <<self
|
19
|
+
|
20
|
+
private :new
|
21
|
+
|
22
|
+
def open conntype, *args, **kwargs
|
23
|
+
conntype.open_files *args, **kwargs do |conn|
|
24
|
+
yield (new conn)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
include Logging
|
29
|
+
|
30
|
+
def start *args
|
31
|
+
open_logfile do
|
32
|
+
log :info, "Starting", args: $*
|
33
|
+
open *args do |i|
|
34
|
+
yield i
|
35
|
+
end
|
36
|
+
ensure
|
37
|
+
log :info, "Leaving"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
def initialize conn
|
44
|
+
@conn = conn
|
45
|
+
@comm = Messager.new @conn, self
|
46
|
+
end
|
47
|
+
|
48
|
+
def execute_handler name, args
|
49
|
+
raise "No handler found for #{name.inspect}."
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
def run ; @comm.run ; end
|
54
|
+
def request method, *args ; @comm.request method, *args ; end
|
55
|
+
def notify method, *args ; @comm.notify method, *args ; end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
@@ -0,0 +1,49 @@
|
|
1
|
+
#
|
2
|
+
# neovim/vimscript_provider.rb -- Remote Plugin
|
3
|
+
#
|
4
|
+
|
5
|
+
require "neovim/handler"
|
6
|
+
|
7
|
+
|
8
|
+
module Neovim
|
9
|
+
|
10
|
+
class DslVimscript < DslBase
|
11
|
+
|
12
|
+
TYPE = :rplugin
|
13
|
+
|
14
|
+
def initialize source
|
15
|
+
super
|
16
|
+
@source = source
|
17
|
+
end
|
18
|
+
|
19
|
+
def command name, sync: true, **options, &block
|
20
|
+
# Options: range/count bang register nargs complete bar
|
21
|
+
register_handler :command, name, sync, **options, &block
|
22
|
+
end
|
23
|
+
|
24
|
+
def function name, sync: true, **options, &block
|
25
|
+
# Options: range eval
|
26
|
+
register_handler :function, name, sync, **options, &block
|
27
|
+
end
|
28
|
+
|
29
|
+
def autocmd event, **options, &block
|
30
|
+
# Options: group pattern nested once eval
|
31
|
+
register_handler :autocmd, event, true, **options, &block
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def register_handler type, name, sync, **opts
|
37
|
+
acp = opts[ :pattern]||"*" if type == :autocmd
|
38
|
+
qn = [ @source, type, name, *acp].join ":"
|
39
|
+
add_handler qn, name, type, sync, **opts do |client,*args|
|
40
|
+
args, range, evaled = *args
|
41
|
+
range = Range.new *range if range
|
42
|
+
yield client, args, range, evaled
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
data/lib/neovim.rb
ADDED
metadata
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: nvim
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Bertram Scharpf
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-07-13 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description:
|
14
|
+
email: software@bertram-scharpf.de
|
15
|
+
executables:
|
16
|
+
- neovim-ruby-host
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- INFO.yaml
|
21
|
+
- LICENSE
|
22
|
+
- README.md
|
23
|
+
- Rakefile
|
24
|
+
- bin/neovim-ruby-host
|
25
|
+
- lib/neovim.rb
|
26
|
+
- lib/neovim/client.rb
|
27
|
+
- lib/neovim/connection.rb
|
28
|
+
- lib/neovim/foreign/mplight.rb
|
29
|
+
- lib/neovim/foreign/mplight/bufferio.rb
|
30
|
+
- lib/neovim/foreign/supplement.rb
|
31
|
+
- lib/neovim/foreign/supplement/socket.rb
|
32
|
+
- lib/neovim/handler.rb
|
33
|
+
- lib/neovim/host.rb
|
34
|
+
- lib/neovim/info.rb
|
35
|
+
- lib/neovim/logging.rb
|
36
|
+
- lib/neovim/messager.rb
|
37
|
+
- lib/neovim/meta.rb
|
38
|
+
- lib/neovim/remote.rb
|
39
|
+
- lib/neovim/remote_object.rb
|
40
|
+
- lib/neovim/ruby_provider.rb
|
41
|
+
- lib/neovim/session.rb
|
42
|
+
- lib/neovim/vimscript_provider.rb
|
43
|
+
homepage: http://bertram-scharpf.de
|
44
|
+
licenses:
|
45
|
+
- BSD-2-Clause+
|
46
|
+
metadata: {}
|
47
|
+
post_install_message:
|
48
|
+
rdoc_options: []
|
49
|
+
require_paths:
|
50
|
+
- lib
|
51
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 3.0.0
|
56
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
61
|
+
requirements: []
|
62
|
+
rubygems_version: 3.5.6
|
63
|
+
signing_key:
|
64
|
+
specification_version: 4
|
65
|
+
summary: Yet another Ruby client for Neovim
|
66
|
+
test_files: []
|