Lua脚本逐行编写我使用DynamicLua库将Lua脚本添加到我的C#应用程序中,它运行良好。我想实现您获得正在执行的当前行(就像在VisualStudio中一样)并突出显示它。目前我这样做:publicstaticvoidRunLua(stringLuaToExecute){dynamiclua=newDynamicLua.DynamicLua();string[]lua_s_split=LuaToExecute.Split('n');整数计数器=0;foreach(stringlineinlua_s_split){//在编辑器中高亮显示当前行HighlightLine(counter+1);//执行当前行lua(line);计数器++;这对我的Lua代码非常有效move(20,19)sleep(1000)move(5,19)但我不能只执行一行语句。就像我的绑定函数move()。但我也想使用多行语句,如函数和循环。如果文本编辑器包含:functiontest()return"HalloWelt"endlua(line)将抛出异常,因为只传递了第一行functiontest()并且解释器缺少end语句。我能做些什么?我是否应该检查该行是否以函数开头,而...命令并扫描结束块并将其添加到字符串中,以便我可以执行并突出显示此多行语句的所有内容?是否可以?我该怎么办?请帮忙。我想实现您获得正在执行的当前行(就像在VisualStudio中一样)并突出显示它。不要通过在Lua脚本中一次添加一行来执行此操作。运行整个脚本,让Lua在执行切换到新行时通过调试挂钩通知您:ProgrammingLua:HooksLuaManual:debug.sethook[EDIT]在回答这个问题解析器时,我没有意识到接受的答案中提到的LUA.我同意那个海报,你应该尽可能使用官方解析库而不是自己滚动。以下内容回答了原始问题,但不应被视为最终答案。请查看已接受的答案以找到解决此问题的正确方法。[/EDIT]您显式调用它来解析代码行/执行LUA。如果你有一个多行函数,确保在调用执行块之前传递完整的东西。以上就是C#学习教程:Lua脚本编写与逐行分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注—varmyCommand=newStringBuilder()...myCommand.Append(line)...foreach(stringlineinlua_s_split){//在编辑器中高亮显示当前行HighlightLine(counter+1);//执行当前行If(NeedsToExecute(istrue)){lua(myCommand.ToString());计数器++;}else{myCommand.appendline(line)}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
