今天正好看了一下editplus 的用戶工具,它允許通過命令行調用和標準輸出輸出與其它程序進行交互,可以傳入參數可以手動指定,也可以是當前選定內容,當前本件所有文本等,即然這樣我們就利用它的filter模式,即把所有文本內容傳過去,再使用回傳內容替換當前文本。那么我們還需要一個外部工具,為了方便起見,腳本類語言當然是首選,而在windows平臺下面可以使用vbs和JScript, 那么就用JScript吧,去網上找一個 http://github.com/einars/js-beautify/tree/master 的東西,它提供在線的js格式化功能,正好是js寫的, 拿它回來稍做改造一下,使用WScript的Std接口接收和發送內容
var input = "";
while(!WScript.StdIn.AtEndOfStream)
{
input += WScript.StdIn.ReadAll();
}
從輸入端讀入數據.
WScript.Echo(formated_code); 發送數據.
那么js的格式化就搞定了, 再來看看css的,很懷念VS里面可以將一個CSS定義都放到一行上面去,這樣看起來比較方便,否則代碼太長了要拖半天. 這樣的話看起來也不是太難,就自己動手寫一個了. 兩個文件我已經打包. 下載完可以解壓到任意目錄,接著就配置Editplus.
打開Tools->ConfigUserTools, 工具名稱可以隨意,比如jsFormatter, 在Command處寫上 Cscript.exe /nologo e:/jsFormatter.js 后面的路徑就是js的引用路徑, 并鉤選下面的run as text fileter,讓它作為文本過濾器使用,OK,現在打開一個待格式化的js 文件, 按下Ctrl+1(默認的第一個用戶工具快捷鍵), 可以看到文本已經格式化好了。
后記:
要是可以格式化html和php那就更好了, js-beautify 里面也可格式化html,可惜效果不太好,我就沒放進去,要是能有Aptana編輯器那么出色的效果就好了, 它可以完美處理js腳本, css, html的混合格式化, 想了一下似乎可以建一個java的控制臺程序引用Aptana的插件 jar 包就能實現, 通過ICodeFormatter可以完成對各種類型代碼的格式化, 留待以后研究.
不會造工具的猩猩永遠是猩猩,會自己制造工具的程序員可以有效提高自己的生產力,windows下面的VBScript, JScript和Python, Perl 等腳本語言都是很好的助手. 在這個應用中先查看Editplus幫助,再搜索MSDN腳本技術參考,順便復習一下正則表達式應用, 既能解決問題又能提高技能水平, 希望大家都行動起來自己動手DIY, good luck!
兩個文件見附件: js_css_Formatter.rar