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 c947cf6..32d7e9b 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.io.FileReader; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import java.util.Vector; -import net.sourceforge.phpdt.internal.corext.phpdoc.PHPDocCharArrayCommentReader; +import net.sourceforge.phpdt.internal.corext.phpdoc.PHPDocUtil; 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) { @@ -53,22 +56,22 @@ public class PHPTextHover implements ITextHover { String word = textViewer.getDocument().get(hoverRegion.getOffset(), hoverRegion.getLength()); if (functionDescriptions == null) { functionDescriptions = new HashMap(); - // PHPSyntaxRdr syntaxRdr = new PHPSyntaxRdr(); - // syntaxRdr.readInSyntax(); - // Vector syntaxbuffer = syntaxRdr.getsyntaxdata(); - Vector syntaxbuffer = PHPSyntaxRdr.getsyntaxdata(); + ArrayList 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()); + if (syntaxbuffer!=null) { + for (int i=0;i<syntaxbuffer.size();i++) { + elbuffer = (PHPElement) syntaxbuffer.get(i); + functionDescriptions.put(elbuffer.getName(), elbuffer.getHoverText()); + } } +// +// 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]); - // } } String hoverInfo = (String) functionDescriptions.get(word); if (hoverInfo == null && fProject != null) { @@ -80,29 +83,15 @@ 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; for (int i = 0; i < list.size(); i++) { location = (PHPIdentifierLocation) list.get(i); filename = workspaceLocation + location.getFilename(); - hoverInfoBuffer.append(location.toString()); - hoverInfoBuffer.append('\n'); - if (location.getPHPDocOffset() >= 0) { - // foundPHPdoc = true; - phpdocFileReader = new FileReader(filename); - char[] charArray = new char[location.getPHPDocLength()]; - phpdocFileReader.skip(location.getPHPDocOffset()); - phpdocFileReader.read(charArray, 0, location.getPHPDocLength()); - phpdocConverter = new PHPDocCharArrayCommentReader(charArray); - hoverInfoBuffer.append(phpdocConverter.getString()); - hoverInfoBuffer.append('\n'); - } + PHPDocUtil.appendPHPDoc(hoverInfoBuffer, filename, location); } - // if (foundPHPdoc) { hoverInfo = hoverInfoBuffer.toString(); - // } } catch (Throwable e) { // ignore exceptions // e.printStackTrace(); @@ -115,7 +104,9 @@ public class PHPTextHover implements ITextHover { } catch (Exception x) { } } - return "empty selection"; + return null; + // don't show this annoying text +// return "empty selection"; } /* (non-Javadoc)