Package tk.eclipse.plugin.jspeditor.editors

Source Code of tk.eclipse.plugin.jspeditor.editors.JSPDirectiveScanner

package tk.eclipse.plugin.jspeditor.editors;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.jface.text.rules.IRule;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.jface.text.rules.IWordDetector;
import org.eclipse.jface.text.rules.RuleBasedScanner;
import org.eclipse.jface.text.rules.SingleLineRule;
import org.eclipse.jface.text.rules.WhitespaceRule;
import org.eclipse.jface.text.rules.WordRule;

import tk.eclipse.plugin.htmleditor.ColorProvider;
import tk.eclipse.plugin.htmleditor.HTMLPlugin;
import tk.eclipse.plugin.htmleditor.editors.HTMLWhitespaceDetector;

/**
* @author Naoki Takezoe
*/
public class JSPDirectiveScanner extends RuleBasedScanner {

  public JSPDirectiveScanner(ColorProvider provider){
    IToken string = provider.getToken(HTMLPlugin.PREF_COLOR_STRING);
    IToken script = provider.getToken(HTMLPlugin.PREF_COLOR_SCRIPT);
    List<IRule> rules = new ArrayList<IRule>();
   
    rules.add(new SingleLineRule("\"", "\"", string, '\\'));
    rules.add(new SingleLineRule("\'", "\'", string, '\\'));
    rules.add(new WhitespaceRule(new HTMLWhitespaceDetector()));
   
    WordRule delimitor = new WordRule(new IWordDetector(){
      public boolean isWordStart(char c){
        if(c=='<' || c=='%' || c=='@'){
          return true;
        }
        return false;
      }
      public boolean isWordPart(char c){
        if(c=='<' || c=='%' || c=='=' || c=='>' || c=='@'){
          return true;
        }
        return false;
      }
    });
    delimitor.addWord("<%@", script);
    delimitor.addWord("%>", script);
    rules.add(delimitor);
   
   
    setRules(rules.toArray(new IRule[rules.size()]));
  }
}
TOP

Related Classes of tk.eclipse.plugin.jspeditor.editors.JSPDirectiveScanner

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.