1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-04 07:35:24 +02:00

Bug 365605 - Editor should reconcile also on save

This commit is contained in:
Anton Leherbauer 2011-12-06 15:04:31 +01:00
parent 5a5124dd04
commit 495dd7cfa9

View file

@ -209,10 +209,7 @@ public class CReconciler extends MonoReconciler {
if ((flags & ICElementDelta.F_CONTENT) != 0) { if ((flags & ICElementDelta.F_CONTENT) != 0) {
if (!fIsReconciling && isRelevantElement(delta.getElement())) { if (!fIsReconciling && isRelevantElement(delta.getElement())) {
// mark model changed, but don't update immediately // mark model changed, but don't update immediately
fIndexerListener.ignoreChanges(false);
setCModelChanged(true); setCModelChanged(true);
} else if (delta.getElement() instanceof ITranslationUnit) {
fIndexerListener.ignoreChanges(true);
} }
} }
if ((flags & ( if ((flags & (
@ -237,7 +234,6 @@ public class CReconciler extends MonoReconciler {
private class IndexerListener implements IIndexerStateListener, IIndexChangeListener { private class IndexerListener implements IIndexerStateListener, IIndexChangeListener {
private boolean fIndexChanged; private boolean fIndexChanged;
private boolean fIgnoreChanges;
/* /*
* @see org.eclipse.cdt.core.index.IIndexerStateListener#indexChanged(org.eclipse.cdt.core.index.IIndexerStateEvent) * @see org.eclipse.cdt.core.index.IIndexerStateListener#indexChanged(org.eclipse.cdt.core.index.IIndexerStateEvent)
@ -252,25 +248,17 @@ public class CReconciler extends MonoReconciler {
setCModelChanged(true); setCModelChanged(true);
} }
} }
fIgnoreChanges= false;
} }
} }
public void ignoreChanges(boolean ignore) {
fIgnoreChanges= ignore;
}
/* /*
* @see org.eclipse.cdt.core.index.IIndexChangeListener#indexChanged(org.eclipse.cdt.core.index.IIndexChangeEvent) * @see org.eclipse.cdt.core.index.IIndexChangeListener#indexChanged(org.eclipse.cdt.core.index.IIndexChangeEvent)
*/ */
public void indexChanged(IIndexChangeEvent event) { public void indexChanged(IIndexChangeEvent event) {
if (!fIndexChanged && isRelevantProject(event.getAffectedProject())) { if (!fIndexChanged && isRelevantProject(event.getAffectedProject())) {
if (!fIgnoreChanges || event.isCleared() || event.isReloaded() || event.hasNewFile()) { fIndexChanged= true;
fIndexChanged= true;
}
} }
} }
} }
/** The reconciler's editor */ /** The reconciler's editor */