X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPEditor.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPEditor.java index ed584d5..2c916d6 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPEditor.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPEditor.java @@ -11,6 +11,8 @@ package net.sourceforge.phpeclipse.phpeditor; IBM Corporation - Initial implementation Klaus Hartlage - www.eclipseproject.de **********************************************************************/ +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; @@ -69,6 +71,7 @@ import org.eclipse.jface.text.IDocumentListener; import org.eclipse.jface.text.IInformationControl; import org.eclipse.jface.text.IInformationControlCreator; import org.eclipse.jface.text.IRegion; +import org.eclipse.jface.text.ISynchronizable; import org.eclipse.jface.text.ITextHover; import org.eclipse.jface.text.ITextInputListener; import org.eclipse.jface.text.ITextSelection; @@ -141,8 +144,8 @@ import org.eclipse.ui.editors.text.EditorsUI; import org.eclipse.ui.editors.text.IEncodingSupport; import org.eclipse.ui.part.IShowInTargetList; import org.eclipse.ui.texteditor.AbstractDecoratedTextEditor; +import org.eclipse.ui.texteditor.AnnotationPreference; import org.eclipse.ui.texteditor.ChainedPreferenceStore; -import org.eclipse.ui.texteditor.DefaultRangeIndicator; import org.eclipse.ui.texteditor.IDocumentProvider; import org.eclipse.ui.texteditor.IEditorStatusLine; import org.eclipse.ui.texteditor.ITextEditorActionConstants; @@ -1624,12 +1627,6 @@ public abstract class PHPEditor extends AbstractDecoratedTextEditor implements I protected String fOutlinerContextMenuId; /** - * The editor selection changed listener. - * - * @since 3.0 - */ - // private EditorSelectionChangedListener fEditorSelectionChangedListener; - /** * Indicates whether this editor should react on outline page selection changes */ private int fIgnoreOutlinePageSelection; @@ -1664,6 +1661,20 @@ public abstract class PHPEditor extends AbstractDecoratedTextEditor implements I /** The mouse listener */ private MouseClickListener fMouseListener; + /** + * Indicates whether this editor is about to update any annotation views. + * + * @since 3.0 + */ + private boolean fIsUpdatingAnnotationViews = false; + + /** + * The marker that served as last target for a goto marker request. + * + * @since 3.0 + */ + private IMarker fLastMarkerTarget = null; + protected CompositeActionGroup fActionGroups; protected CompositeActionGroup fContextMenuGroup; @@ -1681,11 +1692,13 @@ public abstract class PHPEditor extends AbstractDecoratedTextEditor implements I * @since 3.0 */ private IJavaFoldingStructureProvider fProjectionModelUpdater; + /** - * The override and implements indicator manager for this editor. - * @since 3.0 - */ -// protected OverrideIndicatorManager fOverrideIndicatorManager; + * The override and implements indicator manager for this editor. + * + * @since 3.0 + */ + // protected OverrideIndicatorManager fOverrideIndicatorManager; /** * The action group for folding. * @@ -1745,16 +1758,18 @@ public abstract class PHPEditor extends AbstractDecoratedTextEditor implements I */ protected void initializeEditor() { //jsurfer old code -// JavaTextTools textTools = PHPeclipsePlugin.getDefault().getJavaTextTools(); -// setSourceViewerConfiguration(new PHPSourceViewerConfiguration(textTools, this, IPHPPartitions.PHP_PARTITIONING)); //, IJavaPartitions.JAVA_PARTITIONING)); - IPreferenceStore store= createCombinedPreferenceStore(null); - setPreferenceStore(store); - JavaTextTools textTools= PHPeclipsePlugin.getDefault().getJavaTextTools(); - setSourceViewerConfiguration(new PHPSourceViewerConfiguration(textTools.getColorManager(), store, this, IPHPPartitions.PHP_PARTITIONING)); + // JavaTextTools textTools = PHPeclipsePlugin.getDefault().getJavaTextTools(); + // setSourceViewerConfiguration(new PHPSourceViewerConfiguration(textTools, this, IPHPPartitions.PHP_PARTITIONING)); //, + // IJavaPartitions.JAVA_PARTITIONING)); + IPreferenceStore store = createCombinedPreferenceStore(null); + setPreferenceStore(store); + JavaTextTools textTools = PHPeclipsePlugin.getDefault().getJavaTextTools(); + setSourceViewerConfiguration(new PHPSourceViewerConfiguration(textTools.getColorManager(), store, this, + IPHPPartitions.PHP_PARTITIONING)); // TODO changed in 3.x ? -// setRangeIndicator(new DefaultRangeIndicator()); -// if (PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE)) -// fUpdater = new OutlinePageSelectionUpdater(); + // setRangeIndicator(new DefaultRangeIndicator()); + // if (PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE)) + // fUpdater = new OutlinePageSelectionUpdater(); // jsurfer end // IPreferenceStore store= createCombinedPreferenceStore(null); @@ -1897,13 +1912,104 @@ public abstract class PHPEditor extends AbstractDecoratedTextEditor implements I } protected void configureSourceViewerDecorationSupport(SourceViewerDecorationSupport support) { - - support.setCharacterPairMatcher(fBracketMatcher); - support.setMatchingCharacterPainterPreferenceKeys(MATCHING_BRACKETS, MATCHING_BRACKETS_COLOR); - - super.configureSourceViewerDecorationSupport(support); + + support.setCharacterPairMatcher(fBracketMatcher); + support.setMatchingCharacterPainterPreferenceKeys(MATCHING_BRACKETS, MATCHING_BRACKETS_COLOR); + + super.configureSourceViewerDecorationSupport(support); + } + + /* + * @see org.eclipse.ui.texteditor.AbstractTextEditor#gotoMarker(org.eclipse.core.resources.IMarker) + */ + public void gotoMarker(IMarker marker) { + fLastMarkerTarget = marker; + if (!fIsUpdatingAnnotationViews) { + super.gotoMarker(marker); + } + } + + /** + * Jumps to the next enabled annotation according to the given direction. An annotation type is enabled if it is configured to be + * in the Next/Previous tool bar drop down menu and if it is checked. + * + * @param forward + * true if search direction is forward, false if backward + */ + public void gotoAnnotation(boolean forward) { + ITextSelection selection = (ITextSelection) getSelectionProvider().getSelection(); + Position position = new Position(0, 0); + if (false /* delayed - see bug 18316 */) { + getNextAnnotation(selection.getOffset(), selection.getLength(), forward, position); + selectAndReveal(position.getOffset(), position.getLength()); + } else /* no delay - see bug 18316 */{ + Annotation annotation = getNextAnnotation(selection.getOffset(), selection.getLength(), forward, position); + setStatusLineErrorMessage(null); + setStatusLineMessage(null); + if (annotation != null) { + updateAnnotationViews(annotation); + selectAndReveal(position.getOffset(), position.getLength()); + setStatusLineMessage(annotation.getText()); + } + } + } + + /** + * Returns the lock object for the given annotation model. + * + * @param annotationModel + * the annotation model + * @return the annotation model's lock object + * @since 3.0 + */ + private Object getLockObject(IAnnotationModel annotationModel) { + if (annotationModel instanceof ISynchronizable) + return ((ISynchronizable) annotationModel).getLockObject(); + else + return annotationModel; + } + + /** + * Updates the annotation views that show the given annotation. + * + * @param annotation + * the annotation + */ + private void updateAnnotationViews(Annotation annotation) { + IMarker marker = null; + if (annotation instanceof MarkerAnnotation) + marker = ((MarkerAnnotation) annotation).getMarker(); + else if (annotation instanceof IJavaAnnotation) { + Iterator e = ((IJavaAnnotation) annotation).getOverlaidIterator(); + if (e != null) { + while (e.hasNext()) { + Object o = e.next(); + if (o instanceof MarkerAnnotation) { + marker = ((MarkerAnnotation) o).getMarker(); + break; + } + } + } + } + + if (marker != null && !marker.equals(fLastMarkerTarget)) { + try { + boolean isProblem = marker.isSubtypeOf(IMarker.PROBLEM); + IWorkbenchPage page = getSite().getPage(); + IViewPart view = page.findView(isProblem ? IPageLayout.ID_PROBLEM_VIEW : IPageLayout.ID_TASK_LIST); //$NON-NLS-1$ //$NON-NLS-2$ + if (view != null) { + Method method = view.getClass().getMethod("setSelection", new Class[] { IStructuredSelection.class, boolean.class }); //$NON-NLS-1$ + method.invoke(view, new Object[] { new StructuredSelection(marker), Boolean.TRUE }); + } + } catch (CoreException x) { + } catch (NoSuchMethodException x) { + } catch (IllegalAccessException x) { + } catch (InvocationTargetException x) { + } + // ignore exceptions, don't update any of the lists, just set status line + } } - + /** * Returns this document's complete text. * @@ -2029,16 +2135,16 @@ public abstract class PHPEditor extends AbstractDecoratedTextEditor implements I super.doSetInput(input); if (getSourceViewer() instanceof JavaSourceViewer) { - JavaSourceViewer viewer= (JavaSourceViewer)getSourceViewer(); - if (viewer.getReconciler() == null) { - IReconciler reconciler= getSourceViewerConfiguration().getReconciler(viewer); - if (reconciler != null) { - reconciler.install(viewer); - viewer.setReconciler(reconciler); - } - } - } - + JavaSourceViewer viewer = (JavaSourceViewer) getSourceViewer(); + if (viewer.getReconciler() == null) { + IReconciler reconciler = getSourceViewerConfiguration().getReconciler(viewer); + if (reconciler != null) { + reconciler.install(viewer); + viewer.setReconciler(reconciler); + } + } + } + if (fEncodingSupport != null) fEncodingSupport.reset(); @@ -2047,8 +2153,8 @@ public abstract class PHPEditor extends AbstractDecoratedTextEditor implements I if (fProjectionModelUpdater != null) fProjectionModelUpdater.initialize(); -// if (isShowingOverrideIndicators()) -// installOverrideIndicator(false); +// if (isShowingOverrideIndicators()) +// installOverrideIndicator(false); } /* @@ -2671,10 +2777,10 @@ public abstract class PHPEditor extends AbstractDecoratedTextEditor implements I } if (PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE.equals(property)) { - if ((event.getNewValue() instanceof Boolean) && ((Boolean)event.getNewValue()).booleanValue()) - selectionChanged(); - return; - } + if ((event.getNewValue() instanceof Boolean) && ((Boolean) event.getNewValue()).booleanValue()) + selectionChanged(); + return; + } if (PreferenceConstants.EDITOR_DISABLE_OVERWRITE_MODE.equals(property)) { if (event.getNewValue() instanceof Boolean) { @@ -2714,20 +2820,20 @@ public abstract class PHPEditor extends AbstractDecoratedTextEditor implements I // } // } // } - - ((PHPSourceViewerConfiguration)getSourceViewerConfiguration()).handlePropertyChangeEvent(event); - -// if (affectsOverrideIndicatorAnnotations(event)) { -// if (isShowingOverrideIndicators()) { -// if (fOverrideIndicatorManager == null) -// installOverrideIndicator(true); -// } else { -// if (fOverrideIndicatorManager != null) -// uninstallOverrideIndicator(); -// } -// return; -// } - + + ((PHPSourceViewerConfiguration) getSourceViewerConfiguration()).handlePropertyChangeEvent(event); + + // if (affectsOverrideIndicatorAnnotations(event)) { + // if (isShowingOverrideIndicators()) { + // if (fOverrideIndicatorManager == null) + // installOverrideIndicator(true); + // } else { + // if (fOverrideIndicatorManager != null) + // uninstallOverrideIndicator(); + // } + // return; + // } + if (PreferenceConstants.EDITOR_FOLDING_PROVIDER.equals(property)) { if (sourceViewer instanceof ProjectionViewer) { ProjectionViewer projectionViewer = (ProjectionViewer) sourceViewer; @@ -2962,39 +3068,40 @@ public abstract class PHPEditor extends AbstractDecoratedTextEditor implements I // ruler.addDecorator(1, createLineNumberRulerColumn()); // return ruler; // } -// private static IRegion getSignedSelection(ITextViewer viewer) { -// -// StyledText text = viewer.getTextWidget(); -// int caretOffset = text.getCaretOffset(); -// Point selection = text.getSelection(); -// -// // caret left -// int offset, length; -// if (caretOffset == selection.x) { -// offset = selection.y; -// length = selection.x - selection.y; -// -// // caret right -// } else { -// offset = selection.x; -// length = selection.y - selection.x; -// } -// -// return new Region(offset, length); -// } - protected IRegion getSignedSelection(ISourceViewer sourceViewer) { - StyledText text= sourceViewer.getTextWidget(); - Point selection= text.getSelectionRange(); - - if (text.getCaretOffset() == selection.x) { - selection.x= selection.x + selection.y; - selection.y= -selection.y; - } - - selection.x= widgetOffset2ModelOffset(sourceViewer, selection.x); - - return new Region(selection.x, selection.y); - } + // private static IRegion getSignedSelection(ITextViewer viewer) { + // + // StyledText text = viewer.getTextWidget(); + // int caretOffset = text.getCaretOffset(); + // Point selection = text.getSelection(); + // + // // caret left + // int offset, length; + // if (caretOffset == selection.x) { + // offset = selection.y; + // length = selection.x - selection.y; + // + // // caret right + // } else { + // offset = selection.x; + // length = selection.y - selection.x; + // } + // + // return new Region(offset, length); + // } + protected IRegion getSignedSelection(ISourceViewer sourceViewer) { + StyledText text = sourceViewer.getTextWidget(); + Point selection = text.getSelectionRange(); + + if (text.getCaretOffset() == selection.x) { + selection.x = selection.x + selection.y; + selection.y = -selection.y; + } + + selection.x = widgetOffset2ModelOffset(sourceViewer, selection.x); + + return new Region(selection.x, selection.y); + } + /** Preference key for matching brackets */ protected final static String MATCHING_BRACKETS = PreferenceConstants.EDITOR_MATCHING_BRACKETS; @@ -3002,20 +3109,15 @@ public abstract class PHPEditor extends AbstractDecoratedTextEditor implements I protected final static String MATCHING_BRACKETS_COLOR = PreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR; /** Preference key for highlighting current line */ -// protected final static String CURRENT_LINE = PreferenceConstants.EDITOR_CURRENT_LINE; - + // protected final static String CURRENT_LINE = PreferenceConstants.EDITOR_CURRENT_LINE; /** Preference key for highlight color of current line */ -// protected final static String CURRENT_LINE_COLOR = PreferenceConstants.EDITOR_CURRENT_LINE_COLOR; - + // protected final static String CURRENT_LINE_COLOR = PreferenceConstants.EDITOR_CURRENT_LINE_COLOR; /** Preference key for showing print marging ruler */ -// protected final static String PRINT_MARGIN = PreferenceConstants.EDITOR_PRINT_MARGIN; - + // protected final static String PRINT_MARGIN = PreferenceConstants.EDITOR_PRINT_MARGIN; /** Preference key for print margin ruler color */ -// protected final static String PRINT_MARGIN_COLOR = PreferenceConstants.EDITOR_PRINT_MARGIN_COLOR; - + // protected final static String PRINT_MARGIN_COLOR = PreferenceConstants.EDITOR_PRINT_MARGIN_COLOR; /** Preference key for print margin ruler column */ -// protected final static String PRINT_MARGIN_COLUMN = PreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN; - + // protected final static String PRINT_MARGIN_COLUMN = PreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN; /** Preference key for error indication */ // protected final static String ERROR_INDICATION = // PreferenceConstants.EDITOR_PROBLEM_INDICATION; @@ -3170,6 +3272,23 @@ public abstract class PHPEditor extends AbstractDecoratedTextEditor implements I */ abstract protected IJavaElement getInputJavaElement(); + protected void updateStatusLine() { + ITextSelection selection = (ITextSelection) getSelectionProvider().getSelection(); + Annotation annotation = getAnnotation(selection.getOffset(), selection.getLength()); + setStatusLineErrorMessage(null); + setStatusLineMessage(null); + if (annotation != null) { + try { + fIsUpdatingAnnotationViews = true; + updateAnnotationViews(annotation); + } finally { + fIsUpdatingAnnotationViews = false; + } + if (annotation instanceof IJavaAnnotation && ((IJavaAnnotation) annotation).isProblem()) + setStatusLineMessage(annotation.getText()); + } + } + /** * Jumps to the matching bracket. */ @@ -3245,6 +3364,146 @@ public abstract class PHPEditor extends AbstractDecoratedTextEditor implements I } /** + * Sets the given message as message to this editor's status line. + * + * @param msg + * message to be set + * @since 3.0 + */ + protected void setStatusLineMessage(String msg) { + IEditorStatusLine statusLine = (IEditorStatusLine) getAdapter(IEditorStatusLine.class); + if (statusLine != null) + statusLine.setMessage(false, msg, null); + } + + /** + * Returns the annotation closest to the given range respecting the given direction. If an annotation is found, the annotations + * current position is copied into the provided annotation position. + * + * @param offset + * the region offset + * @param length + * the region length + * @param forward + * true for forwards, false for backward + * @param annotationPosition + * the position of the found annotation + * @return the found annotation + */ + private Annotation getNextAnnotation(final int offset, final int length, boolean forward, Position annotationPosition) { + + Annotation nextAnnotation = null; + Position nextAnnotationPosition = null; + Annotation containingAnnotation = null; + Position containingAnnotationPosition = null; + boolean currentAnnotation = false; + + IDocument document = getDocumentProvider().getDocument(getEditorInput()); + int endOfDocument = document.getLength(); + int distance = Integer.MAX_VALUE; + + IAnnotationModel model = getDocumentProvider().getAnnotationModel(getEditorInput()); + Iterator e = new JavaAnnotationIterator(model, true, true); + while (e.hasNext()) { + Annotation a = (Annotation) e.next(); + if ((a instanceof IJavaAnnotation) && ((IJavaAnnotation) a).hasOverlay() || !isNavigationTarget(a)) + continue; + + Position p = model.getPosition(a); + if (p == null) + continue; + + if (forward && p.offset == offset || !forward && p.offset + p.getLength() == offset + length) {// || p.includes(offset)) { + if (containingAnnotation == null + || (forward && p.length >= containingAnnotationPosition.length || !forward + && p.length >= containingAnnotationPosition.length)) { + containingAnnotation = a; + containingAnnotationPosition = p; + currentAnnotation = p.length == length; + } + } else { + int currentDistance = 0; + + if (forward) { + currentDistance = p.getOffset() - offset; + if (currentDistance < 0) + currentDistance = endOfDocument + currentDistance; + + if (currentDistance < distance || currentDistance == distance && p.length < nextAnnotationPosition.length) { + distance = currentDistance; + nextAnnotation = a; + nextAnnotationPosition = p; + } + } else { + currentDistance = offset + length - (p.getOffset() + p.length); + if (currentDistance < 0) + currentDistance = endOfDocument + currentDistance; + + if (currentDistance < distance || currentDistance == distance && p.length < nextAnnotationPosition.length) { + distance = currentDistance; + nextAnnotation = a; + nextAnnotationPosition = p; + } + } + } + } + if (containingAnnotationPosition != null && (!currentAnnotation || nextAnnotation == null)) { + annotationPosition.setOffset(containingAnnotationPosition.getOffset()); + annotationPosition.setLength(containingAnnotationPosition.getLength()); + return containingAnnotation; + } + if (nextAnnotationPosition != null) { + annotationPosition.setOffset(nextAnnotationPosition.getOffset()); + annotationPosition.setLength(nextAnnotationPosition.getLength()); + } + + return nextAnnotation; + } + + /** + * Returns the annotation overlapping with the given range or null. + * + * @param offset + * the region offset + * @param length + * the region length + * @return the found annotation or null + * @since 3.0 + */ + private Annotation getAnnotation(int offset, int length) { + IAnnotationModel model = getDocumentProvider().getAnnotationModel(getEditorInput()); + Iterator e = new JavaAnnotationIterator(model, true, true); + while (e.hasNext()) { + Annotation a = (Annotation) e.next(); + if (!isNavigationTarget(a)) + continue; + + Position p = model.getPosition(a); + if (p != null && p.overlapsWith(offset, length)) + return a; + } + + return null; + } + + /** + * Returns whether the given annotation is configured as a target for the "Go to Next/Previous Annotation" actions + * + * @param annotation + * the annotation + * @return true if this is a target, false otherwise + * @since 3.0 + */ + private boolean isNavigationTarget(Annotation annotation) { + Preferences preferences = EditorsUI.getPluginPreferences(); + AnnotationPreference preference = getAnnotationPreferenceLookup().getAnnotationPreference(annotation); + // See bug 41689 + // String key= forward ? preference.getIsGoToNextNavigationTargetKey() : preference.getIsGoToPreviousNavigationTargetKey(); + String key = preference == null ? null : preference.getIsGoToNextNavigationTargetKey(); + return (key != null && preferences.getBoolean(key)); + } + + /** * Returns a segmentation of the line of the given document appropriate for bidi rendering. The default implementation returns * only the string literals of a php code line as segments. * @@ -3409,17 +3668,20 @@ public abstract class PHPEditor extends AbstractDecoratedTextEditor implements I return viewer; } + /* - * @see AbstractTextEditor#affectsTextPresentation(PropertyChangeEvent) - */ - protected boolean affectsTextPresentation(PropertyChangeEvent event) { - return ((PHPSourceViewerConfiguration)getSourceViewerConfiguration()).affectsTextPresentation(event) || super.affectsTextPresentation(event); - } -// -// protected boolean affectsTextPresentation(PropertyChangeEvent event) { -// JavaTextTools textTools = PHPeclipsePlugin.getDefault().getJavaTextTools(); -// return textTools.affectsBehavior(event); -// } + * @see AbstractTextEditor#affectsTextPresentation(PropertyChangeEvent) + */ + protected boolean affectsTextPresentation(PropertyChangeEvent event) { + return ((PHPSourceViewerConfiguration) getSourceViewerConfiguration()).affectsTextPresentation(event) + || super.affectsTextPresentation(event); + } + + // + // protected boolean affectsTextPresentation(PropertyChangeEvent event) { + // JavaTextTools textTools = PHPeclipsePlugin.getDefault().getJavaTextTools(); + // return textTools.affectsBehavior(event); + // } /** * Creates and returns the preference store for this Java editor with the given input. * @@ -3571,29 +3833,43 @@ public abstract class PHPEditor extends AbstractDecoratedTextEditor implements I } } - // protected void uninstallOverrideIndicator() { - // if (fOverrideIndicatorManager != null) { - // fOverrideIndicatorManager.removeAnnotations(); - // fOverrideIndicatorManager= null; - // } - //} + protected void uninstallOverrideIndicator() { +// if (fOverrideIndicatorManager != null) { +// fOverrideIndicatorManager.removeAnnotations(); +// fOverrideIndicatorManager= null; +// } + } protected void installOverrideIndicator(boolean waitForReconcilation) { - // uninstallOverrideIndicator(); - IAnnotationModel model = getDocumentProvider().getAnnotationModel(getEditorInput()); - // IJavaElement inputElement= getInputJavaElement(); + uninstallOverrideIndicator(); + IAnnotationModel model= getDocumentProvider().getAnnotationModel(getEditorInput()); + final IJavaElement inputElement= getInputJavaElement(); - // if (model == null || inputElement == null) - // return; + if (model == null || inputElement == null) + return; - // CompilationUnit ast= - // PHPeclipsePlugin.getDefault().getASTProvider().getAST(inputElement, - // true, null); - // fOverrideIndicatorManager= new OverrideIndicatorManager(model, - // inputElement, ast); +// fOverrideIndicatorManager= new OverrideIndicatorManager(model, inputElement, null); +// +// if (provideAST) { +// Job job= new Job(JavaEditorMessages.getString("OverrideIndicatorManager.intallJob")) { //$NON-NLS-1$ +// /* +// * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor) +// * @since 3.0 +// */ +// protected IStatus run(IProgressMonitor monitor) { +// CompilationUnit ast= JavaPlugin.getDefault().getASTProvider().getAST(inputElement, true, null); +// if (fOverrideIndicatorManager != null) // editor might have been closed in the meanwhile +// fOverrideIndicatorManager.reconciled(ast, true, monitor); +// return Status.OK_STATUS; +// } +// }; +// job.setPriority(Job.DECORATE); +// job.setSystem(true); +// job.schedule(); +// } } - /** + /** * Tells whether override indicators are shown. * * @return true if the override indicators are shown @@ -3643,7 +3919,7 @@ public abstract class PHPEditor extends AbstractDecoratedTextEditor implements I if (getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE)) synchronizeOutlinePage(element); setSelection(element, false); - // updateStatusLine(); + updateStatusLine(); } private boolean isJavaOutlinePageActive() {