X-Git-Url: http://git.phpeclipse.com

diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPTextHover.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPTextHover.java
index 22e1470..08c077e 100644
--- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPTextHover.java
+++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPTextHover.java
@@ -11,7 +11,6 @@
  **********************************************************************/
 package net.sourceforge.phpeclipse.phpeditor;
 
-import java.io.FileReader;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -21,6 +20,7 @@ import net.sourceforge.phpeclipse.PHPeclipsePlugin;
 import net.sourceforge.phpeclipse.builder.IdentifierIndexManager;
 import net.sourceforge.phpeclipse.builder.PHPIdentifierLocation;
 import net.sourceforge.phpeclipse.phpeditor.php.PHPElement;
+import net.sourceforge.phpeclipse.phpeditor.php.PHPFunction;
 import net.sourceforge.phpeclipse.phpeditor.php.PHPWordExtractor;
 
 import org.eclipse.core.resources.IProject;
@@ -34,9 +34,9 @@ import org.eclipse.swt.graphics.Point;
  * Implementation for an <code>ITextHover</code> which hovers over PHP code.
  */
 public class PHPTextHover implements ITextHover {
-	public static HashMap functionDescriptions = null;
+	private static HashMap functionDescriptions = null;
 
-	private static PHPWordExtractor phpWordDetector = new PHPWordExtractor();
+	private static HashMap identDescriptions = null;
 
 	/**
 	 * The current project; maybe <code>null</code> for preference pages
@@ -54,52 +54,69 @@ public class PHPTextHover implements ITextHover {
 		if (hoverRegion != null) {
 			try {
 				if (hoverRegion.getLength() > -1) {
-					String word = textViewer.getDocument().get(hoverRegion.getOffset(), hoverRegion.getLength());
+					String word = textViewer.getDocument().get(
+							hoverRegion.getOffset(), hoverRegion.getLength());
 					if (functionDescriptions == null) {
 						functionDescriptions = new HashMap();
+						identDescriptions = new HashMap();
 						ArrayList syntaxbuffer = PHPSyntaxRdr.getSyntaxData();
-						String strbuffer = null;
 						PHPElement elbuffer = null;
 						if (syntaxbuffer != null) {
 							for (int i = 0; i < syntaxbuffer.size(); i++) {
 								elbuffer = (PHPElement) syntaxbuffer.get(i);
-								functionDescriptions.put(elbuffer.getName(), elbuffer.getHoverText());
+								if (elbuffer instanceof PHPFunction) {
+									functionDescriptions.put(
+											elbuffer.getName(), elbuffer
+													.getHoverText());
+								} else {
+									identDescriptions.put(elbuffer.getName(),
+											elbuffer.getHoverText());
+								}
 							}
 						}
 						//
 						// while ((syntaxbuffer != null)
-						// && (!syntaxbuffer.isEmpty() && ((elbuffer = (PHPElement)
+						// && (!syntaxbuffer.isEmpty() && ((elbuffer =
+						// (PHPElement)
 						// syntaxbuffer.remove(0)) != null))) {
 						// functionDescriptions.put(elbuffer.getName(),
 						// elbuffer.getHoverText());
 						// }
 					}
-					String hoverInfo = (String) functionDescriptions.get(word);
+					String hoverInfo = (String) identDescriptions.get(word);
 					if (hoverInfo == null & word.length() > 0) {
-						hoverInfo = (String) functionDescriptions.get(word.toLowerCase());
+						hoverInfo = (String) functionDescriptions.get(word
+								.toLowerCase());
 					}
 					if (hoverInfo == null && fProject != null) {
-						// get the possible PHPDoc information from the index file
-						IdentifierIndexManager indexManager = PHPeclipsePlugin.getDefault().getIndexManager(fProject);
+						// get the possible PHPDoc information from the index
+						// file
+						IdentifierIndexManager indexManager = PHPeclipsePlugin
+								.getDefault().getIndexManager(fProject);
 						List list = indexManager.getLocations(word);
 						if (list.size() > 0) {
 							try {
 								PHPIdentifierLocation location;
 								String filename;
-								FileReader phpdocFileReader;
 								StringBuffer hoverInfoBuffer = new StringBuffer();
 								String workspaceLocation;
 								if (fProject != null) {
-									workspaceLocation = fProject.getLocation().toString() + '/';
+									workspaceLocation = fProject.getLocation()
+											.toString() + '/';
 								} else {
 									// should never happen?
-									workspaceLocation = PHPeclipsePlugin.getWorkspace().getRoot().getLocation().toString();
+									workspaceLocation = PHPeclipsePlugin
+											.getWorkspace().getRoot()
+											.getLocation().toString();
 								}
 								// boolean foundPHPdoc = false;
 								for (int i = 0; i < list.size(); i++) {
-									location = (PHPIdentifierLocation) list.get(i);
-									filename = workspaceLocation + location.getFilename();
-									PHPDocUtil.appendPHPDoc(hoverInfoBuffer, filename, location);
+									location = (PHPIdentifierLocation) list
+											.get(i);
+									filename = workspaceLocation
+											+ location.getFilename();
+									PHPDocUtil.appendPHPDoc(hoverInfoBuffer,
+											filename, location);
 								}
 								hoverInfo = hoverInfoBuffer.toString();
 							} catch (Throwable e) {
@@ -123,9 +140,11 @@ public class PHPTextHover implements ITextHover {
 	 * (non-Javadoc) Method declared on ITextHover
 	 */
 	public IRegion getHoverRegion(ITextViewer textViewer, int offset) {
-		Point selection = PHPWordExtractor.findWord(textViewer.getDocument(), offset);
+		Point selection = PHPWordExtractor.findWord(textViewer.getDocument(),
+				offset);
 		// show the extracted word as a tooltip
-		if (selection != null && selection.x <= offset && offset < selection.x + selection.y)
+		if (selection != null && selection.x <= offset
+				&& offset < selection.x + selection.y)
 			return new Region(selection.x, selection.y);
 		return new Region(offset, 0);
 	}