将自定义类导出给Lua使用的时候,IDE中是不能提示某个模块中都有哪些变量或函数的,如果我们忘记了方法名还需要去查看c++层的代码或者查看API文件,这样做很不方便。因为对API的不熟悉导致写错某个函数或者变量影响了项目的进度很不值得。所以,本篇博客就为IDE添加自定义类的补全功能,当我们写下自定义类名的时候会出现导出的接口。

1、导出一个类到Lua层,方法请参考绑定自定义类到Runtime(Lua-binding)。我导出的类名是CircleBy,这个文件在自动绑定Lua的API目录下。

为Cocos Code IDE添加自定义类补全(提示)功能

2、这个目录下包含引擎导出接口的其他API,我们发现了自己导出类的API文件——CircleBy.lua,在这个目录下我们需要建立另外俩个API文件,一个是global.lua,内容如下,这里的内容是参考引擎的global.lua文件写的,引擎的global.lua文件在Cocos2d包下。

-------------------------------------------------------------------------------
-- @module global

-------------------------------
-- the tt module
-- @field [parent=#global] tt#tt tt preloaded module

return nil

这里的tt指的是我导出模块的名称,其他地方是按照引擎global文件写的,引擎的global文件位置如下。

为Cocos Code IDE添加自定义类补全(提示)功能

然后在这个目录下建立另外一个API文件,这个文件和你的模块名相同,我的模块名是tt,所以文件起名为tt.lua。

--------------------------------
-- @module tt

--------------------------------------------------------
-- the tt CircleBy
-- @field [parent=#tt] CircleBy#CircleBy CircleBy preloaded module

return nil

我导出的类名是CircleBy,所以文件那里写的就是自己导出的类名。关于这俩个文件的写法大家请参考引擎的写法,然后将模块名和类名替换为自己导出类的名字,在文件的最后记住要返回nil。

3、这样在刚才的目录下我们就有了CircleBy.lua、global.lua、tt.lua这三个文件,现在我们需要将这三个文件进行压缩,打出一个zip包。打开终端,进入到API目录,然后使用如下的命令将这三个文件打包成一个zip包。

为Cocos Code IDE添加自定义类补全(提示)功能

4、现在打开我们的IDE,使用如下的步骤,导入这个zip包。记得在导入zip包之前刷新工程,否则找不到新添加的文件。

为Cocos Code IDE添加自定义类补全(提示)功能

为Cocos Code IDE添加自定义类补全(提示)功能

最后的工程结构和测试结果如下。

为Cocos Code IDE添加自定义类补全(提示)功能