X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.plugin.core%2Fsrc%2Fnet%2Fmograsim%2Fplugin%2Fasm%2Feditor%2FAsmPresentationReconciler.java;h=655160e0943a5d0158927b7e6d60c210f8aceec6;hb=8bed58cd47f4e53a0a83e066d38864aa6875502f;hp=843787664994d3b47f45b11beef7385340e83214;hpb=f14ea37d69488dd51518a36413af7176916b8bd7;p=Mograsim.git diff --git a/net.mograsim.plugin.core/src/net/mograsim/plugin/asm/editor/AsmPresentationReconciler.java b/net.mograsim.plugin.core/src/net/mograsim/plugin/asm/editor/AsmPresentationReconciler.java index 84378766..655160e0 100644 --- a/net.mograsim.plugin.core/src/net/mograsim/plugin/asm/editor/AsmPresentationReconciler.java +++ b/net.mograsim.plugin.core/src/net/mograsim/plugin/asm/editor/AsmPresentationReconciler.java @@ -1,7 +1,5 @@ package net.mograsim.plugin.asm.editor; -import java.util.Set; - import org.eclipse.jface.resource.ColorRegistry; import org.eclipse.jface.resource.FontRegistry; import org.eclipse.jface.text.IDocument; @@ -10,20 +8,20 @@ import org.eclipse.jface.text.presentation.PresentationReconciler; import org.eclipse.jface.text.rules.DefaultDamagerRepairer; import org.eclipse.jface.text.rules.EndOfLineRule; import org.eclipse.jface.text.rules.IRule; -import org.eclipse.jface.text.rules.IWordDetector; import org.eclipse.jface.text.rules.RuleBasedScanner; import org.eclipse.jface.text.rules.Token; -import org.eclipse.jface.text.rules.WordRule; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.themes.ITheme; -import net.mograsim.plugin.AsmOps; +import net.mograsim.plugin.asm.editor.rules.AsmLabelRule; +import net.mograsim.plugin.asm.editor.rules.AsmNumberRule; +import net.mograsim.plugin.asm.editor.rules.InstructionRule; public class AsmPresentationReconciler extends PresentationReconciler { private final Token comment = new Token(null); - private final Token std = new Token(null); +// private final Token std = new Token(null); private final Token op = new Token(null); private final Token label = new Token(null); private final Token number = new Token(null); @@ -36,33 +34,7 @@ public class AsmPresentationReconciler extends PresentationReconciler rules = new IRule[4]; rules[0] = new EndOfLineRule(";", comment); rules[1] = new AsmLabelRule(label); - WordRule ops = new WordRule(new IWordDetector() - { - - @Override - public boolean isWordStart(char c) - { - return Character.isJavaIdentifierStart(c); - } - - @Override - public boolean isWordPart(char c) - { - return Character.isJavaIdentifierPart(c); - } - }, std, true) - { - { - AsmOps.addListener(this::update); - } - - void update(Set words) - { - fWords.clear(); - words.forEach(s -> fWords.put(s, op)); - } - }; - rules[2] = ops; + rules[2] = new InstructionRule(Token.UNDEFINED, op, true); rules[3] = new AsmNumberRule(number); scanner.setRules(rules);