Nous avons jusqu'alors envisagé SourceViewer dans le contexte de gestion d'annotations du code source.
SourceViewer constitue également un pilier central pour configurer l'éditeur avec un comportement connectable, tel que l'emploi de bulles d'aide dans le texte et la mise en évidence de la syntaxe. Pour ces fonctions, l'éditeur fournit un élément SourceViewerConfiguration utilisé pour configurer l'élément SourceViewer à sa création. L'exemple d'éditeur Java ne doit fournir qu'un élément SourceViewerConfiguration approprié à ses besoins. Le fragment de code ci-après illustre comment le JavaTextEditor crée sa configuration :
protected void initializeEditor() { super.initializeEditor(); setSourceViewerConfiguration(new JavaSourceViewerConfiguration()); ...
Quel est le rôle de la JavaSourceViewerConfiguration ? En grande partie, ce comportement provient de la SourceViewerConfiguration, qui définit les stratégies par défaut des comportements connectables, tels que le retrait automatique, la commande d'annulation, me double clic, les bulles d'aide dans le texte, la mise en évidence de la syntaxe et le formatage. Les méthodes publiques dans SourceViewerConfiguration fournissent les objets auxiliaires implémentant ces comportements.
Si le comportement par défaut défini dans SourceViewerConfiguration n'est pas adapté à l'éditeur, vous devez remplacer initializeEditor(), comme illustré ci-dessus, et établir votre propre configuration d'afficheur de source dans l'éditeur. Votre configuration peut remplacer des méthodes dans SourceViewerConfiguration afin de fournir des objets auxiliaires personnalisés implémentant le comportement de l'éditeur. Le fragment de code ci-après illustre deux des façons dont la JavaSourceViewerConfiguration fournit des objets auxiliaires personnalisés pour l'éditeur exemple 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()); }
Dans la première méthode, une classe auxiliaire personnalisée est fournie pour implémenter les bulles d'aide dans les annotations. Dans la seconde, le type de contenu par défaut du document est analysé pour savoir s'il faut employer une stratégie personnalisées de retrait automatique ou celle par défaut.
Reportez-vous à la référence d'API pour SourceViewerConfiguration pour découvrir les autres modes de configuration d'un afficheur de source en remplaçant des méthodes.