Package org.sourceforge.jsonedit.core.text

Source Code of org.sourceforge.jsonedit.core.text.JsonScanner

/**
*
*/
package org.sourceforge.jsonedit.core.text;

import java.util.LinkedList;
import java.util.List;


import org.eclipse.jface.text.TextAttribute;
import org.eclipse.jface.text.rules.IRule;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.jface.text.rules.RuleBasedScanner;
import org.eclipse.jface.text.rules.SingleLineRule;
import org.eclipse.jface.text.rules.Token;
import org.eclipse.jface.text.rules.WhitespaceRule;
import org.eclipse.jface.text.rules.WordRule;
import org.sourceforge.jsonedit.core.util.JsonColorProvider;
import org.sourceforge.jsonedit.core.util.JsonWhitespaceDetector;
import org.sourceforge.jsonedit.core.util.JsonWordDetector;

/**
* JsonScanner is used to scan the org.sourceforge.jsonedit.core.core text and apply coloring.
*
* @author Matt Garner
*
*/
public class JsonScanner extends RuleBasedScanner {

  public JsonScanner(JsonColorProvider provider) {
    super();
   
    IToken string = new Token(new TextAttribute(provider.getColor(JsonColorProvider.STRING)));
    IToken value = new Token(new TextAttribute(provider.getColor(JsonColorProvider.VALUE)));
    IToken defaultText = new Token(new TextAttribute(provider.getColor(JsonColorProvider.DEFAULT)));
    IToken nullValue = new Token(new TextAttribute(provider.getColor(JsonColorProvider.NULL)));
   
    List<IRule> rules= new LinkedList<IRule>();
   
    rules.add(new SingleLineRule(":\"", "\"", value, '\\'));
    rules.add(new SingleLineRule("\"", "\"", string, '\\')); //$NON-NLS-2$ //$NON-NLS-1$
    WordRule wordRule= new WordRule(new JsonWordDetector(), defaultText);
    wordRule.addWord("null", nullValue);
    rules.add(wordRule);
    rules.add(new WhitespaceRule(new JsonWhitespaceDetector()));
   
    IRule[] result= new IRule[rules.size()];
    rules.toArray(result);
    setRules(result);
  }
}
TOP

Related Classes of org.sourceforge.jsonedit.core.text.JsonScanner

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.