Improved the phpdoc output
authorkhartlage <khartlage>
Thu, 11 Sep 2003 15:59:56 +0000 (15:59 +0000)
committerkhartlage <khartlage>
Thu, 11 Sep 2003 15:59:56 +0000 (15:59 +0000)
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/corext/phpdoc/PHPDocBufferCommentReader.java [moved from net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/corext/phpdoc/PHPDocCommentReader.java with 89% similarity]
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/corext/phpdoc/PHPDocCharArrayCommentReader.java [new file with mode: 0644]
net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/mover/obfuscator/PHPIdentifier.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPTextHover.java

@@ -15,10 +15,10 @@ import net.sourceforge.phpdt.internal.corext.util.Strings;
 
 
 /**
- * Reads a java doc comment from a java doc comment. Skips star-character
+ * Reads a phpdoc comment from a phpdoc comment. Skips star-character
  * on begin of line
  */
-public class PHPDocCommentReader extends SingleCharReader {
+public class PHPDocBufferCommentReader extends SingleCharReader {
 
        private IBuffer fBuffer;
        
@@ -28,7 +28,7 @@ public class PHPDocCommentReader extends SingleCharReader {
        
        private boolean fWasNewLine;
                
-       public PHPDocCommentReader(IBuffer buf, int start, int end) {
+       public PHPDocBufferCommentReader(IBuffer buf, int start, int end) {
                fBuffer= buf;
                fStartPos= start + 3;
                fEndPos= end - 2;
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/corext/phpdoc/PHPDocCharArrayCommentReader.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/corext/phpdoc/PHPDocCharArrayCommentReader.java
new file mode 100644 (file)
index 0000000..4816997
--- /dev/null
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2003 IBM Corporation 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 API and implementation
+ *******************************************************************************/
+package net.sourceforge.phpdt.internal.corext.phpdoc;
+
+import net.sourceforge.phpdt.internal.corext.util.Strings;
+
+/**
+ * Reads a phpdoc comment from a phpdoc comment. Skips star-character
+ * on begin of line
+ */
+public class PHPDocCharArrayCommentReader extends SingleCharReader {
+
+  private char[] fCharArray;
+  private int fCurrPos;
+  private int fStartPos;
+  private int fEndPos;
+
+  private boolean fWasNewLine;
+
+       public PHPDocCharArrayCommentReader(char[] buf) {
+               this(buf, 0, buf.length);
+       }
+       
+  public PHPDocCharArrayCommentReader(char[] buf, int start, int end) {
+    fCharArray = buf;
+               fStartPos= start + 3;
+               fEndPos= end - 2;
+
+    reset();
+  }
+
+  /**
+   * @see java.io.Reader#read()
+   */
+  public int read() {
+    if (fCurrPos < fEndPos) {
+      char ch;
+      if (fWasNewLine) {
+        do {
+          ch = fCharArray[fCurrPos++];
+        } while (fCurrPos < fEndPos && Character.isWhitespace(ch));
+        if (ch == '*') {
+          if (fCurrPos < fEndPos) {
+            do {
+              ch = fCharArray[fCurrPos++];
+            } while (ch == '*');
+          } else {
+            return -1;
+          }
+        }
+      } else {
+        ch = fCharArray[fCurrPos++];
+      }
+      fWasNewLine = Strings.isLineDelimiterChar(ch);
+
+      return ch;
+    }
+    return -1;
+  }
+
+  /**
+   * @see java.io.Reader#close()
+   */
+  public void close() {
+    fCharArray = null;
+  }
+
+  /**
+   * @see java.io.Reader#reset()
+   */
+  public void reset() {
+    fCurrPos = fStartPos;
+    fWasNewLine = true;
+  }
+
+}
index 05820af..74098e8 100644 (file)
@@ -72,15 +72,15 @@ public class PHPIdentifier {
   public String toString() {
     switch (fType) {
       case CLASS :
-        return "class ";
+        return "class - ";
       case DEFINE :
-        return "define ";
+        return "define - ";
       case FUNCTION :
-        return "function ";
+        return "function - ";
       case METHOD :
-        return "method ";
+        return "method - ";
       case VARIABLE :
-        return "variable ";
+        return "variable - ";
     }
     return "";
   }
index 308f746..c947cf6 100644 (file)
@@ -12,11 +12,11 @@ Contributors:
 package net.sourceforge.phpeclipse.phpeditor;
 
 import java.io.FileReader;
-import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Vector;
 
+import net.sourceforge.phpdt.internal.corext.phpdoc.PHPDocCharArrayCommentReader;
 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
 import net.sourceforge.phpeclipse.builder.IdentifierIndexManager;
 import net.sourceforge.phpeclipse.builder.PHPIdentifierLocation;
@@ -80,28 +80,29 @@ public class PHPTextHover implements ITextHover {
                 PHPIdentifierLocation location;
                 String filename;
                 FileReader phpdocFileReader;
+                PHPDocCharArrayCommentReader phpdocConverter;
                 StringBuffer hoverInfoBuffer = new StringBuffer();
                 String workspaceLocation = PHPeclipsePlugin.getWorkspace().getRoot().getLocation().toString();
-                boolean foundPHPdoc = false;
+                //                boolean foundPHPdoc = false;
                 for (int i = 0; i < list.size(); i++) {
-                  location = (PHPIdentifierLocation) list.get(0);
+                  location = (PHPIdentifierLocation) list.get(i);
+                                                                       filename = workspaceLocation + location.getFilename();
+                                                                       hoverInfoBuffer.append(location.toString());
+                                                                       hoverInfoBuffer.append('\n');
                   if (location.getPHPDocOffset() >= 0) {
-                    foundPHPdoc = true;
-                    filename = workspaceLocation + location.getFilename();
+                    //                    foundPHPdoc = true;
                     phpdocFileReader = new FileReader(filename);
-                    hoverInfoBuffer.append("PHPdoc found in file: ");
-                    hoverInfoBuffer.append(filename);
-                    hoverInfoBuffer.append('\n');
                     char[] charArray = new char[location.getPHPDocLength()];
                     phpdocFileReader.skip(location.getPHPDocOffset());
                     phpdocFileReader.read(charArray, 0, location.getPHPDocLength());
-                    hoverInfoBuffer.append(charArray);
+                    phpdocConverter = new PHPDocCharArrayCommentReader(charArray);
+                    hoverInfoBuffer.append(phpdocConverter.getString());
                     hoverInfoBuffer.append('\n');
                   }
                 }
-                if (foundPHPdoc) {
-                  hoverInfo = hoverInfoBuffer.toString();
-                }
+                //                if (foundPHPdoc) {
+                hoverInfo = hoverInfoBuffer.toString();
+                //                }
               } catch (Throwable e) {
                 // ignore exceptions
                 // e.printStackTrace();