Ich frage mich, wie ich eine ArgumentCompleter
so implementieren könnte, dass, wenn ich einen vollständigen und gültigen Befehl abschließe, würde die Registerkarte für einen neuen Befehl abgeschlossen werden.Verwenden Sie JLine, um mehrere Befehle in einer Zeile zu vervollständigen
Ich hätte angenommen, es so etwas wie diese konstruiert tun könnte:
final ConsoleReader consoleReader = new ConsoleReader()
final ArgumentCompleter cyclicalArgument = new ArgumentCompleter();
cyclicalArgument.getCompleters().addAll(Arrays.asList(
new StringsCompleter("foo"),
new StringsCompleter("bar"),
cyclicalArgument));
consoleReader.addCompleter(cyclicalArgument);
consoleReader.readLine();
jetzt jedoch diese stoppt, nachdem Reiter arbeiten, um die erste foo bar
completeing Ist jemand vertraut genug mit der Bibliothek, mir zu sagen Wie würde ich das umsetzen? Oder gibt es eine bekannte Möglichkeit, dies zu tun, die ich vermisse? Auch dies verwendet JLine2.
Hmm ,. Das wird also einige größere Änderungen erfordern, als ich dachte. Danke für die Einsicht! – flakes
Zumindest scheint es, Sie können es nicht durch einige Config aktivieren. Sie können jedoch eine Standardimplementierung erstellen und sie für Ihre nächsten Klassen übernehmen. –