将Lua编辑器集成到C#程序中。
我正在为一个小型开源项目做 POC(概念验证),将 Lua 集成到 C# 中似乎非常直接,但对于这个项目,我们想进一步。我们希望能够从我们的 C# 程序(WPF 客户端,但如果需要的话,我们可以转向 winforms)中编辑 Lua 脚本,IDE 需要基本的代码完成,并且我们可以添加我们的 C# 对象和方法(在运行时可以从 Lua 脚本中访问到的对象和方法),这样它们就会被自动完成..是否有适用于 C# 的这样的 API?
编辑:Schollii 想要一些我想要代码完成的示例代码
while true do
Mouse:setY(TrackIR:getPitch())
end
其中 Mouse 和 TrackIR 是可以从 Lua 脚本中访问的 c# 对象。
原文链接 https://stackoverflow.com/questions/8774778
如果您想将Lua编辑器与C#语法高亮集成在一起,我认为最简单的方法是使用Scintilla控件,在C#中通过ScintillaNET获取。它已经包含了Lua语言的高亮器,并且相对容易嵌入和使用。
要将Lua与C#接口化,可以使用LuaInterface。请参考此问题以获取文档链接。
如果您需要超出标准库的补全功能,这将不是一项简单的任务,标准库可以用一个简单的字典描述。由于Lua是一种动态语言,很难在实际运行到给定点之前推导出变量的内容 - 这并非不可能,可以看一下luainspect,它适用于SciTE和ViM,并允许代码检查(但不完美)。
如果您想在运行环境中尝试代码 - 例如,您有一个具有加载模块和设置变量的Lua状态 - 您可以受到LuaPowerPatches中的高级自动补全补丁的启发,并在C#中自适应它。除其他外,它还支持:
- 关键字和全局变量名称的完整。
- 变量名称的递归和元表感知的完整。
- 上下文敏感的定界符完全。
似乎你只是想要一个可嵌入的编辑器,它可以具有代码补全和语法高亮功能,最好基于 WPF。它不需要明确支持 Lua。
看看 Avalon Edit。这里有一篇关于它的文章。
你将必须在它提供的框架中自己实现高亮文件和补全 - 但看起来很容易。
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
我不知道是否存在这样的库。你可能需要找到一些有用的工具,比如 Luainterface 和一些提供代码补全功能的开源 Lua 编辑器,如 blua 和 Scite。需要注意的是,代码补全有不同的类型,每种类型都有优缺点,包括功能强大、实现简单等等。例如,如果你只想提供一个可能与全局 Lua 命名空间中的对象相对应的单词列表,则根本不需要什么;然而,如果你希望代码补全能够与表字段、对象以及各种嵌套级别一起使用,那么工作量将大大增加。