pryline 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pryline.rb +77 -1
- data/lib/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e50f39f9558845777035a93b78401e6a8e5e728c6deb08c41dcf58fa8d0cfa7b
|
4
|
+
data.tar.gz: 7e3d56b328292df1428dad319a68e5170a171a6164d54654de61d76f618dc47a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3dca93b4bf451b89a252fe9688f4dea912136a4b0c2c4dbd480dd05676c21d71a3586a4ef091bca2491cd8a16bbf1f2db41ad208901b445733cbad2a863940d
|
7
|
+
data.tar.gz: 26a899608964fd93f5ee12ab956e535b9f97186cb3fa3d892ccaf513a6670f1dbf0148a76ec12f61c2de4b1c48c47d6f8ed40c28e0634dd04c2190f254d1999c
|
data/lib/pryline.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'fiddle'
|
2
|
+
require 'fiddle/import'
|
2
3
|
require 'forwardable'
|
3
4
|
require 'readline'
|
4
5
|
module Pryline
|
@@ -50,6 +51,17 @@ module Pryline
|
|
50
51
|
|
51
52
|
BLOCK_CALLERS = {}
|
52
53
|
|
54
|
+
# paren blink timeout
|
55
|
+
set_paren_blink_timeout = Fiddle::Function.new(
|
56
|
+
libreadline['rl_set_paren_blink_timeout'],
|
57
|
+
[Fiddle::TYPE_INT],
|
58
|
+
Fiddle::TYPE_INT
|
59
|
+
)
|
60
|
+
|
61
|
+
Pryline.define_singleton_method(:set_paren_blink_timeout) do |usec|
|
62
|
+
set_paren_blink_timeout.call(usec)
|
63
|
+
end
|
64
|
+
|
53
65
|
# accept line
|
54
66
|
accept_line = Fiddle::Function.new(
|
55
67
|
libreadline['rl_newline'],
|
@@ -174,11 +186,75 @@ module Pryline
|
|
174
186
|
)
|
175
187
|
end
|
176
188
|
|
189
|
+
# message
|
190
|
+
|
191
|
+
save_prompt = Fiddle::Function.new(libreadline['rl_save_prompt'], [Fiddle::TYPE_VOID], Fiddle::TYPE_INT)
|
192
|
+
Pryline.define_singleton_method(:save_prompt) do
|
193
|
+
save_prompt.call(nil)
|
194
|
+
end
|
195
|
+
set_message = Fiddle::Function.new(libreadline['rl_message'], [Fiddle::TYPE_UINTPTR_T], Fiddle::TYPE_INT)
|
196
|
+
Pryline.define_singleton_method(:set_message) do |message|
|
197
|
+
buffer, point = Pryline.line_buffer, Pryline.point
|
198
|
+
Pryline.delete_text
|
199
|
+
Pryline.point = 0
|
200
|
+
Pryline.redisplay
|
201
|
+
Pryline.save_prompt
|
202
|
+
Pryline.insert_text buffer
|
203
|
+
Pryline.point = point
|
204
|
+
set_message.call(
|
205
|
+
Fiddle::Pointer[message]
|
206
|
+
)
|
207
|
+
end
|
208
|
+
|
209
|
+
restore_prompt = Fiddle::Function.new(libreadline['rl_restore_prompt'], [Fiddle::TYPE_VOID], Fiddle::TYPE_INT)
|
210
|
+
Pryline.define_singleton_method(:restore_prompt) do
|
211
|
+
restore_prompt.call(nil)
|
212
|
+
end
|
213
|
+
clear_message = Fiddle::Function.new(libreadline['rl_clear_message'], [Fiddle::TYPE_VOID], Fiddle::TYPE_INT)
|
214
|
+
Pryline.define_singleton_method(:clear_message) do
|
215
|
+
Pryline.restore_prompt
|
216
|
+
clear_message.call(nil)
|
217
|
+
end
|
218
|
+
|
219
|
+
move_vert = Fiddle::Function.new(libreadline['_rl_move_vert'], [Fiddle::TYPE_INT], Fiddle::TYPE_VOID)
|
220
|
+
Pryline.define_singleton_method(:move_vert) do |dest|
|
221
|
+
move_vert.call(dest)
|
222
|
+
end
|
223
|
+
|
224
|
+
PromptLength = Fiddle::CStructBuilder.create(
|
225
|
+
Fiddle::CStruct,
|
226
|
+
[Fiddle::SIZEOF_INT],
|
227
|
+
%w(value)
|
228
|
+
).new(Fiddle::Pointer.new(libreadline.sym('rl_visible_prompt_length')).to_i)
|
229
|
+
Pryline.define_singleton_method(:prompt_width) { PromptLength.value }
|
230
|
+
|
231
|
+
LastCPos = Fiddle::CStructBuilder.create(
|
232
|
+
Fiddle::CStruct,
|
233
|
+
[Fiddle::SIZEOF_INT],
|
234
|
+
%w(value)
|
235
|
+
).new(Fiddle::Pointer.new(libreadline.sym('_rl_last_c_pos')).to_i)
|
236
|
+
Pryline.define_singleton_method(:last_c_pos) { LastCPos.value }
|
237
|
+
LastVPos = Fiddle::CStructBuilder.create(
|
238
|
+
Fiddle::CStruct,
|
239
|
+
[Fiddle::SIZEOF_INT],
|
240
|
+
%w(value)
|
241
|
+
).new(Fiddle::Pointer.new(libreadline.sym('_rl_last_v_pos')).to_i)
|
242
|
+
Pryline.define_singleton_method(:last_v_pos) { LastVPos.value }
|
243
|
+
ApplicationName = Fiddle::CStructBuilder.create(
|
244
|
+
Fiddle::CStruct,
|
245
|
+
[1],
|
246
|
+
%w(rl_readline_name)
|
247
|
+
).new(Fiddle::Pointer.new(libreadline.sym('rl_readline_name')).to_i)
|
248
|
+
Pryline.define_singleton_method(:application_name) { ApplicationName.rl_readline_name.to_s }
|
249
|
+
Pryline.define_singleton_method(:application_name=) do |name|
|
250
|
+
ApplicationName.rl_readline_name = Fiddle::Pointer[name]
|
251
|
+
end
|
252
|
+
|
177
253
|
# helpers
|
178
254
|
Pryline.define_singleton_method(:replace_buffer) do |new_contents|
|
179
255
|
Pryline.delete_text
|
180
256
|
Pryline.point = 0
|
181
|
-
Pryline.insert_text
|
257
|
+
Pryline.insert_text new_contents
|
182
258
|
Pryline.redisplay
|
183
259
|
end
|
184
260
|
@@loaded = true
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pryline
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Graham
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-10-06 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Adds rl_bind_key, rl_bind_keyseq, rl_newline, rl_unbind_key, rl_unbind_keyseq.
|
14
14
|
email: bcgraham+github@gmail.com
|
@@ -22,7 +22,7 @@ homepage: https://github.com/bcgraham/pryline
|
|
22
22
|
licenses:
|
23
23
|
- MIT
|
24
24
|
metadata: {}
|
25
|
-
post_install_message:
|
25
|
+
post_install_message:
|
26
26
|
rdoc_options: []
|
27
27
|
require_paths:
|
28
28
|
- lib
|
@@ -37,9 +37,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
37
37
|
- !ruby/object:Gem::Version
|
38
38
|
version: '0'
|
39
39
|
requirements:
|
40
|
-
- Readline 8.
|
41
|
-
rubygems_version: 3.
|
42
|
-
signing_key:
|
40
|
+
- Readline 8.1
|
41
|
+
rubygems_version: 3.1.4
|
42
|
+
signing_key:
|
43
43
|
specification_version: 4
|
44
44
|
summary: Extend Readline interface to more functions.
|
45
45
|
test_files: []
|