[jEdit] 使用BeanShell巨集自行擴充功能

2007/11/17 | jEdit編輯器 | 作者: 簡睿| 閱讀總數 1298 , 1 (本日)Share/Bookmark

 

jEdit提供了多種擴充機制(BeanShellJPython等)讓使用者能自行增加功能,原本以為擴增的程序會很複雜,並且可能要使用不熟悉的語法來撰寫,沒想到原來BeanShell根本就是Java的語法,如果你已經會Java了,那麼幾乎不用學習就能馬上用BeanShell寫擴充巨集了。最快學會擴充巨集的方法,就是由閱讀其內建的巨集程式開始。

首先用jEdit開啟C:\Program Files\jEdit\Macros\Text\Insert_Date.bsh,我們看到的就像是一個標準的Java程式,先是定義了一個函數insertDate( ),最後面再叫用此函數,百分之九十五的程式都是一看就懂,在第53~55行的地方才是我們要注意的重點:

  // inserting date and internet time to textarea
textArea.setSelectedText(Calendar.getInstance().getTime().toString()
+ " @" + (int)swatch + " /Internet Time/");

此段程式使用系統變數textArea的setSelectedText( ) method把目前時間插入選取文字。

jEdit有幾個預設好了的系統變數,用來表示jEdit的各項主要元件,透過這些變數就能存取jEdit的各個設定並做需要的操作:

  • textArea:代表的是編輯區的文字區域
  • buffer:代表了目前編輯中的檔案緩衝區
  • view:代表了目前編輯中的檢視物件,UI的輸出都要透過此物件

第58~61行出現了另一個jEdit的類別Macros:

if (buffer.isReadOnly())
Macros.error(view, "Buffer is read-only.");
else
insertDate();

buffer.isReadOnly( )判斷目前編輯檔案是否是唯讀狀態,如果是唯讀的檔案則不能插入時間,而以Macros.error( )於當前的view顯示錯誤對話窗。Macros類別提供了許多放的method,按F1開啟jEdit Help找到‘jEdit API Reference‘裡的org.gjt.sp.jedit package,其內有包含Macros在內的許多系統類別;Macros有幾個method經常會使用到:

  • Macros.error(view, “message”): 顯示錯誤訊息窗
  • Macros.message(view, “message”); 顯示訊息窗
  • Macros.input(view, “message”, default-value); 顯示輸入對話窗

再來看另一個巨集:C:\Program Files\jEdit\Macros\Text\Insert_Tag.bsh,這個巨集將選取文字組成HTML標籤。重點解說如下:

行號 程式碼片段 說明
29 caret = textArea.getCaretPosition(); 取得目前游標位置
30 tag = Macros.input(view, “Enter name of tag:”); 讓使用者輸入標籤名稱
32 text = textArea.getSelectedText(); 取得選取文字
38 textArea.setSelectedText(sb.toString()); 把組好的文字寫回選取文字

我們可以注意到caret、tag、text等變數都沒有宣告型別而能直接使用,這是BeanShell和Java的一個重大差異,在BeanShell裡的變數可以不用事先宣告且能任意變型,這個特性當然能帶來方便性,但要小心日後的維護性。

##

類似主題的文章

撰寫留言





隨機文章

