【问题标题】:Get selected Java Element from editor in eclipse从 Eclipse 中的编辑器中获取选定的 Java 元素
【发布时间】:2012-06-08 13:28:19
【问题描述】:

我正在开发一个 Eclipse 插件,我需要从活动编辑器中获取选定的元素。我已经想出了(一种方法)来做到这一点。以下是关键行:

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

(这类似于问题Eclipse plugin : Get the enclosing class and member name的答案)

但我遇到的问题是,这只会返回已声明的方法、类型、字段等,而不会返回调用的方法。例如,在活动编辑器中给出以下代码:

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

即使插入符号位于“ClassA”或“run”上,我的代码仍会返回方法“foo”。有谁知道如何获得被调用的方法?

【问题讨论】:

标签: java eclipse plugins selection


【解决方案1】:

改用 ITypeRoot#codeSelect()。

【讨论】:

  • 我不熟悉Class#method() 符号。你能澄清一下吗? @Reyan 的代码应该在哪里调用?
  • '#' 只是 '.' 的变体在这种情况下,它只是意味着在 ITypeRoot 类型的对象上调用 codeSelect()。因此我用“root.codeSelect(offset, length)”替换了“root.getElementAt(offset)”
猜你喜欢
  • 2011-01-24
  • 1970-01-01
  • 2021-02-17
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-12
相关资源
最近更新 更多