【本身動手】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安裝目錄\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個小時,不免有所疏漏並且記錄的比較簡單,還望各位網友海涵。
 
相關文章
相關標籤/搜索