package net.lucky_dip.sasseditor.editor.rules;
import org.eclipse.jface.text.rules.ICharacterScanner;
import org.eclipse.jface.text.rules.IPredicateRule;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.jface.text.rules.Token;
public class SassAttributeRule implements IPredicateRule {
private IToken token;
public SassAttributeRule(IToken token) {
this.token = token;
}
public IToken evaluate(ICharacterScanner scanner, boolean resume) {
return evaluate(scanner);
}
public IToken getSuccessToken() {
return token;
}
public IToken evaluate(ICharacterScanner scanner) {
int read = 0;
int c;
String str = "";
IToken res = Token.UNDEFINED;
while ((c = scanner.read()) != -1) {
read++;
// css attribute should break on spaces or newlines
if (c != 10 && c != 13 && c != 32) {
str += (char) c;
} else {
break;
}
}
String elem = str.trim();
if (elem.length() > 0 && elem.endsWith(":")) {
res = token;
}
if (res == Token.UNDEFINED) {
for (int i = 0; i < read; i++) {
scanner.unread();
}
}
return res;
}
}