From e85af0ea91458146870feaa59f3dbad8134e0c9f Mon Sep 17 00:00:00 2001 From: mattirn Date: Sat, 7 Dec 2019 09:07:19 +0100 Subject: [PATCH] CommandRegistry: added two static helper methods, #480 --- .../org/jline/builtins/CommandRegistry.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/builtins/src/main/java/org/jline/builtins/CommandRegistry.java b/builtins/src/main/java/org/jline/builtins/CommandRegistry.java index df53cc092..c430cbcc7 100644 --- a/builtins/src/main/java/org/jline/builtins/CommandRegistry.java +++ b/builtins/src/main/java/org/jline/builtins/CommandRegistry.java @@ -17,6 +17,28 @@ public interface CommandRegistry { + /** + * Aggregate SystemCompleters of commandRegisteries + * @return uncompiled SystemCompleter + */ + static Completers.SystemCompleter aggregateCompleters(CommandRegistry ... commandRegistries) { + Completers.SystemCompleter out = new Completers.SystemCompleter(); + for (CommandRegistry r: commandRegistries) { + out.add(r.compileCompleters()); + } + return out; + } + + /** + * Aggregate and compile SystemCompleters of commandRegisteries + * @return compiled SystemCompleter + */ + static Completers.SystemCompleter compileCompleters(CommandRegistry ... commandRegistries) { + Completers.SystemCompleter out = aggregateCompleters(commandRegistries); + out.compile(); + return out; + } + /** * Returns the command names known by this registry. * @return the set of known command names, excluding aliases