Один заголовок в выводе справки 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> 
Другие вопросы по тегам