X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCodeScanner.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCodeScanner.java index 1b74a75..23212ba 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCodeScanner.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCodeScanner.java @@ -15,7 +15,6 @@ import java.util.ArrayList; import java.util.List; import net.sourceforge.phpdt.internal.ui.text.AbstractJavaScanner; -import net.sourceforge.phpdt.internal.ui.text.CombinedWordRule; import net.sourceforge.phpdt.ui.text.IColorManager; import net.sourceforge.phpeclipse.IPreferenceConstants; import net.sourceforge.phpeclipse.phpeditor.PHPSyntaxRdr; @@ -46,18 +45,21 @@ public class PHPCodeScanner extends AbstractJavaScanner { protected class OperatorRule implements IRule { /** Java operators */ - private final char[] JAVA_OPERATORS= { ';', '(', ')', '{', '}', '.', '=', '/', '\\', '+', '-', '*', '[', ']', '<', '>', ':', '?', '!', ',', '|', '&', '^', '%', '~', '@'}; + private final char[] JAVA_OPERATORS= { ';', '(', ')', '.', '=', '/', '\\', '+', '-', '*', '[', ']', '<', '>', ':', '?', '!', ',', '|', '&', '^', '%', '~', '@'}; /** Token to return for this rule */ private final IToken fToken; - + /** Token to return for braces */ + private final IToken fTokenBraces; /** * Creates a new operator rule. * * @param token * Token to use for this rule */ - public OperatorRule(IToken token) { + public OperatorRule(IToken token, IToken tokenBraces) { fToken= token; + fTokenBraces= tokenBraces; + } /** @@ -82,10 +84,13 @@ public class PHPCodeScanner extends AbstractJavaScanner { public IToken evaluate(ICharacterScanner scanner) { int character= scanner.read(); + if (character=='{' || character=='}') { + return fTokenBraces; + } if (isOperator((char) character)) { int lastCharacter = character; character= scanner.read(); - if (!isOperator((char) character)) { + if (!isOperator((char) character)) { scanner.unread(); return fToken; } @@ -93,12 +98,11 @@ public class PHPCodeScanner extends AbstractJavaScanner { scanner.unread(); scanner.unread(); return Token.UNDEFINED; - } - if (lastCharacter=='?' && character=='>') { + } else if (lastCharacter=='?' && character=='>') { scanner.unread(); scanner.unread(); return Token.UNDEFINED; - } + } do { character= scanner.read(); } while (isOperator((char) character)); @@ -133,18 +137,18 @@ public class PHPCodeScanner extends AbstractJavaScanner { return Token.UNDEFINED; } else { c = scanner.read(); - if (c != 'p') { + if (c != 'p' && c != 'P') { scanner.unread(); return getToken(IPreferenceConstants.PHP_TAG); } else { c = scanner.read(); - if (c != 'h') { + if (c != 'h' && c != 'H') { scanner.unread(); scanner.unread(); return getToken(IPreferenceConstants.PHP_TAG); } else { c = scanner.read(); - if (c != 'p') { + if (c != 'p' && c != 'P') { scanner.unread(); scanner.unread(); scanner.unread(); @@ -212,6 +216,7 @@ public class PHPCodeScanner extends AbstractJavaScanner { IPreferenceConstants.PHP_CONSTANT, IPreferenceConstants.PHP_DEFAULT, IPreferenceConstants.PHP_OPERATOR, + IPreferenceConstants.PHP_BRACE_OPERATOR, IPreferenceConstants.PHP_KEYWORD_RETURN}; /** * Creates a PHP code scanner @@ -301,76 +306,6 @@ public class PHPCodeScanner extends AbstractJavaScanner { protected String[] getTokenProperties() { return fgTokenProperties; } - // public void updateToken(JavaColorManager provider) { - // final IPreferenceStore store = - // PHPeclipsePlugin.getDefault().getPreferenceStore(); - // - // Color BackgroundColor = - // provider.getColor(PreferenceConverter.getColor(store, - // PHP_EDITOR_BACKGROUND)); - // - // variable.setData( - // new TextAttribute( - // provider.getColor(PreferenceConverter.getColor(store, PHP_VARIABLE)), - // BackgroundColor, - // (store.getBoolean(PHP_VARIABLE_BOLD) ? SWT.BOLD : SWT.NONE) - // + (store.getBoolean(PHP_VARIABLE_ITALIC) ? SWT.ITALIC : SWT.NONE))); - // keyword.setData( - // new TextAttribute( - // provider.getColor(PreferenceConverter.getColor(store, PHP_KEYWORD)), - // BackgroundColor, - // (store.getBoolean(PHP_KEYWORD_BOLD) ? SWT.BOLD : SWT.NONE) - // + (store.getBoolean(PHP_KEYWORD_ITALIC) ? SWT.ITALIC : SWT.NONE))); - // type.setData( - // new TextAttribute( - // provider.getColor(PreferenceConverter.getColor(store, PHP_TYPE)), - // BackgroundColor, - // (store.getBoolean(PHP_TYPE_BOLD) ? SWT.BOLD : SWT.NONE) + - // (store.getBoolean(PHP_TYPE_ITALIC) ? SWT.ITALIC : SWT.NONE))); - // functionName.setData( - // new TextAttribute( - // provider.getColor(PreferenceConverter.getColor(store, PHP_FUNCTIONNAME)), - // BackgroundColor, - // (store.getBoolean(PHP_FUNCTIONNAME_BOLD) ? SWT.BOLD : SWT.NONE) - // + (store.getBoolean(PHP_FUNCTIONNAME_ITALIC) ? SWT.ITALIC : SWT.NONE))); - // constant.setData( - // new TextAttribute( - // provider.getColor(PreferenceConverter.getColor(store, PHP_CONSTANT)), - // BackgroundColor, - // (store.getBoolean(PHP_CONSTANT_BOLD) ? SWT.BOLD : SWT.NONE) - // + (store.getBoolean(PHP_CONSTANT_ITALIC) ? SWT.ITALIC : SWT.NONE))); - // string.setData( - // new TextAttribute( - // provider.getColor(PreferenceConverter.getColor(store, PHP_STRING)), - // BackgroundColor, - // (store.getBoolean(PHP_STRING_BOLD) ? SWT.BOLD : SWT.NONE) + - // (store.getBoolean(PHP_STRING_ITALIC) ? SWT.ITALIC : SWT.NONE))); - // comment.setData( - // new TextAttribute( - // provider.getColor(PreferenceConverter.getColor(store, - // PHP_SINGLELINE_COMMENT)), - // BackgroundColor, - // (store.getBoolean(PHP_SINGLELINE_COMMENT_BOLD) ? SWT.BOLD : SWT.NONE) - // + (store.getBoolean(PHP_SINGLELINE_COMMENT_ITALIC) ? SWT.ITALIC : - // SWT.NONE))); - // multi_comment.setData( - // new TextAttribute( - // provider.getColor(PreferenceConverter.getColor(store, - // PHP_MULTILINE_COMMENT)), - // BackgroundColor, - // (store.getBoolean(PHP_MULTILINE_COMMENT_BOLD) ? SWT.BOLD : SWT.NONE) - // + (store.getBoolean(PHP_MULTILINE_COMMENT_ITALIC) ? SWT.ITALIC : - // SWT.NONE))); - // other.setData( - // new TextAttribute( - // provider.getColor(PreferenceConverter.getColor(store, PHP_DEFAULT)), - // BackgroundColor, - // (store.getBoolean(PHP_DEFAULT_BOLD) ? SWT.BOLD : SWT.NONE) - // + (store.getBoolean(PHP_DEFAULT_ITALIC) ? SWT.ITALIC : SWT.NONE))); - // } - - // public void updateWordRules() { - /* * @see AbstractJavaScanner#createRules() @@ -428,11 +363,11 @@ public class PHPCodeScanner extends AbstractJavaScanner { wordRule.addWord("return", token); // Add rule for operators and brackets (at the end !) - token= getToken(IPreferenceConstants.PHP_OPERATOR); - rules.add(new OperatorRule(token)); + rules.add(new OperatorRule(getToken(IPreferenceConstants.PHP_OPERATOR), getToken(IPreferenceConstants.PHP_BRACE_OPERATOR))); rules.add(wordRule); + setDefaultReturnToken(getToken(IPreferenceConstants.PHP_DEFAULT)); return rules; } }