Eclipse插件开发-自定义编辑器首选项

问题描述 投票:0回答:1

我正在开发eclipse插件。右键单击并在我的编辑器插件中选择“首选项”时,它将在“常规”下显示两棵树“外观”和“编辑器”。我想从Window-> preference中添加更多的节点,该节点显示代码模板,内容辅助等等。我怎样才能做到这一点?我尝试从AbstractDecoratedTextEditor覆盖collectContextMenuPreferencePages,并尝试添加与代码模板相关的扩展名,但是其未在首选项页面中显示。

    @Override
     protected String[] collectContextMenuPreferencePages() {
    return new String[] { "org.eclipse.ui.preferencePages.GeneralTextEditor", //$NON-NLS-1$
            "org.eclipse.ui.editors.preferencePages.Annotations", //$NON-NLS-1$
            "org.eclipse.ui.editors.preferencePages.QuickDiff", //$NON-NLS-1$
            "org.eclipse.ui.editors.preferencePages.Accessibility", //$NON-NLS-1$
            "org.eclipse.ui.editors.preferencePages.Spelling", //$NON-NLS-1$
            "org.eclipse.ui.editors.preferencePages.LinkedModePreferencePage", //$NON-NLS-1$
            "org.eclipse.ui.preferencePages.ColorsAndFonts", //$NON-NLS-1$
            "org.eclipse.ui.editors.templates",
    };
}

如何添加窗口中显示的常规节点->对编辑器首选项的首选项?谢谢。

java eclipse eclipse-plugin eclipse-rcp plugin.xml
1个回答
0
投票

这是覆盖的正确方法。

这是Java编辑器的作用:

@Override
protected String[] collectContextMenuPreferencePages() {
    String[] inheritedPages= super.collectContextMenuPreferencePages();
    int length= 10;
    String[] result= new String[inheritedPages.length + length];
    result[0]= "org.eclipse.jdt.ui.preferences.JavaEditorPreferencePage"; 
    result[1]= "org.eclipse.jdt.ui.preferences.JavaTemplatePreferencePage"; 
    result[2]= "org.eclipse.jdt.ui.preferences.CodeAssistPreferencePage"; 
    result[3]= "org.eclipse.jdt.ui.preferences.CodeAssistPreferenceAdvanced"; 
    result[4]= "org.eclipse.jdt.ui.preferences.JavaEditorHoverPreferencePage"; 
    result[5]= "org.eclipse.jdt.ui.preferences.JavaEditorColoringPreferencePage"; 
    result[6]= "org.eclipse.jdt.ui.preferences.FoldingPreferencePage"; 
    result[7]= "org.eclipse.jdt.ui.preferences.MarkOccurrencesPreferencePage";
    result[8]= "org.eclipse.jdt.ui.preferences.SmartTypingPreferencePage";
    result[9]= "org.eclipse.jdt.ui.preferences.SaveParticipantPreferencePage";
    System.arraycopy(inheritedPages, 0, result, length, inheritedPages.length);
    return result;
}

当然,所有这些ID必须以常规方式使用org.eclipse.ui.preferencePages扩展点声明。

数组的第一页是显示首选项时选择的那一页。

© www.soinside.com 2019 - 2024. All rights reserved.