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

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裡的變數可以不用事先宣告且能任意變型,這個特性當然能帶來方便性,但要小心日後的維護性。

##

您可能也會有興趣的類似文章

填寫回應

 

 

 

您可使用這些HTML標籤

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

隨機文章

  1. DOS命令使用技巧3:由DOS視窗將目前資料夾用檔案總管開啟的方法 
  2. 如何手動輸入Plurk的表情圖示? (162)
  3. [Database] Aqua Data Studio 4.0.2推出 
  4. 把VMWare丟掉! Free的x86模擬器: QEMU (7)
  5. Firefox: 使用者自訂檔 
  6. [WordPress] 使用Anchor在目前網頁裡瞬間移動 
  7. TiddlyWiki:「所見即所得」式的編輯插件 (2)
  8. 修改WordPress 2.8最新迴響的顯示格式 
  9. [轉貼] Me Media——個人媒體時代來臨! 
  10. [OOo] 自動圖文集與自動校正 

歷史熱門文章

  1. 如何手動輸入Plurk的表情圖示? (352,660 點擊/2008-09-29)
  2. 簡單放大Plurk輸入區的方法[修訂] (86,882 點擊/2008-09-29)
  3. 啟用&關閉中華電信ZyXEL P874的無線網路連線功能的步驟[修訂] (83,293 點擊/2011-06-01)
  4. Plurk CSS樣式自訂修改全攻略 (82,951 點擊/2009-07-04)
  5. 網路升級光世代50M/3M與設定ZyXEL P874 (52,915 點擊/2011-05-28)
  6. 輕鬆學會彈指神功-揭露AutoHotkey絕技 (42,991 點擊/2008-04-10)
  7. iPad新手入門技巧 (40,241 點擊/2011-02-05)
  8. 分享世博台灣館主題曲『台灣的心跳聲』MV(附歌詞+下載連結+新歌詞) (38,113 點擊/2010-04-27)
  9. 把HTC Touch HD操作介面換成Spb Mobile Shell,美觀又便利! (37,924 點擊/2009-02-18)
  10. 另一套適用手機的影片轉檔工具:WinAVI 3GP/MP4/PSP/iPod Video Converter (35,873 點擊/2009-04-18)