加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sublime中的cocos-js代码提示

发布时间:2020-12-14 17:05:07 所属栏目:百科 来源:网络整理
导读:一、开干 这篇文章是承接着《sublime上的JS代码提示2—api》这篇文章来的,主要生成的是cocos-js的代码提示。 和之前的不同主要是源文件还有正则表达式的匹配模式不同。 可以看到源文件是一些jsb开头的文件,这些文件位于 cocos2d_js_bindings 工程下: 这个

一、开干

这篇文章是承接着《sublime上的JS代码提示2—api》这篇文章来的,主要生成的是cocos-js的代码提示。
和之前的不同主要是源文件还有正则表达式的匹配模式不同。

可以看到源文件是一些jsb开头的文件,这些文件位于cocos2d_js_bindings工程下:

这个工程是cocos代码导入到js中的地方。
然后我们随便选择一个文件,就拿jsb_cocos2dx_auto.cpp这个文件开刀吧,
打开这个文件后,我们选择如下的一块代码:

这里就是cocos转js的地方,所以我们的匹配也应该在这里下手,下面是我写的匹配模式:

m = re.match("^s+JS_FN("(w+)",line)

然后我们就可以找到我们需要的函数提示啦!


二、工具代码

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

import os;
import sys;
import shutil;
import re

SOURCE_DIR = "source"
GENERATE_DIR = "generate"
snippetTemplate = """<snippet>
    <content><![CDATA[$content]]></content>
    <tabTrigger>$trigger</tabTrigger>
    <scope>source.js</scope>
    <description>$desc</description>
</snippet>
"""

# 解析cpp
def parseCpp(_src,_dst):
    for name in os.listdir(_src):
        __src_path = _src + "/" + name
        __dst_name = os.path.splitext(name)[0]
        __dst_path = _dst + "/" + __dst_name

        if os.path.isfile(__src_path):
            parseFile(__src_path,__dst_path)


# 解析文件
def parseFile(_file,_dst):
    print "start parseFile name:"+_file
    print "generate dst:" + _dst

    if not os.path.exists(_dst):
        os.makedirs(_dst)

    f=open(_file,"r")

    for line in f.readlines():
        # m = re.match("^s+JS_FN("(w+)"$",line)
        m = re.match("^s+JS_FN("(w+)",line)
        if m:
            generateSnippetFile(_dst,m.group(1))

    f.close()

    print "end parseFile name:"+_file
    print "n"


# 生成代码提示文件
def generateSnippetFile(_dst,_content):
    print "generateSnippetFile content:"+_content
    template=snippetTemplate.replace("$content",_content)
    template=template.replace("$trigger",_content)
    template=template.replace("$desc",_content)

    __save_name = _dst + "/" + _content + ".sublime-snippet"
    f=open(__save_name,"w+")
    f.write(template)
    f.close()


# 清空保存目录下的文件
def deleteFiles(_path):
    print "start deleteFiles path:"+_path

    for name in os.listdir(_path):

        full_path = _path + "/" + name

        if os.path.isdir(full_path):
            shutil.rmtree(full_path)

        elif os.path.isfile(full_path):
            try:
                os.remove(full_path)
            except Exception,e:
                pass

    print "deleteFiles end!!!"


if __name__ == '__main__':

    # 1.跳转到当前目录
    os.chdir(sys.path[0])
    # 2.清空生成目录
    deleteFiles(GENERATE_DIR)
    # 3.开始解析生成js文件
    parseCpp(SOURCE_DIR,GENERATE_DIR)

三、售后

下载地址:
http://download.csdn.net/detail/wade333777/9544760

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读