refactoring
This commit is contained in:
+12
-10
@@ -3,9 +3,10 @@
|
||||
//! При запуске приложение выполняет [`STARTUP_SCRIPT`] из каталога [`script_dir`]
|
||||
//! (см. [`ScriptEngine::run_startup`]). Скриптам доступны:
|
||||
//!
|
||||
//! * объект `app` — управление окном и панелями (методы [`AppApi`], вызываются
|
||||
//! через двоеточие: `app:next_tab()`); во вложенном `app.editor` живёт API
|
||||
//! редактора ([`EditorApi`](crate::api::EditorApi)): `app.editor:save()`;
|
||||
//! * объект `api` — управление приложением ([`AppApi`]). Он разбит на группы:
|
||||
//! `api.editor` (редактор), `api.panels` (панели), `api.path` (файловая
|
||||
//! система), `api.window` (окно и поле ввода) и `api.keymap` (глобальные
|
||||
//! привязки); вызов — через двоеточие: `api.editor:save()`;
|
||||
//! * функция `include(path)` — выполняет другой Lua-файл относительно [`script_dir`]
|
||||
//! (или по абсолютному пути) в общем глобальном окружении;
|
||||
//! * стандартный `require`, который также ищет модули в [`script_dir`].
|
||||
@@ -102,7 +103,7 @@ impl ScriptEngine {
|
||||
lua: Lua::new(),
|
||||
script_dir: directory.as_ref().to_path_buf(),
|
||||
};
|
||||
engine.expose_app_api(api)?;
|
||||
engine.expose_api(api)?;
|
||||
engine.configure_require()?;
|
||||
Ok(engine)
|
||||
}
|
||||
@@ -121,15 +122,16 @@ impl ScriptEngine {
|
||||
run_file(&self.lua, path).map(|_| ())
|
||||
}
|
||||
|
||||
/// Публикует объект `app` с функциями управления приложением.
|
||||
/// Публикует объект `api` с функциями управления приложением.
|
||||
///
|
||||
/// Все методы [`AppApi`] из `#[mlua::userdata_impl]`-блока доступны как
|
||||
/// методы userdata: `app:next_tab()`, `app:set_active_text("...")`.
|
||||
/// Номера вкладок всюду нумеруются с нуля.
|
||||
fn expose_app_api(&self, api: AppApi) -> mlua::Result<()> {
|
||||
/// Все методы объектов [`AppApi`] из `#[mlua::userdata_impl]`-блоков
|
||||
/// доступны как методы userdata: `api.editor:save()`,
|
||||
/// `api.path:list("src")`, `api.window:close()`. Номера вкладок всюду
|
||||
/// нумеруются с нуля.
|
||||
fn expose_api(&self, api: AppApi) -> mlua::Result<()> {
|
||||
self.lua
|
||||
.globals()
|
||||
.set("app", self.lua.create_userdata(api)?)?;
|
||||
.set("api", self.lua.create_userdata(api)?)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user