【本身动手】sublime text插件开发

今天是五四青年节,在此先祝你们节日快乐!!!
--------------------------------------------华丽的分界线---------------------------------------------------
      从使用ST开始,就以为使用起来很顺手,在加上各类各样的插件,作起开发来还真能够省很多事儿。之前作.net一直用vs,不过说实话vs是最好用的IDE,没有之一;如今呢,入了前端的行,用起vs老是以为太过笨重,因而就用起了同事推荐的ST,今后哥开发js和php就全靠它了。
    51放假的时候突发奇想,本身整个sublime text的插件玩玩。之全部有这样的想法,主要是咱们的项目使用seajs负责模块的划分和加载,这样一来新建的模块就必须按照seajs要求的格式来开发,格 以下:
下面就以生成一个这样的模板为例来带领你们对ST插件开发有个大体的了解
 
ST插件开发
参考资料:http://my.oschina.net/theforever/blog/136554,哥就是参考这篇文档照葫芦画瓢整出来的,有兴趣的朋友情拜读原文,如今就不废话了立刻开始今天的主题
 
        ST的api是基于python的,详情见http://www.sublimetext.com/docs/2/api_reference.html
没有用过python的同窗别吓着了,哥也不会,可是在谷歌和百度的帮助下作出了这么一个插件
       其实ST已经为咱们开发插件准备了一些东西,Tools > 新插件 ST就会为何建立好这样一个模板
看不懂没有关系,其实我也不懂,后面看完那篇文章才有了点儿似懂非懂的感受。这是python的语法,之后再慢慢研究吧。
如今在 ST安装目录\Data\Packages(ST的插件都在此目录下)下新建一个文件用来保存即将开发的插件,目录以下
 *seajs.py 插件的主要文件,插件的功能有它实现
 *Default (Windows).sublime-keymap  配置插件的快捷键
 *Default.sublime-commands 配置命名,能够再ctrl+shift+p打开的命令窗口使用
 *Main.sublime-menu 菜单配置,也就是给咱们的插件一个菜单入口
    这3个配置文件其实很简单,都是json文本,若是不会写能够从其余插件那里copy一个过来改改就好了,咱们最主要的工做仍是使用ST提供的api在py文件中实现咱们想要的功能
   功能描述:选中原有js内容或者内容为空,调用咱们的插件,而后生成注释并包装成seajs要求的格式,同时会向右缩进
具体代码以下:
import sublime, sublime_plugin,time

class seajsCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        #当前视图
        view = self.view
        #当前选择的区域
        sels = view.sel()
        selContent = ''
        if len(sels) > 0 :
            #获取以一个选中区域
            sels = sels[0]
        #获取选中区域内容
        regionStr = view.substr(sels)
        #从新拼接字符串--前面插入一个tab
        for s in regionStr.split('\n'):
            selContent += '\t' + s + '\n';
        #剪切掉当前选中的内容
        view.run_command('cut')
        #获取当前时间
        curtime = time.strftime('%Y-%m-%d %X',time.localtime(time.time()))
        content = '/**\n  * @athor #做者\n  * @desc #描述\n  * @date ' + curtime + '\n  */\ndefine(function(require,exports,module){\n'
        content = content + '\t//代码开始,此处省略代码1W行\n'
        content = content + selContent;
        content = content + '\t//代码结束\n'
        content = content + '\n});'
        view.insert(edit,0,content)
        #清空剪切板
        sublime.set_clipboard('')

 

  最终效果:
       以上经过一个简单的例子来记录ST插件的开发,一共也就花了不到3个小时,不免有所疏漏并且记录的比较简单,还望各位网友海涵。
 
相关文章
相关标签/搜索