diff options
Diffstat (limited to 'src/lua/runtime.rs')
| -rw-r--r-- | src/lua/runtime.rs | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/lua/runtime.rs b/src/lua/runtime.rs index ce34827..6a0a230 100644 --- a/src/lua/runtime.rs +++ b/src/lua/runtime.rs @@ -3,14 +3,15 @@ use std::time::{SystemTime, UNIX_EPOCH}; use crate::{ config::{self, GlobalConfig}, - sheet::register::Register, state::GlobalState, + sheet::{loader::Loader, register::Register}, + state::GlobalState, }; pub fn neosheet(lua: &Lua) -> Result<()> { let exports = lua.create_table()?; exports - .set("sheets", lua.create_userdata(Register)?) + .set("sheet", lua.create_userdata(Register)?) .unwrap(); exports .set("config", lua.create_userdata(GlobalConfig::default())?) @@ -18,6 +19,9 @@ pub fn neosheet(lua: &Lua) -> Result<()> { exports .set("state", lua.create_userdata(GlobalState::default())?) .unwrap(); + exports + .set("loader", lua.create_proxy::<Loader>()?) + .unwrap(); lua.globals() .get::<_, Table>("package")? @@ -45,10 +49,15 @@ pub fn package(lua: &Lua) -> Result<()> { package.set( "path", format!( - "{}/?.lua;{}/?/init.lua;{};./?.lua", + "{}/?.lua;{}/?/init.lua;{}/lib/?.lua;{}/lib/?/init.lua;{};./?.lua", + config::constants::USER_CONFIG_DIR.as_str(), + config::constants::USER_CONFIG_DIR.as_str(), config::constants::USER_CONFIG_DIR.as_str(), config::constants::USER_CONFIG_DIR.as_str(), - path.split(';').filter(|s| s.starts_with('/')).collect::<Vec<&str>>().join(";"), + path.split(';') + .filter(|s| s.starts_with('/')) + .collect::<Vec<&str>>() + .join(";"), ), )?; Ok(()) |