**********************************************************************/
package net.sourceforge.phpeclipse.phpeditor;
-import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
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;
* 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
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) {
// ignore exceptions
- // e.printStackTrace();
+ e.printStackTrace();
}
}
}
* (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);
}