s
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.