This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/karaf.git


The following commit(s) were added to refs/heads/master by this push:
     new 801745b  [KARAF-5665] Sometimes the command description does not show 
when listing commands with "TAB"
801745b is described below

commit 801745b1faf758e73480212c3d4ec74d2e1b372e
Author: Guillaume Nodet <gno...@gmail.com>
AuthorDate: Tue Mar 13 08:11:30 2018 +0100

    [KARAF-5665] Sometimes the command description does not show when listing 
commands with "TAB"
---
 .../karaf/shell/impl/console/ConsoleSessionImpl.java  | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git 
a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java
 
b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java
index 075c10a..12c5519 100644
--- 
a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java
+++ 
b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java
@@ -66,14 +66,7 @@ import 
org.apache.karaf.shell.support.completers.FileOrUriCompleter;
 import org.apache.karaf.shell.support.completers.UriCompleter;
 import org.apache.karaf.util.filesstream.FilesStream;
 import org.jline.builtins.Completers;
-import org.jline.reader.Completer;
-import org.jline.reader.EndOfFileException;
-import org.jline.reader.LineReader;
-import org.jline.reader.LineReaderBuilder;
-import org.jline.reader.MaskingCallback;
-import org.jline.reader.ParsedLine;
-import org.jline.reader.SyntaxError;
-import org.jline.reader.UserInterruptException;
+import org.jline.reader.*;
 import org.jline.terminal.Terminal.Signal;
 import org.jline.terminal.impl.DumbTerminal;
 import org.osgi.service.event.EventAdmin;
@@ -166,6 +159,7 @@ public class ConsoleSessionImpl implements Session {
         Completer completer =  (rdr, line, candidates) -> {
             builtinCompleter.complete(rdr, line, candidates);
             commandsCompleter.complete(rdr, line, candidates);
+            merge(candidates);
         };
 
         // Masking
@@ -237,6 +231,15 @@ public class ConsoleSessionImpl implements Session {
 
     }
 
+    private void merge(List<Candidate> candidates) {
+        Map<String, Candidate> map = new HashMap<>();
+        for (Candidate c : candidates) {
+            map.merge(c.value(), c, (c1, c2) -> c1.descr() != null ? c1 : c2);
+        }
+        candidates.clear();
+        candidates.addAll(map.values());
+    }
+
     private Completer createBuiltinCompleter() {
         Completers.CompletionEnvironment env = new 
Completers.CompletionEnvironment() {
             @Override

-- 
To stop receiving notification emails like this one, please contact
gno...@apache.org.

Reply via email to