package org.xtest.ui.highlight;
import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.resource.XtextResource;
import org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightedPositionAcceptor;
import org.eclipse.xtext.xbase.ui.highlighting.XbaseHighlightingCalculator;
import org.eclipse.xtext.xbase.ui.highlighting.XbaseHighlightingConfiguration;
import org.xtest.xTest.FileParam;
import org.xtest.xTest.XTestPackage;
/**
* Custom highlighting calculator for Xtest files
*
* @author Michael Barry
*/
@SuppressWarnings("restriction")
public class XtestHighlightingCalculator extends XbaseHighlightingCalculator {
@Override
protected void searchAndHighlightElements(XtextResource resource,
IHighlightedPositionAcceptor acceptor) {
super.searchAndHighlightElements(resource, acceptor);
TreeIterator<EObject> iterator = resource.getAllContents();
while (iterator.hasNext()) {
EObject object = iterator.next();
if (object instanceof FileParam) {
highlightFileParam((FileParam) object, acceptor);
}
}
}
private void highlightFileParam(FileParam object, IHighlightedPositionAcceptor acceptor) {
highlightObjectAtFeature(acceptor, object, XTestPackage.Literals.FILE_PARAM__FEATURE,
XbaseHighlightingConfiguration.FIELD);
}
}