/** * (c) 2011, Alejandro Serrano * Released under the terms of the EPL. */ package net.sf.eclipsefp.haskell.ui.internal.editors.partitioned; import org.eclipse.jface.text.rules.IWordDetector; /** * Detects keywords in a file. * @author Alejandro Serrano * */ public class KeywordDetector implements IWordDetector { public static KeywordDetector NO_DIGIT_AT_START_DETECTOR = new KeywordDetector(false); public static KeywordDetector ALLOW_DIGIT_AT_START_DETECTOR = new KeywordDetector(true); boolean allowDigitAtStart; public KeywordDetector( final boolean allowDigitAtStart ) { this.allowDigitAtStart = allowDigitAtStart; } @Override public boolean isWordStart( final char c ) { if( allowDigitAtStart ) { return Character.isLetter( c ) || Character.isDigit( c ) || c == '_'; } else { return Character.isLetter( c ) || c == '_'; } } @Override public boolean isWordPart( final char c ) { return Character.isLetter( c ) || Character.isDigit( c ) || c == '_'; } }