【自己動手】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個小時,難免有所疏漏而且記錄的比較簡單,還望各位網友海涵。
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM