Improved CodeCompletion with information from the project.index file.
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / phpeditor / php / PHPCodeScanner.java
index 41cbee2..38486aa 100644 (file)
@@ -16,30 +16,21 @@ import java.util.List;
 import java.util.Vector;
 
 import net.sourceforge.phpdt.internal.ui.text.AbstractJavaScanner;
-import net.sourceforge.phpdt.internal.ui.text.JavaColorManager;
 import net.sourceforge.phpdt.ui.text.IColorManager;
-import net.sourceforge.phpdt.ui.text.IJavaColorConstants;
 import net.sourceforge.phpeclipse.IPreferenceConstants;
-import net.sourceforge.phpeclipse.PHPeclipsePlugin;
 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.preference.PreferenceConverter;
-import org.eclipse.jface.text.TextAttribute;
 import org.eclipse.jface.text.rules.EndOfLineRule;
 import org.eclipse.jface.text.rules.ICharacterScanner;
-import org.eclipse.jface.text.rules.IRule;
 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.SingleLineRule;
 import org.eclipse.jface.text.rules.Token;
 import org.eclipse.jface.text.rules.WhitespaceRule;
 import org.eclipse.jface.text.rules.WordRule;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
 
 /**
  * PHP Code Scanner
@@ -86,7 +77,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)
@@ -107,15 +98,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
        */
@@ -258,29 +249,35 @@ 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));
+    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 SingleLineRule("'", "'", token, '\\')); //$NON-NLS-2$ //$NON-NLS-1$
-    token= getToken(IJavaColorConstants.PHP_MULTI_LINE_COMMENT);
-    rules.add(new MultiLineRule("/*", "*/", token));
+    rules.add(new MultiLineRule("`", "`", token, '\\')); //$NON-NLS-2$ //$NON-NLS-1$
+    rules.add(new MultiLineRule("'", "'", token, '\\')); //$NON-NLS-2$ //$NON-NLS-1$
+
+    //previous version
+    //rules.add(new SingleLineRule("'", "'", token, '\\')); //$NON-NLS-2$ //$NON-NLS-1$
+
+       
+    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);
+    Token keyword= getToken(IPreferenceConstants.PHP_KEYWORD);
+    Token functionName= getToken(IPreferenceConstants.PHP_FUNCTIONNAME);
+    Token type= getToken(IPreferenceConstants.PHP_TYPE);
+    Token constant= getToken(IPreferenceConstants.PHP_CONSTANT);
     PHPSyntaxRdr.readInSyntax();
     Vector buffer = PHPSyntaxRdr.getsyntaxdata();
-    String strbuffer = null;
+  //  String strbuffer = null;  unused
     PHPElement elbuffer = null;
     while ((buffer != null)
       && (!buffer.isEmpty()
@@ -295,7 +292,7 @@ public class PHPCodeScanner
         wordRule.addWord(elbuffer.getName(), constant);
     }
     rules.add(wordRule);
-    IRule[] result = new IRule[rules.size()];
+   // IRule[] result = new IRule[rules.size()];unused
     //    rules.toArray(result);
     //    setRules(result);
     return rules;