Hidtil har vi set på SourceViewer i sammenhæng med styring af kildekodeannotationer.
SourceViewer er imidlertid også et centralt omdrejningspunkt for konfiguration af editoren med en funktionsmåde, der minder om plugins, f.eks. tekstpegefunktioner og syntaksfremhævning. Til disse funktioner stiller editoren SourceViewerConfiguration til rådighed, som bruges til at konfigurere SourceViewer, når den oprettes. Editoren til Java-eksemplet skal kun levere en SourceViewerConfiguration , som er relevant for dens behov. Følgende sekvens viser, hvordan JavaTextEditor opretter sin konfiguration:
protected void initializeEditor() { super.initializeEditor(); setSourceViewerConfiguration(new JavaSourceViewerConfiguration()); ...
Hvad gør JavaSourceViewerConfiguration så? En stor del af dens funktionsmåde er overtaget fra SourceViewerConfiguration, som definerer standardstrategier for plugin-lignende editorfunktionsmåde, f.eks. automatisk indrykning, fortryd-funktioner, dobbeltklik-funktioner, pegefunktioner i tekst, syntaksfremhævning og formatering. Offentlige metoder i SourceViewerConfiguration stiller de hjælperobjekter til rådighed, som implementerer disse funktionsmådemønstre.
Hvis den standardfunktionsmåde, der er defineret i SourceViewerConfiguration, ikke passer til din editor, skal du tilsidesætte initializeEditor() som vist ovenfor og angive din egen konfiguration af kildefremvisningsfunktionen i editoren. Din konfiguration kan tilsidesætte metoder i SourceViewerConfiguration med henblik på at levere tilpassede hjælperobjekter, som implementerer funktionsmåde til din editor. Følgende sekvens viser to af de måder, JavaSourceViewerConfiguration leverer tilpassede hjælperobjekter til editoren til Java-eksemplet på:
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()); }
I den første metode stilles der en tilpasset hjælperklasse til rådighed for implementering af annotationspegefunktioner. I den anden metode sendes der en forespørgsel til standardindholdstypen i dokumentet med henblik på at afgøre, om der skal bruges en tilpasset strategi til automatisk indrykning, eller om standardstrategien skal benyttes.
API-vejledningens afsnit om SourceViewerConfiguration beskriver alle de måder, du kan konfigurere en kildefremvisningsfunktion på ved at tilsidesætte metoder.