java - 如何在 SourceViewer 中显示查找替换对话框(快捷键 Ctrl+F)

标签 java eclipse eclipse-plugin eclipse-rcp

我在 View 中使用 sourceViewer,我定义了命令 org.eclipse.ui.edit.findReplace 并为该命令创建一个处理程序以调用 FindReplace 操作。

我还定义了按键绑定(bind)来调用命令(Ctrl+F)

现在我已经重写了 View 类中的 getAdapter 方法,并添加了一个检查该类是否等于 org.eclipse.jface.text.IFindReplaceTarget 然后返回 textViewer.getFindReplaceTarget()。

但对我来说没有任何作用,无论是快捷键(Ctrl+F)、命令都没有调用,也没有在 getAdapter 方法中为 IFindReplaceTarget 编写的检查正在执行。

谁能帮我看看出了什么问题或者如何在 SourceViewer 中实现查找替换功能?

最佳答案

我在 Eclipse 源代码中看不到任何为此使用处理程序的内容,而是它们都使用旧样式的操作。这就是 org.eclipse.jdt.internal.debug.ui.display.DisplayView 的作用:

FindReplaceAction findReplaceAction = new FindReplaceAction(bundle, "find_replace_action_", this); 
findReplaceAction.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_FIND_AND_REPLACE);
setGlobalAction(ActionFactory.FIND.getId(), findReplaceAction);

protected void setGlobalAction(String actionID, IAction action) {
    IActionBars actionBars = getViewSite().getActionBars();
    actionBars.setGlobalActionHandler(actionID, action);
}

关于java - 如何在 SourceViewer 中显示查找替换对话框(快捷键 Ctrl+F),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19768505/

相关文章:

eclipse - 配置 "serve modules without publishing"时出错

java - JAXB eclipse 错误 : There's no JAXB 2. 2 API 在类路径中

java - 停止在 Eclipse 重新启动时打开 Viewparts 窗口

java - 从循环内的列表中删除元素

java - 尝试从命令行编译 Java 时收到错误

java - 如何仅在 Java 程序需要时才将 'y' 或 'n' 传递给 shell 脚本?

java - 我想更改文本流或标签中的字体大小

java - 如何在 Mac 上使用较新的 JRE 或 JDK 运行 Android Studio?

eclipse - 如何从Juno卸载Egit功能?

jquery - 在 Eclipse 中获取独立 HTML 的 jQuery 和 AngularJS 内容辅助/自动完成 "file"