You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by cs...@apache.org on 2017/08/01 12:16:23 UTC
karaf git commit: Refactor completer creation
Repository: karaf
Updated Branches:
refs/heads/master ff6d8a08d -> a4d996815
Refactor completer creation
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/a4d99681
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/a4d99681
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/a4d99681
Branch: refs/heads/master
Commit: a4d9968156355d07ec55a21476aa5c95c7dbd839
Parents: ff6d8a0
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Tue Aug 1 13:48:27 2017 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Tue Aug 1 13:48:27 2017 +0200
----------------------------------------------------------------------
.../shell/impl/console/ConsoleSessionImpl.java | 63 +++++++++++---------
1 file changed, 34 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/a4d99681/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java
----------------------------------------------------------------------
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 3efac34..f787f31 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
@@ -144,32 +144,12 @@ public class ConsoleSessionImpl implements Session {
jlineTerminal.output());
// Completers
- Completers.CompletionEnvironment env = new Completers.CompletionEnvironment() {
- @Override
- public Map<String, List<Completers.CompletionData>> getCompletions() {
- return Shell.getCompletions(session);
- }
- @Override
- public Set<String> getCommands() {
- return Shell.getCommands(session);
- }
- @Override
- public String resolveCommand(String command) {
- return Shell.resolve(session, command);
- }
- @Override
- public String commandName(String command) {
- int idx = command.indexOf(':');
- return idx >= 0 ? command.substring(idx + 1) : command;
- }
- @Override
- public Object evaluate(LineReader reader, ParsedLine line, String func) throws Exception {
- session.put(Shell.VAR_COMMAND_LINE, line);
- return session.execute(func);
- }
- };
- Completer builtinCompleter = new org.jline.builtins.Completers.Completer(env);
+ Completer builtinCompleter = createBuiltinCompleter();
CommandsCompleter commandsCompleter = new CommandsCompleter(factory, this);
+ Completer completer = (rdr, line, candidates) -> {
+ builtinCompleter.complete(rdr, line, candidates);
+ commandsCompleter.complete(rdr, line, candidates);
+ };
// Console reader
reader = LineReaderBuilder.builder()
@@ -178,10 +158,7 @@ public class ConsoleSessionImpl implements Session {
.variables(((CommandSessionImpl) session).getVariables())
.highlighter(new org.apache.felix.gogo.jline.Highlighter(session))
.parser(new KarafParser(this))
- .completer((rdr, line, candidates) -> {
- builtinCompleter.complete(rdr, line, candidates);
- commandsCompleter.complete(rdr, line, candidates);
- })
+ .completer(completer)
.build();
// History
@@ -235,6 +212,34 @@ public class ConsoleSessionImpl implements Session {
}
+ private Completer createBuiltinCompleter() {
+ Completers.CompletionEnvironment env = new Completers.CompletionEnvironment() {
+ @Override
+ public Map<String, List<Completers.CompletionData>> getCompletions() {
+ return Shell.getCompletions(session);
+ }
+ @Override
+ public Set<String> getCommands() {
+ return Shell.getCommands(session);
+ }
+ @Override
+ public String resolveCommand(String command) {
+ return Shell.resolve(session, command);
+ }
+ @Override
+ public String commandName(String command) {
+ int idx = command.indexOf(':');
+ return idx >= 0 ? command.substring(idx + 1) : command;
+ }
+ @Override
+ public Object evaluate(LineReader reader, ParsedLine line, String func) throws Exception {
+ session.put(Shell.VAR_COMMAND_LINE, line);
+ return session.execute(func);
+ }
+ };
+ return new org.jline.builtins.Completers.Completer(env);
+ }
+
/**
* Subclasses can override to use a different history file.
*