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 f4e6582..cc93029 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPTextHover.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPTextHover.java @@ -12,11 +12,11 @@ Contributors: package net.sourceforge.phpeclipse.phpeditor; import java.util.HashMap; +import java.util.Vector; -import net.sourceforge.phpeclipse.phpeditor.php.PHPFunctionDescription; -import net.sourceforge.phpeclipse.phpeditor.php.PHPFunctionNames; +import net.sourceforge.phpeclipse.phpeditor.php.PHPElement; import net.sourceforge.phpeclipse.phpeditor.php.PHPWordExtractor; -import org.eclipse.jface.text.BadLocationException; + import org.eclipse.jface.text.IRegion; import org.eclipse.jface.text.ITextHover; import org.eclipse.jface.text.ITextViewer; @@ -29,8 +29,9 @@ import org.eclipse.swt.graphics.Point; */ public class PHPTextHover implements ITextHover { public static HashMap functionDescriptions = null; - + private static PHPWordExtractor phpWordDetector = new PHPWordExtractor(); + /* (non-Javadoc) * Method declared on ITextHover */ @@ -39,15 +40,30 @@ public class PHPTextHover implements ITextHover { try { if (hoverRegion.getLength() > -1) { String word = textViewer.getDocument().get(hoverRegion.getOffset(), hoverRegion.getLength()); - if (functionDescriptions==null) { - functionDescriptions = new HashMap(997); - for (int i=0; i<PHPFunctionNames.FUNCTION_NAMES.length;i++) { - functionDescriptions.put(PHPFunctionNames.FUNCTION_NAMES[i],PHPFunctionDescription.FUNCTION_DESCRIPTION[i]); + if (functionDescriptions == null) { + functionDescriptions = new HashMap(); + // PHPSyntaxRdr syntaxRdr = new PHPSyntaxRdr(); + // syntaxRdr.readInSyntax(); + + // Vector syntaxbuffer = syntaxRdr.getsyntaxdata(); + Vector syntaxbuffer = PHPSyntaxRdr.getsyntaxdata(); + String strbuffer = null; + PHPElement elbuffer = null; + while ((syntaxbuffer != null) + && (!syntaxbuffer.isEmpty() && + ((elbuffer = (PHPElement) syntaxbuffer.remove(0)) != null))) { + functionDescriptions.put(elbuffer.getName(), elbuffer.getHoverText()); } + + // functionDescriptions = new HashMap(997); + // for (int i=0; i<PHPFunctionNames.FUNCTION_NAMES.length;i++) { + // functionDescriptions.put(PHPFunctionNasmes.FUNCTION_NAMES[i],PHPFunctionDescription.FUNCTION_DESCRIPTION[i]); + // } } return (String) functionDescriptions.get(word); } - } catch (BadLocationException x) { + // } catch (BadLocationException x) { + } catch (Exception x) { } } return "empty selection"; @@ -58,8 +74,8 @@ public class PHPTextHover implements ITextHover { */ public IRegion getHoverRegion(ITextViewer textViewer, int 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) + // show the extracted word as a tooltip + if (selection != null && selection.x <= offset && offset < selection.x + selection.y) return new Region(selection.x, selection.y); return new Region(offset, 0); }