雪湖小札@blogjava

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

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

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

          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"," ");
                 //調用系統命令
                 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 閱讀(555) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 大冶市| 玛多县| 万全县| 潜山县| 基隆市| 阿克苏市| 彩票| 洪湖市| 五台县| 万宁市| 理塘县| 托克逊县| 胶州市| 黎川县| 新兴县| 酉阳| 运城市| 新竹县| 博白县| 沙洋县| 郸城县| 顺昌县| 务川| 洛浦县| 葵青区| 措美县| 郸城县| 密山市| 德格县| 巢湖市| 若尔盖县| 甘孜县| 西盟| 齐齐哈尔市| 当涂县| 潜江市| 利辛县| 襄城县| 景洪市| 石林| 玛曲县|