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