Eclipse插件开发——自定义编辑器偏好
Eclipse plugin development - customizing editor preference
我正在开发 eclipse 插件。当右键单击并在我的编辑器插件中选择 'preferences' 时,它会在 'General' 下显示两棵树 'Appearance' 和“编辑器”。我想从 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",
};
}
如何将 window--> 偏好设置中的常规节点添加到编辑器偏好设置中?谢谢。
这是正确的覆盖方法。
这就是 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
扩展点声明。
数组中的第一页是显示首选项时选择的页面。
我正在开发 eclipse 插件。当右键单击并在我的编辑器插件中选择 'preferences' 时,它会在 'General' 下显示两棵树 'Appearance' 和“编辑器”。我想从 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",
};
}
如何将 window--> 偏好设置中的常规节点添加到编辑器偏好设置中?谢谢。
这是正确的覆盖方法。
这就是 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
扩展点声明。
数组中的第一页是显示首选项时选择的页面。