s Configurar un visor de código fuente

Configurar un visor de código fuente

Hasta este momento, hemos considerado el SourceViewer (visor de código fuente) en el contexto de la gestión de anotaciones de código fuente.

El SourceViewer es también el concentrador central para la configuración del editor con comportamiento conectable, como por ejemplo la ayuda flotante de texto y el resaltado de sintaxis.   Para ello, el editor suministra una SourceViewerConfiguration que se utiliza para configurar el SourceViewer cuando se crea.  El editor Java de ejemplo sólo necesita suministrar una SourceViewerConfiguration adecuada a sus necesidades.  El fragmento de código que figura a continuación muestra cómo el JavaTextEditor crea su configuración:

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

¿Qué hace JavaSourceViewerConfiguration?  Gran parte de su comportamiento se hereda de SourceViewerConfiguration, que define estrategias por omisión para comportamientos conectables del editor, como por ejemplo el sangrado automático, el comportamiento de deshacer, el comportamiento de la doble pulsación, la ayuda flotante de texto, el resaltado de sintaxis y el formato.  Los métodos públicos de SourceViewerConfiguration proporcionan los objetos de ayuda que implementan estos comportamientos.

Si el comportamiento por omisión definido en SourceViewerConfiguration no es apropiado para el editor, debe alterar temporalmente initializeEditor(), como se muestra más arriba, y establecer su propia configuración de visor de código fuente en el editor.  La configuración puede alterar temporalmente los métodos de SourceViewerConfiguration para suministrar objetos de ayuda personalizados que implementen el comportamiento del editor.   El fragmento de código que figura a continuación muestra dos de las formas en que JavaSourceViewerConfiguration suministra objetos de ayuda personalizados para el editor Java de ejemplo:

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());
}

En el primer método, se suministra una clase de ayuda personalizada para implementar la ayuda flotante de anotaciones.  En el segundo método, se solicita el tipo de contenido por omisión del documento para determinar si debe utilizarse una estrategia de sangrado automático personalizada o la estrategia por omisión.

Consulte la documentación de la API de SourceViewerConfiguration para conocer todas las maneras posibles de configurar un visor de código fuente mediante la alteración temporal de métodos.

Copyright IBM Corporation y otros 2000, 2003.