首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在加载到多页编辑器中的Java编辑器中启用“标记实例”?

如何在加载到多页编辑器中的Java编辑器中启用“标记实例”?
EN

Stack Overflow用户
提问于 2010-07-22 22:31:45
回答 1查看 1K关注 0票数 3

我在一个多页编辑器上工作,加载打开多个文件(例如java,html)在一个多页编辑器的单独选项卡中。文件将使用与文件类型关联的默认编辑器打开,这些默认编辑器作为选项卡嵌入到多页编辑器中。

下面是我决定加载哪个编辑器的方法(对于文件类型):

代码语言:javascript
复制
void createPage()  throws PartInitException 
{
    // get editor registry
    IEditorRegistry editorRegistry = Activator.getDefault().getWorkbench().getEditorRegistry();

    // loop through mappings until the extension matches.
    IEditorDescriptor editorDescriptor = editorRegistry.getDefaultEditor(((IFileEditorInput)getEditorInput()).getFile().getName());

    // if no editor was found that is associated to the file extension
    if (editorDescriptor == null) 
    {
    IEditorRegistry registry = Activator.getDefault().getWorkbench().getEditorRegistry();
    editorDescriptor = registry.findEditor(EditorsUI.DEFAULT_TEXT_EDITOR_ID); 
    }

    IConfigurationElement configuration = ((EditorDescriptor) editorDescriptor).getConfigurationElement();

    String className = configuration.getAttribute("class");


    IEditorPart editor;
    try 
    {
    editor = (IEditorPart) WorkbenchPlugin.createExtension(configuration, "class");

    } catch (CoreException e) {
        throw new RuntimeException(e);
    }

final int index = addPage(editor, getEditorInput());
setPageText(index, "TAB_NAME");
}

创建多选项卡编辑器时没有任何问题,并且在选项卡中加载了正确的编辑器。

但是,当加载到选项卡中时,“标记实例”功能在Java编辑器中不起作用。

我验证了标记出现已打开。当我在多页编辑器选项卡中的java编辑器中选择一个变量时,它不会突出显示该变量的其他实例。但是,如果我同时在我的多标签编辑器和单独的java编辑器中打开该文件,并且在单独的java编辑器中选择一个变量,它将突出显示单独的java编辑器以及嵌入在我的多页编辑器中的java编辑器中的其它事件。因此,该功能似乎是启用并加载的,只是当在嵌入式编辑器中进行选择时,它不会执行标记出现功能。

需要进行哪些更改才能在嵌入到我的多选项卡编辑器中的java编辑器中使用标记出现功能?

我的理解是Mark is是一个中心服务,所以我假设我错过了在编辑器中选择某些内容时更新此服务的部分。你知道需要做些什么才能更新服务吗?

注意:只有当java编辑器嵌入到多页编辑器中时,才会出现这个问题。

EN

回答 1

Stack Overflow用户

发布于 2010-07-23 04:42:19

这个功能内置于org.eclipse.jdt.ui的org.eclipse.jdt.internal.ui.javaeditor.JavaEditor中,因为它是一个内部类。但是,您可以忽略它并子类化它。

org.eclipse.jdt.internal.ui.javaeditor.ToggleMarkOccurrencesAction将适用于所有打开的JavaEditors (尝试使用标准CompilationUnitEditor打开同一个类两次,您将看到两个“标记实例”标记)。

这是因为在JavaPlugin的PreferenceStore中设置了一个中心属性PreferenceConstants.EDITOR_MARK_OCCURRENCES。

为了显示ToggleMarkOccurrencesAction按钮,您需要提供一个IEditorActionBarContributor (查看org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditorActionContributor)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3309965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档