如何在用户点击edit-> find replace或ctrl + F的情况下启动查找和替换命令?我需要使用Java编写的插件来完成这项工作。
答案 0 :(得分:1)
启动对话框的操作是FindInFileActionDelegate(它有一些不同范围的姐妹类型),这可以在org.eclipse.search插件中找到。
所有委托都从名为RetrieverAction的公共父继承。 RetrieverAction的run()方法显示对话框并运行查询。您可以从此方法中获取相关处理。您可能需要注册为ISelectionListener以跟踪活动选择。
public void run() {
IWorkbenchPage page= getWorkbenchPage();
if (page == null) {
return;
}
TextSearchQueryProvider provider= TextSearchQueryProvider.getPreferred();
String searchForString= getSearchForString(page);
if (searchForString.length() == 0) {
MessageDialog.openInformation(getShell(), SearchMessages.RetrieverAction_dialog_title, SearchMessages.RetrieverAction_empty_selection);
return;
}
try {
ISearchQuery query= createQuery(provider, searchForString);
if (query != null) {
NewSearchUI.runQueryInBackground(query);
}
} catch (OperationCanceledException ex) {
// action cancelled
} catch (CoreException e) {
ErrorDialog.openError(getShell(), SearchMessages.RetrieverAction_error_title, SearchMessages.RetrieverAction_error_message, e.getStatus());
}
}