Один заголовок в выводе справки JLine 3
Как настроить команду справки в JLine 3? Справка в моем примере оболочки JLine 3 отображается как:
manager> help
System:
exit exit from app/script
help command help
Builtins:
ShellCommandRegistry:
create Create some stuff with minimal fuss...
delete Deletes some stuff with minimal fuss...
list List some stuff with minimal fuss...
Я хотел бы заменить заголовки разделов ("Система:", "Встроенные:" и "ShellCommandRegistry:") одним заголовком "Команды:", например:
manager> help
Commands:
exit exit from app/script
help command help
create Create some stuff with minimal fuss...
delete Deletes some stuff with minimal fuss...
list List some stuff with minimal fuss...
Есть идеи, как управлять этим в JLine 3?
2 ответа
Использование jline 3.20.0:
Я написал свой собственный реестр и зарегистрировал другой в этом, например:
MyAppCommands myAppCommands = new MyAppCommands(parser, terminal, workDir, null);
myAppCommands.setCommandRegistries(builtins, picocliCommands);
myAppCommands.register("help", myAppCommands);
где MyAppCommands расширяет SystemRegistryImpl. Затем команда справки показывает только имя класса «MyAppCommands:»
Поэтому, если вы назовете свой класс реестра «Команды», вы получите желаемый результат!
На данный момент невозможно настроить группировку команд.
Будет исправлено в следующей версии JLine (> 3.15.0):
Добавлены параметры команды справки: --nogroups (--groups) и --info.
Поведение группировки по умолчанию можно контролировать, задав
systemRegistry.setGroupCommandsInHelp(true/false)
.
groovy-repl> help --help
help - command help
Usage: help [TOPIC...]
-? --help Displays command help
--nogroups Commands are not grouped by registeries
-i --info List commands with a short command infos
groovy-repl>