X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/phpdoc/PHPDocCodeScanner.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/phpdoc/PHPDocCodeScanner.java index ab422d1..e57a133 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/phpdoc/PHPDocCodeScanner.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/phpdoc/PHPDocCodeScanner.java @@ -1,47 +1,43 @@ /********************************************************************** -Copyright (c) 2000, 2002 IBM Corp. and others. -All rights reserved. This program and the accompanying materials -are made available under the terms of the Common Public License v1.0 -which accompanies this distribution, and is available at -http://www.eclipse.org/legal/cpl-v10.html - -Contributors: - IBM Corporation - Initial implementation -**********************************************************************/ + Copyright (c) 2000, 2002 IBM Corp. and others. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Common Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/cpl-v10.html + + Contributors: + IBM Corporation - Initial implementation + **********************************************************************/ package net.sourceforge.phpdt.internal.ui.text.phpdoc; - import java.util.ArrayList; import java.util.List; -import net.sourceforge.phpeclipse.phpeditor.util.PHPColorProvider; +import net.sourceforge.phpdt.internal.ui.text.AbstractJavaScanner; +import net.sourceforge.phpdt.ui.text.IColorManager; +import net.sourceforge.phpeclipse.IPreferenceConstants; import net.sourceforge.phpeclipse.phpeditor.util.PHPWhitespaceDetector; +import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.TextAttribute; import org.eclipse.jface.text.rules.ICharacterScanner; 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.Token; import org.eclipse.jface.text.rules.WhitespaceRule; import org.eclipse.jface.text.rules.WordRule; - - - /** * A rule based PHPDoc scanner. */ -public final class PHPDocCodeScanner extends RuleBasedScanner { - - +public final class PHPDocCodeScanner extends AbstractJavaScanner { + /** * A key word detector. */ - static class PHPDocKeywordDetector implements IWordDetector { + static class JavaDocKeywordDetector implements IWordDetector { /** * @see IWordDetector#isWordStart @@ -57,8 +53,7 @@ public final class PHPDocCodeScanner extends RuleBasedScanner { return Character.isLetter(c); } }; - - + /** * Detector for HTML comment delimiters. */ @@ -78,123 +73,108 @@ public final class PHPDocCodeScanner extends RuleBasedScanner { return (c == '-' || c == '!' || c == '>'); } }; - + class TagRule extends SingleLineRule { - + /* * @see SingleLineRule */ public TagRule(IToken token) { super("<", ">", token, (char) 0); //$NON-NLS-2$ //$NON-NLS-1$ } - + /* - * @see SingleLineRule + * @see SingleLineRule */ public TagRule(IToken token, char escapeCharacter) { super("<", ">", token, escapeCharacter); //$NON-NLS-2$ //$NON-NLS-1$ } - + private IToken checkForWhitespace(ICharacterScanner scanner) { - + try { - - char c= getDocument().getChar(getTokenOffset() + 1); - if (!Character.isWhitespace(c)) + + char c = getDocument().getChar(getTokenOffset() + 1); + if (!Character.isWhitespace(c)) return fToken; - + } catch (BadLocationException x) { } - + return Token.UNDEFINED; } - + /* * @see PatternRule#evaluate(ICharacterScanner) */ public IToken evaluate(ICharacterScanner scanner) { - IToken result= super.evaluate(scanner); + IToken result = super.evaluate(scanner); if (result == fToken) return checkForWhitespace(scanner); return result; } }; - - - private static String[] fgKeywords= {"@author", "@deprecated", "@exception", "@param", "@return", "@see", "@serial", "@serialData", "@serialField", "@since", "@throws", "@version"}; //$NON-NLS-12$ //$NON-NLS-11$ //$NON-NLS-10$ //$NON-NLS-7$ //$NON-NLS-9$ //$NON-NLS-8$ //$NON-NLS-6$ //$NON-NLS-5$ //$NON-NLS-4$ //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$ - -// private static String[] fgTokenProperties= { -// IJavaColorConstants.JAVADOC_KEYWORD, -// IJavaColorConstants.JAVADOC_TAG, -// IJavaColorConstants.JAVADOC_LINK, -// IJavaColorConstants.JAVADOC_DEFAULT -// }; - - - public PHPDocCodeScanner(PHPColorProvider provider) { // , IPreferenceStore store) { - // super(manager, store); - // initialize(); - createRules(provider); + + private static String[] fgKeywords = { "@author", "@copyright", + "@deprecated", "@exception", "@link", "@package", "@param", + "@return", "@see", "@serial", "@serialData", "@serialField", + "@since", "@throws", "@version" }; //$NON-NLS-12$ //$NON-NLS-11$ //$NON-NLS-10$ //$NON-NLS-7$ //$NON-NLS-9$ //$NON-NLS-8$ //$NON-NLS-6$ //$NON-NLS-5$ //$NON-NLS-4$ //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$ + + private static String[] fgTokenProperties = { + IPreferenceConstants.PHPDOC_KEYWORD, + IPreferenceConstants.PHPDOC_TAG, IPreferenceConstants.PHPDOC_LINK, + IPreferenceConstants.PHPDOC_DEFAULT }; + + public PHPDocCodeScanner(IColorManager manager, IPreferenceStore store) { + super(manager, store); + initialize(); } - + public IDocument getDocument() { return fDocument; } - + /* * @see AbstractJavaScanner#getTokenProperties() */ -// protected String[] getTokenProperties() { -// return fgTokenProperties; -// } + protected String[] getTokenProperties() { + return fgTokenProperties; + } - /* create the rules for PHPDoc + /* + * @see AbstractJavaScanner#createRules() */ - protected List createRules(PHPColorProvider provider) { - - List list= new ArrayList(); - - -// IToken type = new Token(new TextAttribute(provider.getColor(PHPColorProvider.FUNCTION_NAME))); -// IToken string = new Token(new TextAttribute(provider.getColor(PHPColorProvider.STRING))); -// IToken comment = new Token(new TextAttribute(provider.getColor(PHPColorProvider.SINGLE_LINE_COMMENT))); -// IToken multi_comment = new Token(new TextAttribute(provider.getColor(PHPColorProvider.MULTI_LINE_COMMENT))); -// IToken other = new Token(new TextAttribute(provider.getColor(PHPColorProvider.DEFAULT))); - + protected List createRules() { + + List list = new ArrayList(); + // Add rule for tags. - // Token token= getToken(IJavaColorConstants.JAVADOC_TAG); - Token token = new Token(new TextAttribute(provider.getColor(PHPColorProvider.PHPDOC_TAG))); + Token token = getToken(IPreferenceConstants.PHPDOC_TAG); list.add(new TagRule(token)); - - + // Add rule for HTML comments - WordRule wordRule= new WordRule(new HTMLCommentDetector(), token); + WordRule wordRule = new WordRule(new HTMLCommentDetector(), token); wordRule.addWord("", token); //$NON-NLS-1$ list.add(wordRule); - - + // Add rule for links. - token= new Token(new TextAttribute(provider.getColor(PHPColorProvider.PHPDOC_LINK))); + token = getToken(IPreferenceConstants.PHPDOC_LINK); list.add(new SingleLineRule("{@link", "}", token)); //$NON-NLS-2$ //$NON-NLS-1$ - - + // Add generic whitespace rule. list.add(new WhitespaceRule(new PHPWhitespaceDetector())); - - + // Add word rule for keywords. - token= new Token(new TextAttribute(provider.getColor(PHPColorProvider.PHPDOC_DEFAULT))); - wordRule= new WordRule(new PHPDocKeywordDetector(), token); - - token= new Token(new TextAttribute(provider.getColor(PHPColorProvider.PHPDOC_KEYWORD))); - for (int i= 0; i < fgKeywords.length; i++) + token = getToken(IPreferenceConstants.PHPDOC_DEFAULT); + wordRule = new WordRule(new JavaDocKeywordDetector(), token); + + token = getToken(IPreferenceConstants.PHPDOC_KEYWORD); + for (int i = 0; i < fgKeywords.length; i++) wordRule.addWord(fgKeywords[i], token); list.add(wordRule); - - setDefaultReturnToken( new Token(new TextAttribute(provider.getColor(PHPColorProvider.PHPDOC_DEFAULT))) ); + + setDefaultReturnToken(getToken(IPreferenceConstants.PHPDOC_DEFAULT)); return list; } } - -