今天是五四青年节,在此先祝你们节日快乐!!!
--------------------------------------------华丽的分界线---------------------------------------------------
从使用ST开始,就以为使用起来很顺手,在加上各类各样的插件,作起开发来还真能够省很多事儿。之前作.net一直用vs,不过说实话vs是最好用的IDE,没有之一;如今呢,入了前端的行,用起vs老是以为太过笨重,因而就用起了同事推荐的ST,今后哥开发js和php就全靠它了。
51放假的时候突发奇想,本身整个sublime text的插件玩玩。之全部有这样的想法,主要是咱们的项目使用seajs负责模块的划分和加载,这样一来新建的模块就必须按照seajs要求的格式来开发,格
式
以下:
下面就以生成一个这样的模板为例来带领你们对ST插件开发有个大体的了解
ST插件开发
没有用过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个小时,不免有所疏漏并且记录的比较简单,还望各位网友海涵。