Skip to main content

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()

Возвращает подсветку пункта «Назад» к значениям по умолчанию.
Возвращает бирюзовый жирный стиль для специальных пунктов меню.
Возвращает стиль, совпадающий с обычными пунктами меню (белый текст).

Строковые и производительные утилиты

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.
Остальные настройки (например, цвета тем или логотип) задаются в конфигурации Mintlify или в вашем приложении вручную.