asai-lua-parse
v0.1.14
Published
asai for you
Readme
asai-lua-parse — Lua 语法解析(luaparse)
包信息
| 建议 npm 名 | 入口文件 | $fn / 注入键 | 类型 |
|------------|---------|-------------|------|
| @estun/asai-lua-parse | AsaiLuaParse.js | AsaiLuaParse → luaparse API | Feature |
概述
asai-lua-parse 是对 luaparse 的薄桥接层,将 Lua 源码解析为 AST,供编辑器语法校验与结构分析使用。
集成方式
// monorepo — 延迟:lib/featurePlugs.ts
// import AsaiLuaParse from './plugs/asai-lua-parse/AsaiLuaParse.js';
// npm
// import AsaiLuaParse from '@estun/asai-lua-parse';
await ensureFeaturePlug($fn, 'AsaiLuaParse');
$fn.AsaiLuaParse.parse(code, { wait: false, scope: true });独立性约束
- 禁止 cross-import 其它
plugs/*(含asai-lua-format)。 - 解析与格式化分开注册、分开按需加载。
主要 API / 导出
| 方法 | 说明 |
|------|------|
| parse(source, options?) | 与 luaparse API 一致 |
options: wait, scope, locations, comments 等
返回: AST;语法错误抛异常。
性能说明
- 延迟加载;模块轻量,适合输入防抖后语法检查。
- 大文件
parse阻塞主线程,可考虑 Worker 或限制文件大小。 - 与 format 插件独立 chunk,未使用时不加载。
peerDependencies 建议
{
"peerDependencies": {},
"dependencies": {
"luaparse": "^0.3.0"
}
}使用示例
try {
const ast = $fn.AsaiLuaParse.parse('function foo() end');
console.log(ast.type); // 'Chunk'
} catch (e) {
console.error('Lua 语法错误', e);
}与 asai-lua-format
| | parse | format | |---|-------|--------| | 改源码 | 否 | 是 | | 用途 | 校验、分析 | 美化 |
文件结构
asai-lua-parse/
├── AsaiLuaParse.js # import luaparse; export default luaparse
└── README.md主要调用方
cocontrol/.../useLuaEditor.ts
测试
npx tsx --test .youmengyu/test/unit/webclient/plugs/asai-lua-parse/*.test.mjs
# 或包内
npm test --prefix webclient/src/plugs/asai-lua-parse
node .youmengyu/test/asaitest.mjs入口:package.json 的 main/exports 指向 AsaiLuaParse.js(开发无需先 rollup)。
