zoukankan      html  css  js  c++  java
  • 【自己动手】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安装目录DataPackages(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('
    '):
                selContent += '	' + s + '
    ';
            #剪切掉当前选中的内容
            view.run_command('cut')
            #获取当前时间
            curtime = time.strftime('%Y-%m-%d %X',time.localtime(time.time()))
            content = '/**
      * @athor #作者
      * @desc #描述
      * @date ' + curtime + '
      */
    define(function(require,exports,module){
    '
            content = content + '	//代码开始,此处省略代码1W行
    '
            content = content + selContent;
            content = content + '	//代码结束
    '
            content = content + '
    });'
            view.insert(edit,0,content)
            #清空剪切板
            sublime.set_clipboard('')
      最终效果:
           以上通过一个简单的例子来记录ST插件的开发,一共也就花了不到3个小时,难免有所疏漏而且记录的比较简单,还望各位网友海涵。
     
     
  • 相关阅读:
    Mysql安装
    Python的内存管理机制
    Ansible模块
    Redis持久化
    Linux——ansible(1)
    Flask
    Flask入门
    ajax处理回调函数,用ajax向后台发送数据
    数字类型钱币转换为大写
    ligerui多选动态下拉框
  • 原文地址:https://www.cnblogs.com/icewater506/p/3708129.html
Copyright © 2011-2022 走看看