雪湖小札@blogjava

          心情與技術(shù)文檔同行 http://hi.baidu.com/jingleq

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            24 Posts :: 2 Stories :: 4 Comments :: 0 Trackbacks

            沿著aptana的腳步,我遇到了Snippets,開始我還以為是aptana所特有的東西,原來Snippets來自Monkey-Eclipse Monkey。
            什么是Monkey呢?
            官方網(wǎng)址為http://www.eclipse.org/dash/
            Monkey是一個用于自動完成繁瑣的編程任務(wù)的動枋態(tài)腳本工具。他使用javascript的語法,有其自帶的開發(fā)庫又可以使用某些java的函數(shù)。因為它的簡單性,我認為它是區(qū)別于plugs-in的另外一種對eclipse的擴展的好工具。
            來,看看Eclipse Monkey Example帶給了我們什么應(yīng)用。
            屬于Editors的命令有:Commont Lines,Leading Spaces to Tabs,Leading Tabs to Spaces。
            屬于Experimental的命令有:Colorize as HTML,Exercise Editor,Load Metadata,Show Lexemes,Show Parse Tree.
            ......
            不一一列舉了。
            學(xué)習(xí)的資料是少,我看了看代碼,理解出了用法。仿照著寫了兩個Snippets,分別完成兩個單獨的功能。注意,由我自己的經(jīng)驗是需要3.2以上版本才對aptana與monkey有很好的支持。如果先裝了aptana之后再裝monkey的話,如monkey的文檔所說到的monkey example很難加載到菜單上,需要手動修改配置,具體方法還沒確定,如果先裝了monkey,就可以先新建出monkey example再裝aptana,這樣我們開發(fā)Snippets就簡單多了,直接生成了個workplace中的項目,寫完Snippets保存,馬上就能通過Snippets視圖中雙擊加載上的Snippets來運行。就建出的項目的Snippets也能馬上保存到Snippets視圖中。
            一.給某行代碼加上"http://"的注釋符號,這樣類似于eclipse中的Ctrl+?鍵的功能,但簡單實現(xiàn)當以經(jīng)是"http://"注釋的時候依然加上"http://",文件所處的位置對Snippets沒影響。

          /*
          * Menu: Editor > lines
          * Kudos: Kevin Lindsey
          * License: EPL 1.0
          * DOM: http://download.eclipse.org/technology/dash/update/org.eclipse.eclipsemonkey.lang.javascript
          * DOM: http://localhost/com.aptana.ide.scripting
          */

          //文件頭必須這樣定義好,在開頭,還有其它可定義的屬性,Menu就是加載到eclipse中的執(zhí)行命令的位置
          //DOM應(yīng)該是類似于類庫的一樣?xùn)|西,選擇需要加入
          /**
          * main
          */
          //main是執(zhí)行的方法的入口

          function main()
          {
          var editor = editors.activeEditor;
          var range = editor.selectionRange;
          var startLine = editor.getLineAtOffset(range.startingOffset);
          editor.beginCompoundChange();
          var offset = editor.getOffsetAtLine(startLine)
          editor.applyEdit(offset,0,"http://");
          editor.endCompoundChange();

          }

            二.這是一個很有用的功能,打開所編輯文件的所在文件夾,并對該文件選定。不知道為什么 editors.activeEditor.textEditor.getFileContext()只對aptana方式打開的文件有效。

          /*
          * Menu: File > OpenDir
          * Kudos: Kevin Lindsey
          * License: EPL 1.0
          * DOM: http://download.eclipse.org/technology/dash/update/org.eclipse.eclipsemonkey.lang.javascript
          * DOM: http://localhost/com.aptana.ide.scripting
          */
          /**
          * main
          */

          function main()
          {
          try {
                 //獲取文件路徑
                 var filename = editors.activeEditor.textEditor.getFileContext().getSourceProvider().getSourceURI();
                 filename = filename.replace("%20"," ");
                 //調(diào)用系統(tǒng)命令
                 java.lang.Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL Explorer.exe /select," + filename);
          } catch(e) {
                 Packages.org.eclipse.jface.dialogs.MessageDialog.openInformation(  
                  window.getShell(),  
                  "Monkey Dialog",
                  e
                 )
          }
          }

          posted on 2007-06-12 16:24 csnowfox 閱讀(547) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 三台县| 翁源县| 铜川市| 会泽县| 镇赉县| 驻马店市| 临漳县| 朝阳区| 呼图壁县| 石泉县| 麻江县| 祁门县| 海门市| 东丰县| 奉节县| 庄河市| 惠东县| 青田县| 额尔古纳市| 涟水县| 灵山县| 靖宇县| 防城港市| 兴安盟| 南安市| 桃园市| 抚松县| 通榆县| 鄢陵县| 阿拉尔市| 靖安县| 眉山市| 和平县| 兴文县| 辉县市| 青田县| 福海县| 宾川县| 马鞍山市| 万荣县| 吐鲁番市|