The completion_append_character seems to be appended when there are still more autocomplete values available
This is my current code:
require 'reline'
COMPLETION_VALUES = ['my_dir/http/linux/apache', 'my_dir/http/linux/ngnix', 'my_dir/windows/chrome', 'my_dir/linux/enum'].freeze
tab_complete_lambda = proc do |_str, _preposing = nil, _postposing = nil|
COMPLETION_VALUES
end
begin
prompt = 'Prompt > '
use_history = false
getting_input = true
Reline.completion_append_character = ' '
Reline.completion_proc = tab_complete_lambda
while getting_input
text = Reline.readmultiline(prompt, use_history) do |multiline_input|
# Accept the input until 'end' is entered
multiline_input.split.last == 'end'
end
getting_input = false
puts 'You entered:'
puts text
end
# If you want to exit, type Ctrl-C
rescue Interrupt
puts '^C'
end
Current Behaviour
Type in my_<TAB>
I receive my_dir/<SPACE>
The space is unexpected as I can still auto-complete more things.
Expected behaviour
Type in my_<TAB>
I receive my_dir/ (No space)
I can continue to tab the remaining completions my_dir/<tab> and receive my_dir/http/linux as a completion
The space is should not be appended - as there's still more values to be tab-completed, such as my_dir/http/linux etc
Potential fix
It looks like we might not want to append completion_append_character if there are still more items available in the completion_proc list:
Description
The
completion_append_character
seems to be appended when there are still more autocomplete values availableThis is my current code:
Current Behaviour
my_<TAB>
my_dir/<SPACE>
The space is unexpected as I can still auto-complete more things.
Expected behaviour
my_<TAB>
my_dir/
(No space)my_dir/<tab>
and receivemy_dir/http/linux
as a completionThe space is should not be appended - as there's still more values to be tab-completed, such as
my_dir/http/linux
etcPotential fix
It looks like we might not want to append
completion_append_character
if there are still more items available in thecompletion_proc
list:https://github.com/ruby/reline/blob/7534f7f92ad6ec5e38d7b404942cd7f30e3c1327/lib/reline/line_editor.rb#L880-L884
Terminal Emulator
MacOS Terminal
Reline Version
0.5.10