Fixed a bug in Am2900; created dlatch8/80; relayouted some components
[Mograsim.git] / net.mograsim.plugin.core / src / net / mograsim / plugin / asm / editor / AsmPresentationReconciler.java
index 8437876..655160e 100644 (file)
@@ -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<String> 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);