Skip to content

Commit 93df93e

Browse files
committed
Implement show-all-if-ambiguous feature
1 parent 90e43e0 commit 93df93e

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

lib/reline/line_editor.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -880,6 +880,7 @@ def editing_mode
880880
@perfect_matched = completed
881881
else
882882
@completion_state = CompletionState::MENU
883+
complete(list, just_show_list) if @config.show_all_if_ambiguous
883884
end
884885
if not just_show_list and target < completed
885886
@buffer_of_lines[@line_index] = (preposing + completed + completion_append_character.to_s + postposing).split("\n")[@line_index] || String.new(encoding: @encoding)

test/reline/yamatanooroti/test_rendering.rb

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -991,6 +991,33 @@ def test_completion_journey_with_empty_line
991991
EOC
992992
end
993993

994+
def test_completion_menu_is_displayed_horizontally
995+
start_terminal(20, 50, %W{ruby -I#{@pwd}/lib #{@pwd}/test/reline/yamatanooroti/multiline_repl --complete}, startup_message: 'Multiline REPL.')
996+
write("S\t\t")
997+
close
998+
assert_screen(<<~'EOC')
999+
Multiline REPL.
1000+
prompt> S
1001+
ScriptError String
1002+
Signal SyntaxError
1003+
EOC
1004+
end
1005+
1006+
def test_show_all_if_ambiguous_on
1007+
write_inputrc <<~LINES
1008+
set show-all-if-ambiguous on
1009+
LINES
1010+
start_terminal(20, 50, %W{ruby -I#{@pwd}/lib #{@pwd}/test/reline/yamatanooroti/multiline_repl --complete}, startup_message: 'Multiline REPL.')
1011+
write("S\t")
1012+
close
1013+
assert_screen(<<~'EOC')
1014+
Multiline REPL.
1015+
prompt> S
1016+
ScriptError String
1017+
Signal SyntaxError
1018+
EOC
1019+
end
1020+
9941021
def test_simple_dialog
9951022
iterate_over_face_configs do |config_name, config_file|
9961023
start_terminal(20, 50, %W{ruby -I#{@pwd}/lib -r#{config_file.path} #{@pwd}/test/reline/yamatanooroti/multiline_repl --dialog simple}, startup_message: 'Multiline REPL.')

0 commit comments

Comments
 (0)