package org.robotframework.ide.eclipse.main.plugin.tableeditor.source.colouring; import java.util.List; import java.util.Optional; import org.eclipse.jface.text.rules.IToken; import org.rf.ide.core.testdata.text.read.IRobotLineElement; import org.rf.ide.core.testdata.text.read.IRobotTokenType; import org.rf.ide.core.testdata.text.read.recognizer.RobotToken; import org.rf.ide.core.testdata.text.read.recognizer.RobotTokenType; public class InTokenRule implements ISyntaxColouringRule { private final IToken textToken; public InTokenRule(final IToken textToken) { this.textToken = textToken; } @Override public boolean isApplicable(final IRobotLineElement token) { return token instanceof RobotToken; } @Override public Optional<PositionedTextToken> evaluate(final IRobotLineElement token, final int offsetInToken, final List<IRobotLineElement> analyzedTokens) { final List<IRobotTokenType> tokenTypes = token.getTypes(); if (tokenTypes.contains(RobotTokenType.IN_TOKEN)) { return Optional.of(new PositionedTextToken(textToken, token.getStartOffset(), token.getText().length())); } return Optional.empty(); } }