Существуют ли библиотеки Java для создания приложений командной строки с завершением TAB каталогов?
Вас может заинтересовать picocli .Picocli - это однофайловая библиотека Java для создания приложений командной строки с практически нулевым кодом;он может генерировать цветные справочные сообщения об использовании ANSI, а picocli поддерживает автозаполнение командной строки в Linux (и Cygwin и babun в Windows) начиная с версии 1.0.
Как это работает?Оболочки Unix bash и zsh предоставляют нечто, называемое «программируемое завершение», и picocli использует это для генерации сценария автозаполнения, адаптированного к аннотациям @Option
и @Command
в вашем приложении.
С установленным сценарием пользователиможно ввести клавишу TAB, и оболочка Unix покажет список доступных подкоманд и параметров.Для параметров, связанных с полем java.io.File
или java.nio.file.Path
, оболочка покажет доступные файлы и каталоги, которые соответствуют тому, что пользователь вводил до сих пор.
На самом деле это обрабатывает не только файлы и каталоги: сгенерированный Picocli скрипт завершения показывает известные хосты (из файла /etc/hosts
пользователя) для параметров типа java.net.InetAddress
и показывает значения enum
для параметровна полях любого типа перечисления, включая пользовательские перечисления.
Анимация ниже демонстрирует, что возможно.