Revert "Auto-insert prompt menu completions on <ret> if any text was entered"

Unfortunately this breaks some pretty useful use cases, such as inserting a
command ending with a new-line (as it now leads to an addtional command being
auto-completed on validation)

This reverts commit aab0be529f.
This commit is contained in:
Maxime Coste 2020-11-17 07:03:14 +11:00
parent 27e95ed657
commit 14dbe63b4f

View File

@ -771,16 +771,16 @@ public:
{ {
const String& line = m_line_editor.line(); const String& line = m_line_editor.line();
auto can_auto_insert_completion = [&] (bool check_token) { auto can_auto_insert_completion = [&] {
const bool has_completions = not m_completions.candidates.empty(); const bool has_completions = not m_completions.candidates.empty();
const bool completion_selected = m_current_completion != -1; const bool completion_selected = m_current_completion != -1;
const bool text_entered = check_token ? m_completions.start != line.byte_count_to(m_line_editor.cursor_pos()) : !line.empty(); const bool text_entered = m_completions.start != line.byte_count_to(m_line_editor.cursor_pos());
return has_completions and not completion_selected and text_entered; return has_completions and not completion_selected and text_entered;
}; };
if (key == Key::Return) if (key == Key::Return)
{ {
if ((m_completions.flags & Completions::Flags::Menu) and can_auto_insert_completion(false)) if ((m_completions.flags & Completions::Flags::Menu) and can_auto_insert_completion())
{ {
const String& completion = m_completions.candidates.front(); const String& completion = m_completions.candidates.front();
m_line_editor.insert_from(line.char_count_to(m_completions.start), m_line_editor.insert_from(line.char_count_to(m_completions.start),
@ -999,7 +999,7 @@ public:
if (key == ' ' and if (key == ' ' and
(m_completions.flags & Completions::Flags::Menu) and (m_completions.flags & Completions::Flags::Menu) and
not (m_completions.flags & Completions::Flags::Quoted) and // if token is quoted, this space does not end it not (m_completions.flags & Completions::Flags::Quoted) and // if token is quoted, this space does not end it
can_auto_insert_completion(true)) can_auto_insert_completion())
m_line_editor.insert_from(line.char_count_to(m_completions.start), m_line_editor.insert_from(line.char_count_to(m_completions.start),
m_completions.candidates.front()); m_completions.candidates.front());