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 - 在 eclipse luna 4.4.0 中安装 sonarlint。失败

java - 缓存在 JAX-RS 中是如何工作的?

java - 你能用 Java 写虚函数/方法吗?

android - 错误 : "DENSITY_XHIGH cannot be resolved or is not a field"

eclipse - Tomcat 9.0.8 Http 状态 404

java - Eclipse 插件开发以编程方式在工作区之外创建项目

java - spring如何通过环境加载配置文件?

java - 可写文件权限问题

java - Selenium 网络驱动程序 3.3.1

python - 将 MySQLdb 与 PyDev 集成