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 884a557..071cb9f 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPTextHover.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPTextHover.java @@ -11,40 +11,43 @@ Contributors: **********************************************************************/ package net.sourceforge.phpeclipse.phpeditor; - -import org.eclipse.swt.graphics.Point; +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; import org.eclipse.jface.text.Region; +import org.eclipse.swt.graphics.Point; /** - * Example implementation for an ITextHover which hovers over Java code. + * Example implementation for an ITextHover + * which hovers over PHP code. */ public class PHPTextHover implements ITextHover { + private static PHPWordExtractor phpWordDetector = new PHPWordExtractor(); + /* (non-Javadoc) + * Method declared on ITextHover + */ + public String getHoverInfo(ITextViewer textViewer, IRegion hoverRegion) { + if (hoverRegion != null) { + try { + if (hoverRegion.getLength() > -1) { + return textViewer.getDocument().get(hoverRegion.getOffset(), hoverRegion.getLength()); + } + } catch (BadLocationException x) { + } + } + return "empty selection"; + } - /* (non-Javadoc) - * Method declared on ITextHover - */ - public String getHoverInfo(ITextViewer textViewer, IRegion hoverRegion) { - if (hoverRegion != null) { - try { - if (hoverRegion.getLength() > -1) - return textViewer.getDocument().get(hoverRegion.getOffset(), hoverRegion.getLength()); - } catch (BadLocationException x) { - } - } - return "empty selection"; - } - - /* (non-Javadoc) - * Method declared on ITextHover - */ - public IRegion getHoverRegion(ITextViewer textViewer, int offset) { - Point selection= textViewer.getSelectedRange(); - if (selection.x <= offset && offset < selection.x + selection.y) - return new Region(selection.x, selection.y); - return new Region(offset, 0); - } + /* (non-Javadoc) + * Method declared on 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) + return new Region(selection.x, selection.y); + return new Region(offset, 0); + } }