1 package net.mograsim.plugin.asm.editor.rules;
3 import java.util.Objects;
6 import org.eclipse.jface.text.rules.IToken;
7 import org.eclipse.jface.text.rules.IWordDetector;
8 import org.eclipse.jface.text.rules.WordRule;
10 import net.mograsim.plugin.AsmOps;
12 public class InstructionRule extends WordRule
14 private final IToken instToken;
16 public InstructionRule(IToken defaultToken, IToken instToken)
18 this(defaultToken, instToken, false);
21 public InstructionRule(IToken defaultToken, IToken instToken, boolean ignoreCase)
23 super(new InstructionDetector(), Objects.requireNonNull(defaultToken), ignoreCase);
24 this.instToken = Objects.requireNonNull(instToken);
25 AsmOps.addListener(this::update);
28 void update(Set<String> words)
31 words.forEach(s -> fWords.put(s, instToken));
34 static class InstructionDetector implements IWordDetector
37 public boolean isWordStart(char c)
39 return Character.isJavaIdentifierStart(c);
43 public boolean isWordPart(char c)
45 return Character.isJavaIdentifierPart(c);