本日點擊排行 本周點擊排行 本月點擊排行 歷史點擊排行 | 統計表
  1. 修改WordPress 2.8最新迴響的顯示格式 (2 人次, 2009-06-17)
  2. 參戰ClickClickClick大賽:我的自動點擊程式ccc.exe V1.3 (2 人次, 2007-06-16)
  3. 將噗浪的視窗高度變大,加上分隔線,以方便閱讀 (1 人次, 2009-06-06)
  4. 設定Spb Mobile Shell 3.0的桌面小元件(Widgets)的步驟 (1 人次, 2009-04-28)
  5. [Firefox] 自動統計的瀏覽紀錄排行榜外掛:New Tab King (1 人次, 2009-04-26)
  6. 快速切換資料夾之台灣之光:Folder Menu (1 人次, 2009-04-22)
  7. 另一套適用手機的影片轉檔工具:WinAVI 3GP/MP4/PSP/iPod Video Converter (1 人次, 2009-04-18)
  8. HTC HD Touch的專屬多媒體轉檔工具:Video Converter 1.21 (1 人次, 2009-04-11)
  9. 用7-Zip Theme Manager幫7-Zip改頭換面 (1 人次, 2009-03-31)
  10. Spb Mobile Shell設定備忘 (1 人次, 2009-02-19)
  11. 功能眾多的開源剪貼簿工具:ArsClip (1 人次, 2009-01-23)
  12. [Windows] 用mklink與junction建立資料夾連結 (1 人次, 2009-01-11)
  13. 川口開治的鉅著-漫畫「次元艦隊」 (1 人次, 2006-05-01)
  14. 八里小艇地中海餐廳一遊 (1 人次, 2006-06-03)
  15. [jEdit] 使用BeanShell巨集自行擴充功能 (1 人次, 2007-11-17)
  16. [趣味] 長崎公車站旁出現-龍貓(Totoro)!-的雕像 (1 人次, 2008-01-24)
  17. 強化閱讀第2噗:變更噗浪回應的字體與背景顏色 (1 人次, 2009-06-07)
  18. 超簡單MSN下載檔案自動分類 (1 人次, 2010-02-27)
  19. 改寫AutoHotkey輸出中文字串的寫法http://jdev.tw/blog/1434/autohotkey-sendinput-asc (1 人次, 2009-06-20)
  20. 使用IMETOOL有效控制中文輸入法 (1 人次, 2010-02-27)
  21. 第4個jqGrid範例: 資料列處理 (1 人次, 2010-02-14)
  22. 第3個jqGrid範例: XML與XML STRING格式 (1 人次, 2010-02-14)
  23. ZScreen:一氣呵成的單鍵「抓圖與傳檔」工具 (1 人次, 2010-01-24)
  24. [Plurk] 如何顯示12個噗浪朋友圖示?(結論:別人的是12個,自己的只會顯示8個) (1 人次, 2010-01-24)
  25. Windows 7的常用快速鍵速查表 (1 人次, 2010-01-05)
  26. 啟用Vista與Windows 7的無敵模式(God Mode) (1 人次, 2010-01-03)
  27. Vista IE8的window.open異常 (1 人次, 2009-11-04)
  28. 如何在同一部電腦裡安裝並啟動多套OpenOffice.org (1 人次, 2009-10-13)
  29. 網路帳號不要用懶人密碼! (1 人次, 2009-09-17)
  30. 能在HD手機上順暢運行的3D賽車+射擊遊戲:Xtrackt (1 人次, 2009-09-12)
  31. 移動噗浪的回應時間位置,使能更清楚看到回應時間[修訂] (1 人次, 2009-07-04)
  32. 把落落長的噗友暱稱變獨立一行的噗浪變身法 (1 人次, 2009-07-03)
  33. HTC Touch HD的Opera無法瀏覽 (1 人次, 2009-06-28)
  34. 變化你的噗浪暱稱:Unicode我♥你-啦啦啦♪☺〠 (1 人次, 2009-06-23)
  35. CSS-BuMa (Cascading Style Sheets - Button Maker) :製作樣式表功能表與按鈕的工具 (1 人次, 2007-05-13)
  36. 免費計數網站 SiteMeter 換新妝 (1 人次, 2007-05-09)
  37. 轉貼張天立(前博客來總經理)公開信之一 (1 人次, 2007-08-31)
  38. [設備] D-Link DIR-655 Gigabit 無線寬頻路由器與可瑞加WLUSB2GNR正式上線使用 (1 人次, 2008-02-19)
  39. 指定Plurk回應串對話者的小技巧 (1 人次, 2008-09-29)
  40. 為何ThinkPad X61磁碟燈號持續閃動? (1 人次, 2008-04-01)
  41. [Sites] 網頁整篇多國語言翻譯:WorldLingo、BabelFish、同文堂 (1 人次, 2005-03-10)
  42. HiStats 2.0 Beta終於推出 (1 人次, 2008-10-01)
  43. HighLight:程式碼顯示的美化工具 (1 人次, 2008-10-04)
  44. 中國時報的Blog專題報導: 全研究!Blog究極歷險 (1 人次, 2005-04-16)
  45. Plurk的快速鍵 (1 人次, 2008-10-03)
  46. OpenOffice.org 2.0.3正式版似乎解決了新注音輸入法的問題了 (1 人次, 2006-07-09)
  47. 幫荒廢的部落格加上自動提示轉址功能 (1 人次, 2007-02-16)
  48. SCO聲請破產保護 (1 人次, 2007-09-17)
  49. [Tools] 為硬碟做健康檢查:HDDlife; 硬碟測試:HD_Speed、HD Tune (1 人次, 2005-03-18)
  50. [轉貼] 部落格賺錢術》高人氣部落格與異業結盟 月入百萬不是夢 (1 人次, 2007-04-30)
標籤雲

簡睿隨筆@新世界 使用的快取程式為 WP Super Cache