这个东西其实在四个月钱就做好了,现在发文章只是因为感觉博客更新频率太低,水数量而已(不)
可以直接用的成品
目前GitHub和Gitee上我都放了一份,因为是纯前端来实现的,所以都开启了page服务,可以直接用
GitHub
源码:https://github.com/chenxuuu/lua-online
Gitee
在线测试:https://chenxuuu.gitee.io/lua-online/
源码:https://gitee.com/chenxuuu/lua-online
简单解释下内容
主要用到的轮子
fengari-web
lua运行框架直接使用了fengari-web
,对接的函数也很简单,甚至你进行require
,它会直接根据网址来加载,很炫酷
codemirror
这个是编辑器的轮子,毕竟在线测试,一个好用好看的编辑器是标配
重定向lua的print到输出框
首先在js那边实现一个输出数据的函数
function getResult() {
var code = editor.getValue();
$("#output").text("");
try {
fengari.load(code)();
}
catch (err) {
luaPrint(err);
}
}
然后把lua的print重写一下就好了
js = require "js"
--重写print函数
function print(...)
local out = {}
for i=1,select('#', ...) do
table.insert(out,tostring(select(i, ...)))
end
js.global:luaPrint(table.concat(out,"\t"))
end
实现的功能
其实实现的东西就那么多,顺带加上了luat的额外部分接口而已
在编辑器里的数据会实时保存在用户自己的浏览器中,下次打开会自动加载
同时分享代码也只是在网址后面跟了串数据来实现的,基本功能就这些了
EOF
转载保留版权:晨旭的博客 » 《纯前端的lua代码运行测试工具》如果喜欢可以: 点击右侧上方的邮件订阅,订阅本站
动手能力很强啊~