refactoring

This commit is contained in:
2026-10-31 15:33:00 +03:00
parent e8e2d25600
commit 838627fb33
27 changed files with 2715 additions and 1259 deletions
+41
View File
@@ -0,0 +1,41 @@
# Окно и ввод — `api.window`
Группа `api.window` управляет окном приложения и плавающим полем ввода.
## Окно
| Метод | Описание |
| --- | --- |
| `api.window:close()` | Закрыть окно |
| `api.window:toggle_maximize()` | Развернуть окно / вернуть прежний размер |
| `api.window:set_maximized(true/false)` | Развернуть (`true`) или восстановить (`false`) окно |
| `api.window:minimize()` | Свернуть окно |
| `api.window:is_maximized()` | Развёрнуто ли окно прямо сейчас |
Команды окна не выполняются в момент вызова из Lua: они складываются в
очередь и применяются видом в начале следующего кадра.
## Плавающее поле ввода
`api.window:open_input(options)` открывает однострочное поле ввода чуть выше
центра окна. Параметры передаются таблицей:
| Поле | Описание |
| --- | --- |
| `title` | Текст над полем; если не задан, окно состоит из одной строки ввода |
| `placeholder` | Подсказка внутри пустого поля ввода |
| `callback` | `function(text)` — вызывается после Enter, когда окно уже закрыто |
Пока окно открыто, сочетания клавиш приложения не работают. Текст набирается
в поле; `Enter` подтверждает ввод и запускает `callback`, `Esc` и клик мышью
вне окна закрывают его без вызова колбэка.
```lua
api.window:open_input({
title = "Имя файла",
placeholder = "src/main.rs",
callback = function(text)
api.editor:open(text, {})
end,
})
```