s Configurando um Visualizador de Origem

Configurando um Visualizador de Origem

Até agora temos visto o SourceViewer no contexto de gerenciamento de anotações de código fonte.

O SourceViewer também é o hub central para configurar seu editor com um comportamento conectável como a focalização de texto e realce de sintaxe.   Para isso, o editor fornece um SourceViewerConfiguration que é usado para configurar o SourceViewer quando ele é criado.  O editor de exemplo Java precisa fornecer somente um SourceViewerConfiguration apropriado para suas necessidades.  O fragmento a seguir mostra como o JavaTextEditor cria sua configuração:

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

O que o JavaSourceViewerConfiguration faz?  Grande parte de seu comportamento é herdada de SourceViewerConfiguration, que define estratégias padrão para comportamentos de editor conectável como recuo automático, comportamento para desfazer, comportamento de clique duplo, focalização de texto, realce de sintaxe e formação.  Os métodos públicos em SourceViewerConfiguration fornecem os objetos de assistente que implementam esses comportamentos.

Se o comportamento padrão definido em SourceViewerConfiguration não for adequado ao seu editor, você deve substituir initializeEditor() como mostrado acima e definir sua própria configuração do visualizador de origem no editor.  Sua configuração pode substituir métodos em SourceViewerConfiguration para fornecer objetos de assistente personalizados que implementam o comportamento para o seu editor.  O fragmento a seguir mostra duas das maneiras que o JavaSourceViewerConfiguration fornece objetos de assistente personalizados para o exemplo do editor Java:

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

No primeiro método, uma classe de assistente personalizada é fornecida para implementar focalização de anotação.  No segundo método, o tipo de conteúdo padrão do documento é consultado para determinar se será utilizada uma estratégia de recuo automático personalizada ou a estratégia padrão.

Consulte a referência da API por SourceViewerConfiguration para obter todas as maneiras em que você pode configurar um visualizador de origem fazendo a substituição de métodos.

Copyright IBM Corporation e outros 2000, 2003.