今天是五四青年节,在此先祝大家节日快乐!!!
--------------------------------------------华丽的分界线---------------------------------------------------
     从使用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个小时,难免有所疏漏而且记录的比较简单,还望各位网友海涵。
 
 
posted @ 2014-05-04 22:40 我是小虎哥 阅读(6071) 评论(1) 推荐(0) 编辑
摘要: http:超文本传输协议,它允许将超文本标记(html)文档从web服务器传送到浏览器。目前版本HTTP/1.1http请求过程:proxy:代理服务器,网络信息的中转站。功能如下: 1.提高访问速度(缓存) 2.突破限制(FQ) 3.隐藏身份URl:统一资源定位符 ... 阅读全文
posted @ 2013-11-11 14:15 我是小虎哥 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 一、基础 在html中,标签通常是由开始标签和结束标签组成,开始标签用,结束标签用 元素是指包括开始标签和结束标签在内的整体,内容是指出去开始标签和结束标签的部分 属性是在开始标签中指定,用来描述标签。通常是"属性名"="值",多个属性之前用空格隔开 文件的定位:1、绝对地址,以http/https开头 2、相对地址,用/(根目录)、./(当前目录)、../(父目录)表示 颜色值的指定:1、用内置的颜色名称,如red 2、#+用16进制的RGB表示,如#FFFFF0,其中如果RGB的高4与低4位相同可以简写,如#CCCCCC简写为#CCC ... 阅读全文
posted @ 2013-11-10 16:05 我是小虎哥 阅读(608) 评论(0) 推荐(0) 编辑
摘要: 无论学习那种语言,字符串操作都是必备的基础。学php的时候总是会不知不觉的与C#比较,用起来总觉得怪怪的没有那么顺手,有些命名也差别很大,再加上很多函数命名是简写形式不百度下还真不知道什么意思。还有一点就是对中文字符的支持不是很好,原生的函数只能用在英文字符串上。 下面收集下常用的字符串处理函数,以备以后查用。一、字符串处理的常用函数int strlen(string str)获取字符串长度int strcmp(string str1,string str2)比较字符串大小,区分大小写int strcasecmp(string str1,string str2)比较字符串大小,不区分... 阅读全文
posted @ 2013-10-22 10:53 我是小虎哥 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 上个月开始学习php,算上中间放假的时间差不多有一个月了。这段时间呢,每天上班没事的时候不慌不忙的看下php,刚开始也只是看下php中文手册,看完一遍好像没什么感觉。于是就想啊,做个什么东西练练手,光看不练始终不知道自己学得如何,而且刚开始学php练手的东西不能太难、不耗费太多的时间、能快速看到结果,综合这些特点还是觉得弄个微信公众帐号比较合适。说起微信,早在一年前就已经应用到我们OA系统了,一直想尝试下但都半途而废,正好现在有很多时间可以慢慢研究,况且搞不定还可以找同事帮忙,于是乎开始了微信公众平台的研究。 在开始之前有两件事必须做:1是申请微信公众帐号。公众帐号分为订阅号和服务号... 阅读全文
posted @ 2013-10-21 19:43 我是小虎哥 阅读(1583) 评论(3) 推荐(0) 编辑
摘要: 一、什么是php? PHP即PHP: Hypertext Preprocessor(超文本处理器),是一种服务器端脚本语言,适用于创建web站点。开源免费二、php能做什么? 1. 服务器端脚本(主要方向) 2. 命令行脚本 3.桌面应用程序三、基础语法 1. 嵌入php脚本 ----总是可用 ----总是可用 2. 注释 // 这是一行注释 # 这是注释 /* * 这是注释 */ 3.数据类型 ----变量声明是不需要指定类型,其类型会在使用中自动确定 ... 阅读全文
posted @ 2013-10-14 18:06 我是小虎哥 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 在用wcf做为单纯的服务端的时候,发生错误是常有的事情,特别是在调用其他系统提供的接口的时候,发生的一些错误总是让人摸不着头脑,严重影响了错误的定位。做.net web开发的时候,我们可以在Global里面直接捕获全局异常,那么wcf是否也可以定义全局异常处理?对于已有的系统,逐个方法添加异常处理是很不现实而且还会伴随很大的风险,那么我们肯定希望这种改动尽可能的小甚至不用改动。下面分享一下实现的方法: 利用Attribure和IServiceBehavior实现wcf全局异常处理这种方式使用方便,基本不用改动原有的代码,效果如下:1 [WcfGlobalExceptionOpreationB. 阅读全文
posted @ 2013-10-09 14:46 我是小虎哥 阅读(3288) 评论(5) 推荐(4) 编辑
点击右上角即可分享
微信分享提示