56 lines
3.5 KiB
Lua
56 lines
3.5 KiB
Lua
-- Стартовый сценарий приложения.
|
|
--
|
|
-- Приложение выполняет этот файл при запуске. Каталог поиска задаётся
|
|
-- константой SCRIPT_DIR в src/constants.rs (по умолчанию — текущий каталог).
|
|
|
|
print("[lua] init.lua выполнен")
|
|
|
|
-- Доступные методы объекта app (номера вкладок — с нуля):
|
|
-- app:tabs() -- {{ index = 0, title = "main.rs" }, ...}
|
|
-- app:active_tab() -- индекс активной вкладки
|
|
-- app:set_active_tab(index) -- true, если вкладка существует
|
|
-- app:next_tab() -- переключить на следующую, вернуть индекс
|
|
-- app:previous_tab() -- переключить на предыдущую, вернуть индекс
|
|
-- app:open_tab() -- открыть пустую вкладку, вернуть индекс
|
|
-- app:close_tab(index) -- true, если вкладка закрыта
|
|
-- app:active_text() -- текст активной вкладки
|
|
-- app:set_active_text(text) -- заменить текст активной вкладки
|
|
-- app:set_language(i, "rust") -- включить подсветку (rust|go|js|json|python)
|
|
-- -- для вкладки i; false — нет вкладки/языка
|
|
-- app:language(i) -- язык подсветки вкладки или nil
|
|
-- app:clear_language(i) -- выключить подсветку для вкладки
|
|
-- app:save() -- сохранить активную вкладку в её файл
|
|
-- app:map_key(keys, fn) -- обработчик клавиши/сочетания
|
|
-- -- "a" нажатие A
|
|
-- -- "1" нажатие 1
|
|
-- -- "!a" отпускание A
|
|
-- -- "<S-c>" C при зажатом Shift
|
|
-- -- "<C-z>" Z при зажатом Ctrl
|
|
-- -- "<A-!r>" отпускание R при зажатом Alt
|
|
-- -- клавиша берётся по физическому коду:
|
|
-- -- Caps Lock и раскладка не важны
|
|
-- app:close() -- закрыть окно
|
|
-- app:toggle_maximize()
|
|
-- app:set_maximized(true/false)
|
|
-- app:minimize()
|
|
-- app:is_maximized()
|
|
--
|
|
-- Методы добавляются в src/api.rs: всё, что есть в impl AppApi, помеченном
|
|
-- #[mlua::userdata_impl], автоматически доступно из Lua.
|
|
--
|
|
-- Другие Lua-файлы можно подключать из каталога сценариев:
|
|
-- include("tools.lua") -- выполнить файл сразу
|
|
-- require("tools") -- выполнить один раз (как обычный Lua-модуль)
|
|
--
|
|
-- Подсветка синтаксиса по умолчанию выключена. Включить её можно так:
|
|
-- app:set_language(0, "rust")
|
|
|
|
app:set_language(0, "rust")
|
|
app:next_tab()
|
|
|
|
-- Пример привязки: Ctrl+S сохраняет вкладку, отпускание Esc закрывает окно.
|
|
-- app:map_key("<C-s>", function() app:save() end)
|
|
-- app:map_key("<!Esc>", function() app:close() end)
|
|
|
|
app:map_key("<C-q>", function() app:close() end)
|