1 11 package org.eclipse.pde.internal.ui.editor.text; 12 13 import org.eclipse.jface.text.rules.IRule; 14 import org.eclipse.jface.text.rules.MultiLineRule; 15 import org.eclipse.jface.text.rules.SingleLineRule; 16 import org.eclipse.jface.text.rules.Token; 17 import org.eclipse.jface.text.rules.WhitespaceRule; 18 import org.eclipse.jface.util.PropertyChangeEvent; 19 20 public class XMLTagScanner extends BasePDEScanner { 21 22 private Token fStringToken; 23 24 public XMLTagScanner(IColorManager manager) { 25 super(manager); 26 } 27 28 protected void initialize() { 29 fStringToken = new Token(createTextAttribute(IPDEColorConstants.P_STRING)); 30 IRule[] rules = new IRule[3]; 31 rules[0] = new MultiLineRule("\"", "\"", fStringToken, '\\'); rules[1] = new SingleLineRule("'", "'", fStringToken, '\\'); rules[2] = new WhitespaceRule(new XMLWhitespaceDetector()); 36 setRules(rules); 37 setDefaultReturnToken(new Token(createTextAttribute(IPDEColorConstants.P_TAG))); 38 } 39 40 protected Token getTokenAffected(PropertyChangeEvent event) { 41 String property = event.getProperty(); 42 if (property.startsWith(IPDEColorConstants.P_STRING)) 43 return fStringToken; 44 return (Token)fDefaultReturnToken; 45 } 46 47 public boolean affectsTextPresentation(String property) { 48 return property.startsWith(IPDEColorConstants.P_TAG) || property.startsWith(IPDEColorConstants.P_STRING); 49 } 50 51 } 52 | Popular Tags |