package com.hundsun.ares.studio.ui.editor.text.sql;
import org.eclipse.jface.text.rules.IWordDetector;
/**
* This class determines whether a given character is valid as part of an SQL keyword
* in the current context.
*/
public class SQLWordDetector implements IWordDetector {
/**
* Returns whether the specified character is valid as the first
* character in a word.
* @see org.eclipse.jface.text.rules.IWordDetector#isWordStart(char)
*/
public boolean isWordStart( char c ) {
// String[] reservedWords = SQLCodeScanner.getSQLKeywords();
// for (int i = 0; i < reservedWords.length; i++) {
// if ( (reservedWords[i].charAt(0) == c)
// || (reservedWords[i].toLowerCase().charAt(0) == c) ) {
// return true;
// }
// }
//
// String[] datatypes = SQLCodeScanner.getSQLDatatypes();
// for (int i = 0; i < datatypes.length; i++) {
// if ( (datatypes[i].charAt(0) == c)
// || (datatypes[i].toLowerCase().charAt(0) == c) ) {
// return true;
// }
// }
//
// return false;
if (Character.isJavaIdentifierStart(c))
{
return true;
}
if (c == '@')
{
return true;
}
return false;
}
/**
* Returns whether the specified character is valid as a subsequent character
* in a word.
* @see org.eclipse.jface.text.rules.IWordDetector#isWordPart(char)
*/
public boolean isWordPart( char c ) {
// String[] keywords = SQLCodeScanner.getSQLKeywords();
// for (int i = 0; i < keywords.length; i++) {
// if ( (keywords[i].indexOf(c) != -1)
// || (keywords[i].toLowerCase().indexOf(c) != -1) ) {
// return true;
// }
// }
//
// String[] datatypes = SQLCodeScanner.getSQLDatatypes();
// for (int i = 0; i < datatypes.length; i++) {
// if ( (datatypes[i].indexOf(c) != -1)
// || (datatypes[i].toLowerCase().indexOf(c) != -1) ) {
// return true;
// }
// }
if (Character.isJavaIdentifierPart(c))
{
return true;
}
return false;
}
} // end class