今天是五四青年节,在此先祝大家节日快乐!!!
--------------------------------------------华丽的分界线---------------------------------------------------
     从使用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个小时,难免有所疏漏而且记录的比较简单,还望各位网友海涵。
 
 

【自己动手】sublime text插件开发的更多相关文章

  1. sublime text 插件开发

    前言:术语和参考资料 sublime text 2的扩展模式相当的丰富.有多种方法可以修改语法高亮模式以及所有的菜单等.它还可以创建一个新的build系统,自动补全,语言定义,代码片段,宏定义,快捷键 ...

  2. Vue.js 入门指南之“前传”(含sublime text 3 配置)

    题记:关注Vue.js 很久了,但就是没有动手写过一行代码,今天准备入手,却发现自己比菜鸟还菜,于是四方寻找大牛指点,才终于找到了入门的“入门”,就算是“入门指南”的“前传”吧.此文献给跟我一样“白痴 ...

  3. 配置sublime text 3 的Python开发环境

    为了在sublime实现像Python自带idle一样的F5交互功能: 首先安装package control然后install Sublime REPL:然后配置 Preference-->P ...

  4. sublime text 2代码片段(Snippet)功能的使用

    “snippet”在英语里面是“片段”的意思.当我们编码时候,通常想要打几个简略的字符串,就出来一些固定的模板. 例如:使用snippet在新建文件时快速生成HTML头部信息等. 定义很简单,菜单:t ...

  5. Go语言环境配置 Sublime Text + GoSublime+ gocode + MarGo组合

    买来<Go Web编程>一书学习Go语言,结果按照书中的步骤搭建,发现部分站点已经失效了,查了网上好多教程也没有人能够说清楚如何搭建.还是自己动手找方法吧,经过自己的不懈努力终于搭建好了. ...

  6. 如何在Sublime Text中添加代码片段

    我们在编写代码的时候,总会遇到一些需要反复使用的代码片段.这时候就需要反复的复制和黏贴,大大影响效率.我们利用Sublime Text的snippet(代码片段)功能,就能很好的解决这一问题.通俗的讲 ...

  7. Sublime Text Snippets(代码片段)功能

    原文链接:http://www.bluesdream.com/blog/sublime-text-snippets-function.html 我们在编写代码的时候,总会遇到一些需要反复使用的代码片段 ...

  8. Windows下TeX Live + Sublime Text 3 + Sumatra PDF配置

    本文写给我的师弟们,如何自己动手配置LaTeX环境(通过LeX Live + Sublime Text 3 + Sumatra PDF). 1.TeX Live 配置 首先从TeX Live 下载IS ...

  9. Sublime Text下使用SFTP/FTP插件

    一.前言 本文主要记录了Sublime Text编辑器下的SFTP/FTP的安装使用,方便linux和windows下的文件编辑,只是简单的记录,有不足之处,还望指教. 二.Linux和windows ...

随机推荐

  1. SQL 语句转换格式函数Cast、Convert 区别

    SQL 语句转换格式函数Cast.Convert CAST和CONVERT都经常被使用.特别提取出来作为一篇文章,方便查找. CAST.CONVERT都可以执行数据类型转换.在大部分情况下,两者执行同 ...

  2. [HDU 1011] Starship Troopers (树形dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1011 dp[u][i]为以u为根节点的,花了不超过i元钱能够得到的最大价值 因为题目里说要访问子节点必 ...

  3. Loadrunner 添加windows资源没反应

    使用 LoadRunner Controller 添加Windows资源系统没有反应, 解决办法 : 1.关闭Windows 防火墙 2.若使用的不是本机 1) 首先要启动所监测机器的remote r ...

  4. [转] iOS开发之使用lipo命令制作模拟器与真机通用静态库

    转自 http://blog.csdn.net/jinglijun/article/details/8276089 通常在项目中使用静态库的时候都会有两个版本,一个用于模拟器,一个用于真机,因为Mac ...

  5. Python计算程序运行时间

    方法1 import datetime starttime = datetime.datetime.now() #long running endtime = datetime.datetime.no ...

  6. 利用canvas实现的中点Bresenham算法

    Bresenham提出的直线生成算法的基本原理是,每次在最大位移方向上走一步,而另一个方向是走步还是不走步取决于误差项的判别,具体的实现过程大家可以去问度娘.我主要是利用canvas画布技术实现了这个 ...

  7. Mac OS下Boot2Docker的网络映射设置

    Mac系统下安装Boot2Docker造成了三层网络:Mac->VirtualBox->Docker,通过docker run 参数-p/-P,能手动或自动设置VirtualBox与Doc ...

  8. Flex 播放视频

    Flex提供视频控件(VideoDisplay Control)播放图像和声音. 视频控件只支持播放,暂停和停止功能.不提供倒退和前进功能.只支持播放FLV格式的影片. 1. 视频控件标签 对应的MX ...

  9. 将Excel中数据导入数据库(一)

    在工作中经常要将Excel中数据导入数据库,这里介绍一种方法. 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: Excel中数据导入数据库帮助类如下: using System; ...

  10. com学习(四)——用 ATL 写第一个组件

    建立 ATL 工程 步骤2.1:建立一个工作区(WorkSpace). 步骤2.2:在工作区中,建立一个 ATL 工程(Project).示例程序叫 Simple1,并选择DLL方式,见图一. 图一. ...