/**
*
*/
package org.goko.tools.editor.component.scanner;
import org.eclipse.jface.text.TextAttribute;
import org.eclipse.jface.text.rules.IRule;
import org.eclipse.jface.text.rules.ITokenScanner;
import org.eclipse.jface.text.rules.RuleBasedScanner;
import org.eclipse.jface.text.rules.Token;
import org.eclipse.jface.text.rules.WordRule;
import org.eclipse.swt.SWT;
import org.eclipse.wb.swt.SWTResourceManager;
import org.goko.tools.editor.component.detector.MWordDetector;
/**
* @author Psyko
* @date 22 mai 2016
*/
public class MWordScanner extends RuleBasedScanner implements ITokenScanner {
public MWordScanner()
{
TextAttribute mWordAttribute = new TextAttribute(SWTResourceManager.getColor(220,150,86));
Token mWord = new Token(mWordAttribute);
TextAttribute unknownMWordAttribute = new TextAttribute(SWTResourceManager.getColor(SWT.COLOR_RED), null, TextAttribute.STRIKETHROUGH);
Token unknownMWord = new Token(unknownMWordAttribute);
WordRule wr = new CaseInsensitiveWordRule(new MWordDetector());
wr.addWord("M0", mWord);
wr.addWord("M00", mWord);
wr.addWord("M1", mWord);
wr.addWord("M01", mWord);
wr.addWord("M2", mWord);
wr.addWord("M02", mWord);
wr.addWord("M30", mWord);
wr.addWord("M60", mWord);
wr.addWord("M3", mWord);
wr.addWord("M03", mWord);
wr.addWord("M4", mWord);
wr.addWord("M04", mWord);
wr.addWord("M5", mWord);
wr.addWord("M05", mWord);
wr.addWord("M6", mWord);
wr.addWord("M06", mWord);
wr.addWord("M7", mWord);
wr.addWord("M07", mWord);
wr.addWord("M8", mWord);
wr.addWord("M08", mWord);
wr.addWord("M9", mWord);
wr.addWord("M09", mWord);
wr.addWord("M48", mWord);
wr.addWord("M49", mWord);
setDefaultReturnToken(unknownMWord);
setRules(new IRule[]{ wr });
}
}