Improved CodeCompletion with information from the project.index file.
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / phpeditor / PHPTextHover.java
index 308f746..032adf0 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;
@@ -38,6 +38,9 @@ public class PHPTextHover implements ITextHover {
   public static HashMap functionDescriptions = null;
 
   private static PHPWordExtractor phpWordDetector = new PHPWordExtractor();
+  /**
+   * The current project; maybe <code>null</code> for preference pages
+   */
   private IProject fProject;
 
   public PHPTextHover(IProject project) {
@@ -80,28 +83,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();