今天是五四青年節,在此先祝大家節日快樂!!!
--------------------------------------------華麗的分界線---------------------------------------------------
從使用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個小時,難免有所疏漏而且記錄的比較簡單,還望各位網友海涵。