package org.easyb.ui.editor; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.codehaus.groovy.eclipse.editor.GroovyColorManager; import org.codehaus.groovy.eclipse.editor.GroovyConfiguration; import org.easyb.ui.editor.reconciler.BehaviourReconcilerStrategy; import org.easyb.ui.editor.reconciler.CompositeReconciler; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.text.reconciler.IReconciler; import org.eclipse.jface.text.reconciler.MonoReconciler; import org.eclipse.jface.text.rules.RuleBasedScanner; import org.eclipse.jface.text.source.ISourceViewer; import org.eclipse.ui.texteditor.ITextEditor; public class BehaviourSourceViewerConfiguration extends GroovyConfiguration{ private ITextEditor textEditor; private BehaviourTagScanner tagScanner; public BehaviourSourceViewerConfiguration(GroovyColorManager colorManager, IPreferenceStore preferenceStore, ITextEditor textEditor){ super(colorManager,preferenceStore,textEditor); this.textEditor = textEditor; this.tagScanner = new BehaviourTagScanner(colorManager); } @Override protected RuleBasedScanner getCodeScanner() { return tagScanner; } @Override public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) { List<String> contentTypes = new ArrayList<String>(); Collections.addAll(contentTypes,PartitionScannerBuilder.EASYB_ALL_PARTITION_TYPES); Collections.addAll(contentTypes,super.getConfiguredContentTypes(sourceViewer)); return contentTypes.toArray(new String[contentTypes.size()]); } /*@Override public String getConfiguredDocumentPartitioning(ISourceViewer sourceViewer) { return PartitionScannerBuilder.PARTITIONER_ID; }*/ @Override public IReconciler getReconciler(ISourceViewer sourceViewer){ MonoReconciler bReconciler = new MonoReconciler(new BehaviourReconcilerStrategy((BehaviourEditor)textEditor),false); bReconciler.setIsAllowedToModifyDocument(false); return new CompositeReconciler(super.getReconciler(sourceViewer),bReconciler); } }