Kompot Lens
Создавайте интерфейсы на Kompot для VoxelCore прямо в VS Code.
- Превью рядом с Lua-кодом без запуска игры.
- Интерактивная проверка кнопок, перетаскивания, состояний и анимаций.
- Вращение, масштаб и изображения на Canvas.
- Общий
K.Shape: скругления, срезы, проценты и фигурный clip (Kompot 1.1.0+).
- Обновление таблиц State, формы
K.form и диагностика порядка хуков (Kompot 1.2.0+).
- Подсказки API, проверка типов и переход к определению.
- Шаблоны компонентов, выбор цветов, подсказки иконок и текстур.
Что нужно
VS Code 1.106 или новее. Lua входит в расширение, отдельно устанавливать его не нужно.
Lua Language Server устанавливается автоматически.
Добавьте "kompot" в dependencies файла package.json своего пака -
подсказки и проверка типов подключатся автоматически. Они работают и до установки Kompot.
Для превью понадобится сам пак: положите его рядом со своим паком в каталог паков.
Первое превью
- Откройте папку своего пака или проекта и доверьте рабочей области. Пак
kompot должен лежать рядом с вашим паком.
- Добавьте превью в Lua-модуль своего пака (
modules/).
- Выполните Kompot: Открыть превью -
Ctrl+K V (Cmd+K V на macOS).
local K = require "kompot:kompot"
K.preview("Первое превью", {width = 320, height = 100}, function()
K.Text("Привет, Kompot!")
end)
Сохраните файл, чтобы обновить превью. Нажмите Интерактивно, чтобы
проверить взаимодействие и анимации. Команда Kompot: Добавить превью
вставляет готовый шаблон в текущий файл.
Настройки
Обычно настройка не требуется. Если Kompot находится в другом месте, нажмите
Выбрать каталог паков в превью или выполните одноимённую команду Kompot.
Выбор сохраняется для проекта.
Чтобы использовать свой Lua или LuaJIT, укажите путь в kompot.luaExecutable.
Для обновления во время набора выберите live в kompot.previewUpdateMode.
Ограничения превью
TTF/OTF измеряются и отрисовываются через FreeType. Растровые шрифты используют
PNG-страницы VoxelCore. Для встроенного normal нужен каталог res движка;
если он не найден автоматически, укажите kompot.enginePath.
Нативное редактирование текста, каретка, выделение и подсветка VoxelCore не воспроизводятся.
Интерфейсы, использующие игровой API, проверяйте в самой игре.
Для кода с нативными модулями Lua или LuaJIT можно выбрать свой интерпретатор.
Код: MIT.
Иконка: Dagger, 2026, CC BY 4.0.
Kompot 1.3.1
Lens 0.15.2 проверен с Kompot 1.3.1 и корректно показывает многострочные ошибки.
Поддерживаются переходы, Select и настройка поверхностей Kompot UI.
Встроенные типы LuaLS включают API 1.3.0. Превью учитывает покрытие фона под
рамкой и передаёт Home/End и PageUp/PageDown. Навигация по Tab включается явно
через keyboard_navigation = true в параметрах K.preview, как в игре.
Импорты без префикса, например require "fonts" или require "genshin_ui/tokens",
разрешаются относительно modules/ пака вызывающего файла, как в VoxelCore.
В превью доступен pack.get_info(id) для чтения id, title, creator,
description, version и path из манифестов паков. Для отсутствующего пака
возвращается nil; список ID возвращает таблицу метаданных по ID.
При повышенном DPI и увеличении превью векторные шрифты растеризуются
в экранном разрешении; интервалы букв сохраняются как в движке. Растровые
шрифты и содержимое трансформированных слоёв сохраняют исходное разрешение.