Cocos ide问题

遇到一些关于编辑器成员自动完成和提示问题,不知道是自己使用的问题还是编辑器支持有问题,反复尝试得到以下结果

1、模块定义的问题

定义模块


module(...)
--
local modname = ...
local M = {}
_G = M
package.loaded = M
setfenv(1, M)
--]]

function test()
    print("hello!")
end

使用模块


require "mymodule"

mymodule.test() -- 此处不能列出其成员方法test

使用以上方法定义的一个模块mymodule,在其他地方使用这个模块时编辑器不能列出该模块的成员,然而以上程序可以正常运行

2、类定义的问题


local className = ...
local Class = class(className, function()
    return cc.Node:create()
end)
_G = Class
package.loaded = Class

function Class.create()
    local obj = Class.new()
    obj:init()   -- 此处可以提示Node的成员列表
    return obj
end

function Class:init()
    self:xxxx()  -- 此处可以提示Node的成员列表
end

该类的定义其他地方均可以正常使用

由于该方式类定义的前部分所有类都是几乎一致的,如果我把它放到一个全局的方法中,如:


function gclass(name, super)
    local Class = class(name, function()
        return super
    end)
    _G = Class
    package.loaded = Class
    return Class
end

类的定义都改为gclass全局方法来定义,如:


local MyClass = gclass(..., cc.Node:create())

function MyClass.create()
    local obj = MyClass.new()
    obj:init()   -- 此处不能提示Node的成员列表
    return obj
end

function MyClass:init()
    self:xxxx()  -- 此处不能提示Node的成员列表
end

那么,就会出现无法列出父类的成员的情况,然而程序是可以正常使用的,就是编写起来没提示和自动完成,比较麻烦
此问题是code ide的缺陷吗?还是我操作哪里出问题了?

本人是个刚接触的新手,请各位大虾指教

module类型的定义,其属性和方法暂时还不支持提示,后面我们会实现这样的提示。
后一个继承的场景比较复杂,可能会遗漏一些提示。继承这方面的场景比较多,所以我们后面也会陆续完善这方面的提示。

代码自动提示这块是目前用着最不爽的,对比较的直观的类型一般都可以给出提示,但只要是经过引用赋值或返回的值一般都没法给出提示, 希望引起重视加强改进

比如简单的

self.sprite = cc.Sprite:create()

self.sprite: 是没有问题的


self.sprite = MySprite:create() MySprite只是对 cc.Sprite 简单继承

self.sprite: 是没有提示的

对于self.data 这样的属性能在外部创建对象后支持提示吗?

GameLayer = class(‘GameLayer’, function ()
return cc.Layer:create()
end)

function GameLayer:ctor()
self.data = {1,2,3}
end

local layer = GameLayer.new()
layer.data — 这里现在没有提示的