Deleted PHPFunctionNames use only phpsyntax.xml instead !
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / phpeditor / php / PHPCodeScanner.java
index 446c745..1fd27c1 100644 (file)
@@ -13,17 +13,23 @@ package net.sourceforge.phpeclipse.phpeditor.php;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Vector;
 
 import net.sourceforge.phpdt.internal.ui.text.AbstractJavaScanner;
 import net.sourceforge.phpdt.ui.text.IColorManager;
-import net.sourceforge.phpdt.ui.text.IJavaColorConstants;
+import net.sourceforge.phpeclipse.IPreferenceConstants;
 import net.sourceforge.phpeclipse.phpeditor.PHPSyntaxRdr;
 import net.sourceforge.phpeclipse.phpeditor.util.PHPWhitespaceDetector;
 import net.sourceforge.phpeclipse.phpeditor.util.PHPWordDetector;
 
 import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.rules.*;
+import org.eclipse.jface.text.rules.EndOfLineRule;
+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.MultiLineRule;
+import org.eclipse.jface.text.rules.Token;
+import org.eclipse.jface.text.rules.WhitespaceRule;
+import org.eclipse.jface.text.rules.WordRule;
 
 /**
  * PHP Code Scanner
@@ -70,7 +76,7 @@ public class PHPCodeScanner
           scanner.unread();
 
           if (isVariable) {
-            return getToken(IJavaColorConstants.PHP_VARIABLE);
+            return getToken(IPreferenceConstants.PHP_VARIABLE);
           }
           IToken token = (IToken) fWords.get(fBuffer.toString());
           if (token != null)
@@ -91,15 +97,15 @@ public class PHPCodeScanner
   //private PHPColorProvider fColorProvider;
 
   private static String[] fgTokenProperties = {
-    IJavaColorConstants.PHP_MULTI_LINE_COMMENT,
-    IJavaColorConstants.PHP_SINGLE_LINE_COMMENT,
-    IJavaColorConstants.PHP_KEYWORD,
-    IJavaColorConstants.PHP_FUNCTIONNAME,
-    IJavaColorConstants.PHP_VARIABLE,
-    IJavaColorConstants.PHP_STRING,
-    IJavaColorConstants.PHP_TYPE,
-    IJavaColorConstants.PHP_CONSTANT,
-    IJavaColorConstants.PHP_DEFAULT };
+               IPreferenceConstants.PHP_MULTILINE_COMMENT,
+               IPreferenceConstants.PHP_SINGLELINE_COMMENT,
+               IPreferenceConstants.PHP_KEYWORD,
+               IPreferenceConstants.PHP_FUNCTIONNAME,
+               IPreferenceConstants.PHP_VARIABLE,
+               IPreferenceConstants.PHP_STRING,
+               IPreferenceConstants.PHP_TYPE,
+               IPreferenceConstants.PHP_CONSTANT,
+               IPreferenceConstants.PHP_DEFAULT };
   /**
        * Creates a PHP code scanner
        */
@@ -242,12 +248,12 @@ public class PHPCodeScanner
    */
   protected List createRules() {
     List rules = new ArrayList();
-    Token token= getToken(IJavaColorConstants.PHP_SINGLE_LINE_COMMENT);
+    Token token= getToken(IPreferenceConstants.PHP_SINGLELINE_COMMENT);
     // Add rule for single line comments.
     rules.add(new EndOfLineRule("//", token)); //$NON-NLS-1$
     rules.add(new EndOfLineRule("#", token)); //$NON-NLS-1$
     // Add rule for strings and character constants.
-    token= getToken(IJavaColorConstants.PHP_STRING);
+    token= getToken(IPreferenceConstants.PHP_STRING);
     rules.add(new MultiLineRule("\"", "\"", token, '\\')); //$NON-NLS-2$ //$NON-NLS-1$
     rules.add(new MultiLineRule("`", "`", token, '\\')); //$NON-NLS-2$ //$NON-NLS-1$
     rules.add(new MultiLineRule("'", "'", token, '\\')); //$NON-NLS-2$ //$NON-NLS-1$
@@ -255,26 +261,28 @@ public class PHPCodeScanner
     //previous version
     //rules.add(new SingleLineRule("'", "'", token, '\\')); //$NON-NLS-2$ //$NON-NLS-1$
 
-
-    token= getToken(IJavaColorConstants.PHP_MULTI_LINE_COMMENT);
+       
+    token= getToken(IPreferenceConstants.PHP_MULTILINE_COMMENT);
     rules.add(new MultiLineRule("/*", "*/", token)); //$NON-NLS-2$ //$NON-NLS-1$
     // Add generic whitespace rule.
     rules.add(new WhitespaceRule(new PHPWhitespaceDetector()));
     // Add word rule for keywords, types, and constants.
-    token= getToken(IJavaColorConstants.PHP_DEFAULT);
+    token= getToken(IPreferenceConstants.PHP_DEFAULT);
     PHPWordRule wordRule = new PHPWordRule(new PHPWordDetector(), token);
 
-    Token keyword= getToken(IJavaColorConstants.PHP_KEYWORD);
-    Token functionName= getToken(IJavaColorConstants.PHP_FUNCTIONNAME);
-    Token type= getToken(IJavaColorConstants.PHP_TYPE);
-    Token constant= getToken(IJavaColorConstants.PHP_CONSTANT);
-    PHPSyntaxRdr.readInSyntax();
-    Vector buffer = PHPSyntaxRdr.getsyntaxdata();
+    Token keyword= getToken(IPreferenceConstants.PHP_KEYWORD);
+    Token functionName= getToken(IPreferenceConstants.PHP_FUNCTIONNAME);
+    Token type= getToken(IPreferenceConstants.PHP_TYPE);
+    Token constant= getToken(IPreferenceConstants.PHP_CONSTANT);
+    
+    ArrayList buffer = PHPSyntaxRdr.getSyntaxData();
   //  String strbuffer = null;  unused
     PHPElement elbuffer = null;
-    while ((buffer != null)
-      && (!buffer.isEmpty()
-        && ((elbuffer = (PHPElement) buffer.remove(0)) != null))) {
+    for (int i=0;i<buffer.size();i++) {
+//    while ((buffer != null)
+//      && (!buffer.isEmpty()
+//        && ((elbuffer = (PHPElement) buffer.remove(0)) != null))) {
+                       elbuffer = (PHPElement) buffer.get(i);
       if (elbuffer instanceof PHPKeyword)
         wordRule.addWord(((PHPKeyword) elbuffer).getName(), keyword);
       if (elbuffer instanceof PHPFunction)