【问题标题】:Eclipse plugin for automatic help search of a selected text用于自动帮助搜索选定文本的 Eclipse 插件
【发布时间】:2015-08-05 12:01:11
【问题描述】:

我目前正在尝试制作一个 Eclipse 插件,您可以在其中从编辑器中选择文本,按下快捷方式(在我的情况下是 alt+F1),Eclipse 帮助搜索打开并自动搜索该选定文本。

现在,我已经在一个方法中进行了 Binding->Command->Handler 和文本选择,该方法将选定的文本作为字符串返回,我陷入了如何打开 Eclipse 帮助搜索和查询该特定字符串的问题我的代码。

我搜索了一下,发现 ISearchEngine2 从 org.eclipse.help.search 可以帮助我做我想做的事情,但由于我是 Eclipse 插件开发的新手,我真的不知道如何实现它。

有人可以帮我解决这个问题吗?

我的代码目前如下所示:

    public class Button1 extends AbstractHandler {

        public Button1() {}

            public String getCurrentSelection()
            {
            IEditorPart part =PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
            if (part instanceof ITextEditor)
            {
            final ITextEditor editor = (ITextEditor) part;
            ISelection sel = editor.getSelectionProvider().getSelection();
            if (sel instanceof TextSelection)
            {
                 ITextSelection textSel = (ITextSelection) sel;
                 return textSel.getText();
            }
            }
            return null;
            }

public void searchInHelp(String str){
...
}

        public Object execute(ExecutionEvent event) throws ExecutionException {
            IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
            String str = getTextSelection();
            searchInHelp(str);

            return null;
        }
    }

【问题讨论】:

  • 你的意思是Ctrl + Alt + G
  • 类似的东西,但是在 Eclipse 帮助中,并且使用了特定的范围。

标签: java eclipse eclipse-plugin


【解决方案1】:

ISearchEngine2 用于实际实现帮助系统的引擎。

想要使用帮助系统的插件使用IWorkbenchHelpSystem接口:

IWorkbenchHelpSystem help = PlatformUI.getWorkbench().getHelpSystem();

help.search("help search expression");

【讨论】:

  • 是的,它运行良好!正是我想要的。但是假设我想添加一个范围,所以这个搜索只会搜索,比如说,Workbench User Guide。如何使用帮助系统做到这一点?
  • 对不起,但不清楚 IWorkbenchHelpSystem 是否可以指定范围。可能可以在搜索表达式中指定一些内容,但我不知道是什么。
  • 显然我应该寻找另一种方法来设置范围,也许使用另一个接口,或者至少可以做一些解决方法。无论如何,非常感谢您的回答,它确实为我节省了几个小时的搜索时间,现在我的插件几乎可以正常工作了。
  • 我能找到的与范围有关的所有内容都在一个内部包中,因此不打算供其他插件使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-20
  • 2011-04-11
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
  • 2016-02-27
相关资源
最近更新 更多