進一步深入Snippets。
在Script頭里面有一個DOM屬性,他確實是庫的引入功能。如DOM:http://download.eclipse.org/technology/dash/update/org.eclipse.eclipsemonkey.lang.javascript就是引入了在plug-in中org.eclipse.eclipsemonkey.lang.javascript_0.1.10.15171.jar中所包函的類庫,他是DOM的一個擴展,所以帶給了我們了一些內置的變量來提高我們的開發效率,如:resources,views,io,editors。在Eclipse Monkey Example中,這些內置變量出現的用法為
resources//資源對象
var files = resources.filesMatching(".*\\.java"); \\找到所有.java文件
views//視圖對象
var webView = views.getView("GooleWebView"); \\生成一個視圖
editors//編輯器對象
var editor = editores.activeEditor;\\得到一個活動的編輯器
具體這些變量還有什么屬性和方法,我參考了在org.eclipse.eclipsemonkey.lang.javascript_0.1.10.15171中的原代碼,如resources類,找到org.eclipse.eclipsemonkey.lang.javascript_0.1.10.15171\src\org\eclipse\eclipsemonkey\lang\javascript\doms\resources下的Resources.java,可以發現類里面就對應有一個filesMatching方法,而對于editores,在其構造函數中找到如下代碼:
String[] names = new String[] {
//"open",
"toString"
};
this.defineFunctionProperties(names, Editors.class, PERMANENT | READONLY);
this.defineProperty("all", Editors.class, PERMANENT | READONLY);
this.defineProperty("activeEditor", Editors.class, PERMANENT | READONLY);
這就告訴我們這個變量里面,我們可以使用all,activeEditor屬性和toString方法。
另外在plugins\com.aptana.ide.scripting_0.2.8.15171\docs中,提供了部分的js的接口,里面有描述部份變量和對象的使用,如Editors.js,File.js,Global.js等。
在上一節中,我提到了一個問題就是在我編寫的打開程序所在的文件夾時候,只能打開aptana方式打開的視圖的文件,通過追查源碼,我發現,aptana中提供的editor有css,html,js,php,xml這些編輯器類中都有提供了一個getFileContext()方法,而這是eclipse原來的視圖所不一定具有的,所以提示錯誤為找不到getFileContext()方法。
Snippets是一個輔助工具,靈活簡單,特別是在文本處理上能提供很好的幫助。但是他的功能還是受到局限,開發復雜的操作還是選用eclipse的plug-in功能為好。其待Snippets有很好的發展。