summaryrefslogtreecommitdiff
path: root/src/lua/runtime.rs
diff options
context:
space:
mode:
authorNathan Reiner <nathan@nathanreiner.xyz>2024-08-10 15:41:31 +0200
committerNathan Reiner <nathan@nathanreiner.xyz>2024-08-10 15:41:31 +0200
commitb747ca8af52129876b577a4f20f7105a05c6b002 (patch)
treed976a5c3cd135dfecb1014246936bb7a8b525c4b /src/lua/runtime.rs
parent4763d8ce3b833df1e7321a407b08666f69657fdb (diff)
add global fileloader registry
Diffstat (limited to 'src/lua/runtime.rs')
-rw-r--r--src/lua/runtime.rs17
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(())