2011-07-12 99 views
3

我想開發一個簡單的Eclipse插件來了解它是如何工作的。獲取編輯器的內容

我對這個兩個問題:

我怎樣才能得到有效編輯的內容?

你有關於生命週期插件和合作的很好的文檔嗎?我無法在Google上找到真正的好文檔。

回答

8

關於當前編輯器的內容,有幾種方法可以做到這一點。下面的代碼沒有進行測試:

public String getCurrentEditorContent() { 
    final IEditorPart activeEditor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() 
      .getActiveEditor(); 
    if (activeEditor == null) 
     return null; 
    final IDocument doc = (IDocument) activeEditor.getAdapter(IDocument.class); 
    if (doc == null) return null; 

    return doc.get(); 
} 
+0

它工作正常。謝謝:) – Kiva

+0

這不工作,並返回null – Durin

+0

你在哪裏添加此代碼? –

1

我假設你已經熟悉使用Eclipse作爲IDE。

  • 使用新插件項目嚮導創建一個新的插件項目。
  • 在模板面板中,選擇「插件與主編的」
  • 閱讀生成的代碼

如果你認真地寫Eclipse插件,這本書,「Eclipse插件「由埃裏剋剋萊伯格和丹魯貝爾是非常寶貴的。在閱讀本書之前,我無法理解eclipse.org的內容。

9

東銘馬德森的回答是不錯,但也許有點更加透明(getAdapter()是非常不透明的)是一樣的東西:

public String getCurrentEditorContent() { 
    final IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() 
     .getActiveEditor(); 
    if (!(editor instanceof ITextEditor)) return null; 
    ITextEditor ite = (ITextEditor)editor; 
    IDocument doc = ite.getDocumentProvider().getDocument(ite.getEditorInput()); 
    return doc.get(); 
} 
+0

這個爲我做了詭計,非常感謝。 –