ZeroBrane:基于每个文件注册API
我正在为我们的网站写一个ZeroBrane Studio插件,它工作起来很有魅力。包括自动完成 我现在想知道它是否能够只为一个文件注册LuaAPI 我需要它来提供全局符号的自动完成/文档,这些符号可能因脚本而异,但可以从引擎的附件文件中推断出来 总结:是否可以为单个文件注册api?例如在ZeroBrane:基于每个文件注册API,zerobrane,Zerobrane,我正在为我们的网站写一个ZeroBrane Studio插件,它工作起来很有魅力。包括自动完成 我现在想知道它是否能够只为一个文件注册LuaAPI 我需要它来提供全局符号的自动完成/文档,这些符号可能因脚本而异,但可以从引擎的附件文件中推断出来 总结:是否可以为单个文件注册api?例如在onEditorLoad()事件中 谢谢 格雷格 编辑: 我尝试了以下方法但没有成功: 本地功能开关编辑器(编辑器) 如果当前编辑器==编辑器,则 ide:打印(“同一编辑器”) 返回 结束 当前编辑器=编辑器
onEditorLoad()事件中
谢谢
格雷格
编辑:
我尝试了以下方法但没有成功:
本地功能开关编辑器(编辑器)
如果当前编辑器==编辑器,则
ide:打印(“同一编辑器”)
返回
结束
当前编辑器=编辑器
如果不是编辑的话
ide:打印(“空ed”)
返回
结束
lua\u file\u path=ide:GetDocument(编辑器).filePath
如果lua_file_path:match('/data/maps/'),则
ide:打印(“地图文件!”,键入(编辑器))
本地映射api=生成映射api(lua文件路径)
当前api=映射api
ide:AddAPI('lua','solarus_-map',map_-api)
其他的
ide:打印('其他文件')
如果是当前的api,那么
ide:RemoveAPI('lua','solarus_map'))
当前空气污染指数=零
结束
结束
结束
api={“baselib”、“solarus”、“solarus_map”},--在解释器表中
... -- 在插件表中:
onEditorFocusSet=函数(自身、编辑器)
开关编辑器(编辑器)
完,,
使用solarus
api可以很好地完成工作,但是solarus\u map
api的动态注册似乎没有被考虑在内
编辑2:
愚蠢的我,我一定是打错了,因为在检查和重写了一些东西之后,就像上面粘贴的代码一样。。。它起作用了!太棒了
唯一一个小问题是,当切换到一个我不想要solarus\u map
API的文件时<代码>ide:RemoveAPI
不够。相反,我必须执行ide:AddAPI('lua','solarus_-map',{})
以将API替换为空的API。我可以使用它。总结一下,实现一个自定义api,它可以在不同的文件中更改:
- 将api名称添加到解释器
- 在
事件中,使用onEditorFocusSet
更新API,如果需要为空/禁用,最终将其设置为ide:AddAPI(…)
{}