300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
|
# File 'lib/textbringer/utils.rb', line 300
def read_key_sequence(prompt)
buffer = Buffer.current
key_sequence = []
map = Keymap.new
map.define_key("\C-g", :abort_recursive_edit)
map.handle_undefined_key do |key|
-> {
key_sequence.push(key)
cmd = buffer.keymap&.lookup(key_sequence) ||
GLOBAL_MAP.lookup(key_sequence)
if !cmd.is_a?(Keymap)
exit_recursive_edit
end
Buffer.current.clear
keys = Keymap.key_sequence_string(key_sequence)
Buffer.current.insert("#{keys}-")
}
end
read_from_minibuffer(prompt, keymap: map)
if buffer.keymap&.lookup(key_sequence) ||
GLOBAL_MAP.lookup(key_sequence)
key_sequence
else
keys = Keymap.key_sequence_string(key_sequence)
raise EditorError, "#{keys} is undefined"
end
end
|