【问题标题】:Programming an Eclipse plugin, how to access a Java Editor's active selection?编写 Eclipse 插件,如何访问 Java 编辑器的活动选择?
【发布时间】:2011-01-30 20:15:45
【问题描述】:
我正在努力开发一个 Eclipse 插件。一般来说,您应该能够在 Java 编辑器中选择一些 Java 代码行,然后单击一个按钮并对所选代码执行一些操作。
我如何才能真正访问这个特定的 Java 编辑器和插件中的选择?作为一个骨架,我正在使用这个简单的 Hello World 示例,它在工具栏上添加了一个按钮,单击它时会弹出一个对话框。
我唯一拥有的是IWorkbenchWindow 的一个实例。使用这个 API,我会得到一个 IEditorPart 调用 window.getActivePage().getActiveEditor(),这对我的目的来说似乎毫无用处......
非常感谢任何帮助
干杯
-弗兰克
【问题讨论】:
标签:
editor
eclipse-plugin
selection
【解决方案1】:
您应该能够执行以下操作:
((JavaEditor) window.getActivePage().getActiveEditor()).getSelectionProvider().getSelection()
但是,听起来您正试图根据选择调用 IAction。大概这是通过 editorActions 扩展点(或类似的东西)注册的。如果是这样,我会看看 SelectionDispatchAction 类,它根据当前选择(顾名思义)调度动作。此类是内部 API,但您可能仍会发现它很有用。
【解决方案2】:
您可以使用window.getSelectionService().getSelection(),它为您提供一个ISelection 对象,表示活动部分中的活动选择。检查返回给您的是什么类型的ISelection 并采取相应措施。