X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.plugin.core%2Fsrc%2Fnet%2Fmograsim%2Fplugin%2Fasm%2Feditor%2FAsmPresentationReconciler.java;h=8d42ef59bf3e872215a19094e01298803b2681b6;hb=b5d5301aa2ae817b59c8b81d4951591dafa1118e;hp=843787664994d3b47f45b11beef7385340e83214;hpb=be97d62cd9ba19f95d22b55b91f6dd6c39a54025;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..8d42ef59 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,14 +8,14 @@ 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 { @@ -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(op, true); rules[3] = new AsmNumberRule(number); scanner.setRules(rules);