yazi/yazi-plugin/src/isolate/isolate.rs
2024-09-14 19:00:03 +08:00

32 lines
851 B
Rust

use mlua::Lua;
use crate::{elements, preset, runtime::Runtime};
pub fn slim_lua(name: &str) -> mlua::Result<Lua> {
let lua = Lua::new();
lua.set_named_registry_value("rt", Runtime::new(name))?;
// Base
crate::bindings::Icon::register(&lua)?;
crate::cha::pour(&lua)?;
crate::file::pour(&lua)?;
crate::url::pour(&lua)?;
crate::loader::install_isolate(&lua)?;
crate::fs::install(&lua)?;
crate::process::install(&lua)?;
crate::utils::install_isolate(&lua)?;
crate::Config::new(&lua).install_preview()?;
lua.load(preset!("ya")).set_name("ya.lua").exec()?;
// Elements
let ui = lua.create_table()?;
elements::Line::install(&lua, &ui)?;
elements::Paragraph::install(&lua, &ui)?;
elements::Rect::register(&lua)?;
elements::Rect::install(&lua, &ui)?;
elements::Span::install(&lua, &ui)?;
lua.globals().raw_set("ui", ui)?;
Ok(lua)
}