API-функции Ziva
Помимо задач и очередей Ziva предоставляет набор глобальных функций. Они помогают настроить язык интерфейса, выбрать цветовую схему, оптимизировать работу на встроенных устройствах и управлять строковыми операциями.Все функции находятся в пакете
ziva. Достаточно подключить библиотеку: import "github.com/qzeleza/ziva".Локализация
SetLanguage(lang string) string
Устанавливает активный язык интерфейса ("ru", "en", "tr", …). Возвращает фактически применённый язык (если запрошенный недоступен, вернётся значение по умолчанию).
SetDefaultLanguage(lang string) string
Задаёт язык, который будет использоваться до первого вызоваSetLanguage.
CurrentLanguage() string
Возвращает код текущей локали.SupportedLanguages() []string
Список поддерживаемых языков. Можно использовать для выпадающего списка настроек.Автоконфигурация и окружение
AutoConfigure()
Анализирует систему и включает оптимизации (лимиты памяти, упрощённые режимы отображения) — полезно на встроенных устройствах.Is64Bit() bool
Проверяет архитектуру рантайма. Можно переключать алгоритмы в зависимости от результата.DisableCompletionDelay()
Отключает короткую «паузу завершения», когда Ziva ненадолго удерживает последнюю задачу на экране. Полезно для CI, автотестов и сценариев, где важно мгновенно перейти к следующему шагу.EnableEmbeddedMode()
Включает упрощённую цветовую схему и макет для терминалов с ограниченными возможностями.EnableASCIIMode()
Заменяет символы псевдографики на ASCII-аналоги.IsEmbeddedColorMode() bool
Показывает, активен ли в данный момент «встроенный» режим.Управление цветами
SetErrorColor(message, status lipgloss.TerminalColor)
Настраивает цвета ошибок и меток статуса.ResetErrorColors()
Возвращает цвета ошибок к значениям по умолчанию.SetExitMenuItemStyle(style lipgloss.Style)
Меняет стиль отображения локализованных пунктов меню «Выход» в задачах со списками. По умолчанию пункт подсвечивается бирюзовым жирным стилем (ziva.MenuActionDefaultStyle()).
SetBackMenuItemStyle(style lipgloss.Style)
Меняет стиль отображения локализованных пунктов меню «Назад». По умолчанию используется тот же подсвеченный стиль, что и для «Выход».ResetExitMenuItemStyle()
Возвращает подсветку пункта «Выход» к значениям по умолчанию.ResetBackMenuItemStyle()
Возвращает подсветку пункта «Назад» к значениям по умолчанию.MenuActionDefaultStyle() lipgloss.Style
Возвращает бирюзовый жирный стиль для специальных пунктов меню.MenuItemDefaultStyle() lipgloss.Style
Возвращает стиль, совпадающий с обычными пунктами меню (белый текст).Строковые и производительные утилиты
RepeatEfficient(s string, count int) string
Создаёт строку повторениемs — минимизирует аллокации.
JoinEfficient(parts []string, sep string) string
Быстро объединяет срез строк с разделителем.FastConcat(parts …string) string
Соединяет несколько строк без промежуточных аллокаций.CleanWhitespaceEfficient(s string) string
Схлопывает повторяющиеся пробелы и переносы строк.Кэш интернирования строк
InternString(s string) string
Возвращает общую ссылку на строку, если она уже встречалась. Удобно для повторяющихся заголовков/подписей.GetCacheStats() (size, capacity int)
Статистика кэша интернированных строк.ClearInternCache()
Очищает кэш — полезно при завершении работы CLI или после крупной операции.Макет и списки
CalculateLayoutWidth(screenWidth int) int
Подсказывает оптимальную ширину вывода с учётом отступов Ziva.Валидаторы верхнего уровня
Если нужен валидатор вне фабрикиDefaultValidators, используйте функции-конструкторы.
Validate и Description, поэтому их можно комбинировать с собственными проверками.
Комплексный пример
Когда использовать эти функции
- Перед запуском очередей. Настройка языка, автоматическая конфигурация и режимы отображения должны быть выполнены в начале программы.
- Вспомогательные пакеты. Утилиты работы со строками удобно использовать при подготовке сообщений/шаблонов.
- Экономия памяти. Интернирование эффективно в долгоживущих CLI, где много повторяющихся строк.
- Переиспользование валидаторов. Фабричные функции помогают описать правила, которые не вошли в
DefaultValidators.