package tk.eclipse.plugin.htmleditor.editors;
import org.eclipse.jface.text.rules.IRule;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.jface.text.rules.MultiLineRule;
import org.eclipse.jface.text.rules.RuleBasedScanner;
import org.eclipse.jface.text.rules.WhitespaceRule;
import tk.eclipse.plugin.htmleditor.ColorProvider;
import tk.eclipse.plugin.htmleditor.HTMLPlugin;
public class HTMLTagScanner extends RuleBasedScanner {
public HTMLTagScanner(ColorProvider colorProvider) {
IToken literal = colorProvider.getToken(HTMLPlugin.PREF_COLOR_STRING);
IToken tagName = colorProvider.getToken(HTMLPlugin.PREF_COLOR_TAG);
IToken woTagName = colorProvider.getToken(HTMLPlugin.PREF_COLOR_WO_TAG);
IToken attributeName = colorProvider.getToken(HTMLPlugin.PREF_COLOR_ATTRIBUTE);
IToken ognlBinding = colorProvider.getToken(HTMLPlugin.PREF_COLOR_OGNL);
IToken dynamicBinding = colorProvider.getToken(HTMLPlugin.PREF_COLOR_DYNAMIC);
IRule[] rules = new IRule[] {
new MultiLineRule("\"~" , "\"" , ognlBinding, '\\'),
new MultiLineRule("\'~" , "\'" , ognlBinding, '\\'),
new MultiLineRule("\"$" , "\"" , dynamicBinding, '\\'),
new MultiLineRule("\'$" , "\'" , dynamicBinding, '\\'),
new MultiLineRule("\"[" , "]\"" , dynamicBinding, '\\'),
new MultiLineRule("\'[" , "]\'" , dynamicBinding, '\\'),
new MultiLineRule("\"" , "\"" , literal, '\\'),
new MultiLineRule("'" , "'" , literal, '\\'),
new WhitespaceRule(new HTMLWhitespaceDetector()),
new HTMLTagNameRule(tagName, woTagName),
new HTMLAttributeNameRule(attributeName)
};
setRules(rules);
}
}