2012-06-07 43 views
2

我正在使用eclipse插件,並且需要從活動編輯器中獲取選定的元素。我已經想出了(單向)做到這一點。下面是關鍵線路:從eclipse中的編輯器獲取選定的Java元素

ITypeRoot root = EditorUtility.getEditorInputJavaElement(activeJavaEditor, false); 
selectedElement = root.getElementAt(offset); 

(這是類似的回答這個問題Eclipse plugin : Get the enclosing class and member name

但是我遇到的問題是,這將只返回聲明的方法,類型,字段等,而且從未調用過。例如,考慮到活動的編輯器的代碼:「foo」的

public void foo() { 
    ClassA.run(); 
} 

即使如果光標定位在「ClassA的」或「跑,」我的代碼仍返回方法有誰知道如何也得到調用方法?

+0

此線程可能會幫助你:http://stackoverflow.com/questions/10453617/how-can-i-get-the-selected-code-in-eclipse/ – Alex

回答

1

嘗試ITypeRoot#codeSelect()代替。

+0

哇,好吧,工作,謝謝! – Reyan

+0

我不熟悉'Class#method()'表示法。你能澄清一下嗎? @ Reyan的代碼應該在哪裏打這個電話? – StockB

+0

'#'只是'。'的變體。在這種情況下,它只是調用ITypeRoot類型的對象上的codeSelect()。因此,我將「root.getElementAt(offset)」替換爲「root.codeSelect(offset,length)」 – Reyan

相關問題