nesckeywordpartitionscanner.java

来自「plugin for eclipse」· Java 代码 · 共 78 行

JAVA
78
字号
/*
 * Created on Apr 20, 2005
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package isis.tinydt.editors.nesceditor;

import isis.tinydt.TinydtPlugin;

import java.util.ArrayList;
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.Token;
import org.eclipse.jface.text.rules.WordRule;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.widgets.Display;

/**
 * @author Sebo
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class NesCKeywordPartitionScanner extends RuleBasedScanner implements INesCSyntax
{	
	private static Color DEF= new Color(Display.getCurrent(), new RGB(0, 0, 0));
		    
	public NesCKeywordPartitionScanner()
	{	
		int i;
		
		NesCColorProvider provider = TinydtPlugin.getDefault().getColorProvider();
        
               
        	  
		IToken keyword = new Token(new TextAttribute(provider
		.getColor(NesCColorProvider.KEYWORD), provider
		.getColor(NesCColorProvider.BACKGROUND), SWT.BOLD));
		
		IToken type = new Token(new TextAttribute(provider
		.getColor(NesCColorProvider.TYPE), provider
		.getColor(NesCColorProvider.BACKGROUND), SWT.BOLD));
	  
		IToken other = new Token(new TextAttribute(DEF));
		
		//setDefaultReturnToken(other);
	    List rules = new ArrayList();
		
	    // Add word rule for keywords, types, and constants.
	    WordRule wordRule = new WordRule(new NesCWordDetector(), other);
	    for(i=0; i<reservedwords.length; i++)
	    	wordRule.addWord(reservedwords[i], keyword);
	    
	    for(i=0; i<c_keywords.length; i++)
	    	wordRule.addWord(c_keywords[i], keyword);
	    
	    for(i=0; i<types.length; i++)
	      wordRule.addWord(types[i], type);
	    
	    for(i=0; i<constants.length; i++)
	      wordRule.addWord(constants[i], type);
	    
	    rules.add(wordRule);
	    
	    IRule[] result = new IRule[rules.size()];
	    rules.toArray(result);
	    setRules(result);

	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?