import net.sourceforge.phpdt.ui.PreferenceConstants;
import net.sourceforge.phpeclipse.PHPeclipsePlugin;
import net.sourceforge.phpeclipse.phpeditor.JavaAnnotationIterator;
+import net.sourceforge.phpeclipse.phpeditor.PHPTextHover;
import net.sourceforge.phpeclipse.phpeditor.PHPUnitEditor;
+import org.eclipse.core.resources.IFile;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.Position;
import org.eclipse.jface.text.source.Annotation;
import org.eclipse.jface.text.source.IAnnotationModel;
+import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.editors.text.EditorsUI;
import org.eclipse.ui.texteditor.AnnotationPreference;
import org.eclipse.ui.texteditor.DefaultMarkerAnnotationAccess;
private IPreferenceStore fStore= PHPeclipsePlugin.getDefault().getPreferenceStore();
private DefaultMarkerAnnotationAccess fAnnotationAccess= new DefaultMarkerAnnotationAccess();
-
+ private PHPTextHover fPHPTextHover = null;
/*
* Formats a message as HTML text.
*/
private String formatMessage(String message) {
StringBuffer buffer= new StringBuffer();
HTMLPrinter.addPageProlog(buffer);
- HTMLPrinter.addParagraph(buffer, HTMLPrinter.convertToHTMLContent(message));
+ HTMLPrinter.addParagraph(buffer, message); //HTMLPrinter.convertToHTMLContent(message));
HTMLPrinter.addPageEpilog(buffer);
return buffer.toString();
}
IDocumentProvider provider= PHPeclipsePlugin.getDefault().getCompilationUnitDocumentProvider();
IAnnotationModel model= provider.getAnnotationModel(getEditor().getEditorInput());
-
+ String message= null;
if (model != null) {
Iterator e= new JavaAnnotationIterator(model, true);
int layer= -1;
- String message= null;
+
while (e.hasNext()) {
Annotation a= (Annotation) e.next();
if (layer > -1)
return formatMessage(message);
}
-
+ // Added as long as the above doesn't work
+ if (fPHPTextHover!=null) {
+ message = fPHPTextHover.getHoverInfo(textViewer, hoverRegion);
+ if (message!=null) {
+ return formatMessage(message);
+ }
+ }
return null;
}
* @see IJavaEditorTextHover#setEditor(IEditorPart)
*/
public void setEditor(IEditorPart editor) {
- if (editor instanceof PHPUnitEditor)
+ if (editor instanceof PHPUnitEditor) {
super.setEditor(editor);
- else
+ if (editor != null) {
+ IEditorInput editorInput = editor.getEditorInput();
+ if (editorInput instanceof IFileEditorInput) {
+ try {
+ IFile f = ((IFileEditorInput) editorInput).getFile();
+ fPHPTextHover = new PHPTextHover(f.getProject());
+ return;
+ } catch (NullPointerException e) {
+ // this exception occurs, if getTextHover is called by
+ // preference pages !
+ }
+ }
+ }
+ fPHPTextHover = new PHPTextHover(null);
+ } else {
super.setEditor(null);
+ }
}
/**