From 538b7fa81bf73710ff4d596807386a7d8524ede4 Mon Sep 17 00:00:00 2001 From: mattirn Date: Tue, 8 Dec 2020 12:59:48 +0100 Subject: [PATCH] Option group-persist: after double tab keep candidates grouped, fixes #613 --- reader/src/main/java/org/jline/reader/LineReader.java | 2 ++ .../src/main/java/org/jline/reader/impl/LineReaderImpl.java | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/reader/src/main/java/org/jline/reader/LineReader.java b/reader/src/main/java/org/jline/reader/LineReader.java index 6850a7693..ffdfc0955 100644 --- a/reader/src/main/java/org/jline/reader/LineReader.java +++ b/reader/src/main/java/org/jline/reader/LineReader.java @@ -400,6 +400,8 @@ enum Option { RECOGNIZE_EXACT, /** display group name before each group (else display all group names first) */ GROUP(true), + /** when double tab to select candidate keep candidates grouped (else loose grouping) */ + GROUP_PERSIST(false), /** if completion is case insensitive or not */ CASE_INSENSITIVE, LIST_AMBIGUOUS, diff --git a/reader/src/main/java/org/jline/reader/impl/LineReaderImpl.java b/reader/src/main/java/org/jline/reader/impl/LineReaderImpl.java index fa9eefafb..9ec6990f5 100644 --- a/reader/src/main/java/org/jline/reader/impl/LineReaderImpl.java +++ b/reader/src/main/java/org/jline/reader/impl/LineReaderImpl.java @@ -4927,8 +4927,10 @@ protected boolean doMenu(List original, String completed, BiFunction< // candidate grouping is not supported by MenuSupport boolean defaultAutoGroup = isSet(Option.AUTO_GROUP); boolean defaultGroup = isSet(Option.GROUP); - option(Option.AUTO_GROUP, false); - option(Option.GROUP, false); + if (!isSet(Option.GROUP_PERSIST)) { + option(Option.AUTO_GROUP, false); + option(Option.GROUP, false); + } // Build menu support MenuSupport menuSupport = new MenuSupport(original, completed, escaper); post = menuSupport;