将Lua编辑器集成到C#程序中
作者:互联网
我正在为一个小的开源项目做一个POC(概念证明),将Lua集成到c#中看起来很简单,但是对于这个项目,我们想做得更进一步.我们希望能够从C#程序(WPF客户端,但是如果需要的话,我们可以使用winforms)中编辑Lua脚本,IDE需要基本的代码完成,并且我们可以添加C#对象和方法(可以在运行时从Lua脚本访问),因此它们将自动完成..它们是否可用于C#?
编辑:Schollii想要一些我想要代码完成的示例代码
while true do
Mouse:setY(TrackIR:getPitch())
end
其中Mouse和TrackIR是可从Lua脚本访问的c#对象
解决方法:
如果要将Lua编辑器与语法高亮显示C#集成在一起,则IMO最简单的方法是使用Scintilla控件,该控件在C#到ScintillaNET中都可用.它已经包含Lua语言的荧光笔,并且相对容易嵌入和使用. .
要将Lua与C#接口,可以使用LuaInterface及更高版本.有关文档链接,请参见this question.
如果您需要标准库之外的完成,那么完成代码将不是一件容易的事,可以在一个简单的字典中对其进行描述.由于Lua是一种动态语言,因此在实际运行代码至给定点之前推断变量的内容并非易事-并非不可能,请查看适用于SciTE和ViM并允许进行代码检查的lua-inspect (但这并不完美).
如果您想在运行的环境中尝试代码-即您的Lua状态已运行且加载了模块并设置了变量-您可以从LuaPowerPatches的Advanced Readline Support补丁中获得启发,并使其适应C#环境.它支持:
>完成关键字和全局变量名称.
>变量名的递归和可识别元表的完成.
>上下文相关的分隔符完成.
标签:lua,editor,code-completion,c 来源: https://codeday.me/bug/20191101/1986668.html