配置源查看器

到目前为止,我们已经在管理源代码注释的上下文中查看了 SourceViewer

SourceViewer 也是使用可插入行为(例如,文本悬浮和语法突出显示)来配置编辑器的中央集线器。为此,编辑器提供了 SourceViewerConfiguration,它用于在创建 SourceViewer 时配置它。Java 示例编辑器只需要提供满足其需要的 SourceViewerConfiguration。以下代码片段说明 JavaTextEditor 如何创建其配置。

protected void initializeEditor() {
	super.initializeEditor();
	JavaEditorEnvironment.connect(this);
	setSourceViewerConfiguration(new JavaSourceViewerConfiguration());
	...

JavaSourceViewerConfiguration 执行什么操作?它的大部分行为都是从 SourceViewerConfiguration 继承的,后者定义可插入编辑器行为(例如,自动缩进、撤销行为、双击行为、文本悬浮式帮助、语法突出显示和格式化)的缺省战略。SourceViewerConfiguration 中的公共方法提供实现这些行为的 helper 对象。

如果在 SourceViewerConfiguration 中定义的缺省行为不适合您的编辑器,则应当覆盖以上显示的 initializeEditor(),并将您自己的源查看器配置设置到编辑器中。您的配置可以覆盖 SourceViewerConfiguration 中的方法以提供实现编辑器的行为的定制 helper 对象。以下代码片段说明了 JavaSourceViewerConfiguration 为 Java 编辑器示例提供定制 helper 对象的两种方法:

public IAnnotationHover getAnnotationHover(ISourceViewer sourceViewer) {
	return new JavaAnnotationHover();
}
	
public IAutoIndentStrategy getAutoIndentStrategy(ISourceViewer sourceViewer, String contentType) {
	return (IDocument.DEFAULT_CONTENT_TYPE.equals(contentType) ? new JavaAutoIndentStrategy() : new DefaultAutoIndentStrategy());
}

在第一种方法中,提供了定制 helper 类来实现注释悬浮式帮助。在第二种方法中,查询了文档的缺省内容类型以确定是应当使用定制的自动缩进战略还是使用缺省战略。

有关可以通过覆盖方法来配置源查看器的所有方法的 SourceViewerConfiguration,参见 API 参考。

Copyright IBM Corporation and others 2000, 2003.