Added some code to show variables from class in the outline
authorkpouer <kpouer>
Thu, 23 Jan 2003 16:52:19 +0000 (16:52 +0000)
committerkpouer <kpouer>
Thu, 23 Jan 2003 16:52:19 +0000 (16:52 +0000)
and added option to display or not class, functions and variables (still a bug when you choose to hide classes but show their variables and functions)

net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/phpparser/PHPParser.java

index 5c79a17..bcc7ba9 100644 (file)
@@ -19,12 +19,14 @@ import java.util.Stack;
 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
 import net.sourceforge.phpeclipse.actions.PHPStartApacheAction;
 import net.sourceforge.phpeclipse.phpeditor.PHPString;
+import net.sourceforge.phpeclipse.phpeditor.PHPParserAction;
 import net.sourceforge.phpeclipse.phpeditor.php.PHPKeywords;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.action.IAction;
 import org.eclipse.ui.texteditor.MarkerUtilities;
 
 public class PHPParser extends PHPKeywords {
@@ -752,7 +754,7 @@ public class PHPParser extends PHPKeywords {
             if (ch2 == '?') {
               ch2 = str.charAt(chIndx++);
               if (Character.isWhitespace(ch2)) {
-                // php start 
+                // php start
                 phpMode = true;
                 phpFound = true;
                 break;
@@ -1352,7 +1354,7 @@ public class PHPParser extends PHPKeywords {
     chIndx--;
 
     // determine if this identitfer is a keyword
-    // @todo improve this in future version 
+    // @todo improve this in future version
     Integer i = (Integer) keywordMap.get(identifier.toLowerCase());
     if (i != null) {
       token = i.intValue();
@@ -1468,7 +1470,7 @@ public class PHPParser extends PHPKeywords {
           if (ch2 == '?') {
             ch2 = input.charAt(i++);
             if (Character.isWhitespace(ch2)) {
-              // php start 
+              // php start
               phpMode = true;
               phpFound = true;
               startIndex = i;
@@ -1617,7 +1619,7 @@ public class PHPParser extends PHPKeywords {
         //          String temp = ((PHPString)phpList.get(j)).getPHPString();
         //          int startIndx = temp.length()-10;
         //          if (startIndx<0) {
-        //            startIndx = 0; 
+        //            startIndx = 0;
         //          }
         //          System.out.println(temp.substring(startIndx)+"?>");
         //        }
@@ -1626,7 +1628,7 @@ public class PHPParser extends PHPKeywords {
         //        for(int j=0;j<phpList.size();j++) {
         //          temp = (PHPString) phpList.get(j);
         //          parser.start(temp.getPHPString(), temp.getLineNumber());
-        //        } 
+        //        }
       }
     } catch (CoreException e) {
     }
@@ -1681,7 +1683,7 @@ public class PHPParser extends PHPKeywords {
         } else {
           setMarker(err.getMessage(), err.getLine(), ERROR);
         }
-        // if an error occured, 
+        // if an error occured,
         // try to find keywords 'class' or 'function'
         // to parse the rest of the string
         while (token != TT_EOF && token != TT_UNDEFINED) {
@@ -1743,7 +1745,7 @@ public class PHPParser extends PHPKeywords {
       } catch (SyntaxError sytaxErr1) {
         setMarker(sytaxErr1.getMessage(), sytaxErr1.getLine(), ERROR);
         try {
-          // if an error occured, 
+          // if an error occured,
           // try to find keywords 'class' or 'function'
           // to parse the rest of the string
           while (token != TT_EOF && token != TT_UNDEFINED) {
@@ -1789,25 +1791,32 @@ public class PHPParser extends PHPKeywords {
     //   PHPClassDeclaration current = (PHPClassDeclaration) stack.peek();
     PHPClassDeclaration temp;
     int counter = 0;
-
+    IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
     try {
       while (token != TT_EOF && token != TT_UNDEFINED) {
         if (token == TT_VARIABLE) {
           outlineInfo.addVariable(identifier);
           getNextToken();
+        } else if (token == TT_var) {
+          getNextToken();
+          if (token == TT_VARIABLE && store.getBoolean(PHPeclipsePlugin.PHP_OUTLINE_VAR)) {
+            outlineInfo.addVariable(identifier);
+            current.add(new PHPVarDeclaration(current, identifier, chIndx - identifier.length()));
+            getNextToken();
+          }
         } else if (token == TT_function) {
           getNextToken();
           if (token == TT_AMPERSAND) {
             getNextToken();
           }
-          if (token == TT_IDENTIFIER) {
+          if (token == TT_IDENTIFIER && store.getBoolean(PHPeclipsePlugin.PHP_OUTLINE_FUNC)) {
             outlineInfo.addVariable(identifier);
             current.add(new PHPFunctionDeclaration(current, identifier, chIndx - identifier.length()));
             getNextToken();
           }
         } else if (token == TT_class) {
           getNextToken();
-          if (token == TT_IDENTIFIER) {
+          if (token == TT_IDENTIFIER && store.getBoolean(PHPeclipsePlugin.PHP_OUTLINE_CLASS)) {
             outlineInfo.addVariable(identifier);
             temp = new PHPClassDeclaration(current, identifier, chIndx - identifier.length());
             current.add(temp);
@@ -2379,7 +2388,7 @@ public class PHPParser extends PHPKeywords {
         } else {
           throwSyntaxError("':' character after 'case' constant expected.");
         }
-      } else { // TT_default 
+      } else { // TT_default
         getNextToken();
         if (token == TT_DDOT) {
           getNextToken();
@@ -2944,7 +2953,7 @@ public class PHPParser extends PHPKeywords {
         getNextToken();
         unaryExpression();
         break;
-        // '@' '&' '*' '+' '-' '~' '!' 
+        // '@' '&' '*' '+' '-' '~' '!'
       case TT_AT :
         getNextToken();
         castExpression();