[ruby/reline] Cut out the autocomplete callback

46aa2694da
This commit is contained in:
aycabta 2021-08-27 03:45:27 +09:00
parent 164e486225
commit acffb0b068

View file

@ -177,18 +177,14 @@ module Reline
Reline::IOGate.get_screen_size
end
def readmultiline(prompt = '', add_hist = false, &confirm_multiline_termination)
unless confirm_multiline_termination
raise ArgumentError.new('#readmultiline needs block to confirm multiline termination')
end
@dialog_proc = ->() {
DEFAULT_DIALOG_PROC_AUTOCOMPLETE = ->() {
# autocomplete
if just_cursor_moving and completion_journey_data.nil?
# Auto complete starts only when edited
return nil
end
pre, target, post= retrieve_completion_block(true)
if target.nil? or target.empty?
if target.nil? or target.empty?# or target.size <= 3
return nil
end
if completion_journey_data and completion_journey_data.list
@ -212,6 +208,12 @@ module Reline
end
[Reline::CursorPos.new(x, y), result, pointer]
}
def readmultiline(prompt = '', add_hist = false, &confirm_multiline_termination)
unless confirm_multiline_termination
raise ArgumentError.new('#readmultiline needs block to confirm multiline termination')
end
@dialog_proc = DEFAULT_DIALOG_PROC_AUTOCOMPLETE
inner_readline(prompt, add_hist, true, &confirm_multiline_termination)
whole_buffer = line_editor.whole_buffer.dup