From 0d77c8e7e29cd96026ccc107c0b0b51d636c73ca Mon Sep 17 00:00:00 2001 From: Bogdan Gheorghe Date: Thu, 30 Jun 2005 16:07:38 +0000 Subject: [PATCH] Fix for 97281: [CTags Indexer] requires the project to be closed/opened to work --- .../index/domsourceindexer/DOMSourceIndexer.java | 16 +++++++++++++++- .../cdt/internal/core/model/DeltaProcessor.java | 14 +------------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexer.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexer.java index a7a9defa174..63bd7b8a060 100644 --- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexer.java +++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexer.java @@ -25,6 +25,7 @@ import org.eclipse.cdt.core.index.ICDTIndexer; import org.eclipse.cdt.core.index.IIndexChangeListener; import org.eclipse.cdt.core.index.IIndexStorage; import org.eclipse.cdt.core.index.IndexChangeEvent; +import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.parser.util.ObjectSet; import org.eclipse.cdt.internal.core.Util; import org.eclipse.cdt.internal.core.index.IIndex; @@ -428,8 +429,21 @@ public class DOMSourceIndexer extends AbstractCExtension implements ICDTIndexer break; case ICDTIndexer.COMPILATION_UNIT: + //if the element has changed check to see if file is header, if it is don't schedule for index - update dependencies will + //take care of it. + //otherwise just schedule element for index + boolean shouldAddFile=false; IFile file = (IFile) delta.getResource(); - this.addSource(file, project.getFullPath()); + + if (delta.getKind()==IResourceDelta.CHANGED){ + if (CoreModel.isValidSourceUnitName(project, file.getName())) + shouldAddFile=true; + } else { + shouldAddFile = true; + } + if (shouldAddFile){ + this.addSource(file, project.getFullPath()); + } break; } diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java index 5622b3aff73..1f9f5bddabc 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java @@ -618,19 +618,7 @@ public class DeltaProcessor { break; case ICElement.C_UNIT: - //if the element has changed check to see if file is header, if it is don't schedule for index - update dependencies will - //take care of it. - //otherwise just schedule element for index - boolean shouldAddFile=false; - IProject project = element.getCProject().getProject(); - if (elementHasChanged){ - if (CoreModel.isValidSourceUnitName(project, element.getElementName())) - shouldAddFile=true; - } else { - shouldAddFile = true; - } - if (shouldAddFile) - indexManager.addResourceEvent(project,delta, ICDTIndexer.COMPILATION_UNIT); + indexManager.addResourceEvent(element.getCProject().getProject(),delta, ICDTIndexer.COMPILATION_UNIT); break; }