Skip to content

Commit 1e98bd7

Browse files
nfedkinCopilot
andcommitted
feat: встроенная команда completions для bash/zsh/pwsh
Команда автоматически доступна всем приложениям на autumn-cli. Обходит дерево cli-команд через публичный API cli-библиотеки и запекает в скрипт статический список имён команд/опций/аргументов. Для динамических значений (например, список установленных версий) добавлена аннотация &ПоставщикДополнения("ИмяМетода"). Приложение навешивает её на поле опции/аргумента и экспортирует метод-поставщик, возвращающий Массив со строками. Результат запекается в скрипт на момент выполнения команды completions — во время автодополнения в оболочке внешние процессы не запускаются. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent b28d1c6 commit 1e98bd7

3 files changed

Lines changed: 659 additions & 1 deletion

File tree

packagedef

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66

77
Описание.Имя("autumn-cli")
8-
.Версия("1.3.0")
8+
.Версия("1.4.0")
99
.Автор("nikita ivanchenko")
1010
.АдресАвтора("https://github.com/Nivanchenko")
1111
.Описание("Библиотека для разработки cli приложений на осеннем фреймворке")
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Аннотация привязывает к полю &Опция/&Аргумент метод-поставщик значений
2+
// для команды `completions`. Метод возвращает Массив<Строка> — список
3+
// вариантов, которые будут запечены в итоговый скрипт автодополнения.
4+
//
5+
// Параметры:
6+
// Значение - Строка - имя экспортного метода на том же бине команды.
7+
//
8+
// Пример:
9+
//
10+
// &Аргумент(Имя = "ALIAS", Описание = "Алиас версии")
11+
// &ПоставщикДополнения("ПолучитьУстановленныеВерсии")
12+
// Перем Алиас;
13+
//
14+
// Функция ПолучитьУстановленныеВерсии() Экспорт
15+
// ...
16+
// Возврат МассивСтрок;
17+
// КонецФункции
18+
//
19+
&Аннотация("ПоставщикДополнения")
20+
Процедура ПриСозданииОбъекта(Значение)
21+
КонецПроцедуры

0 commit comments

Comments
 (0)