diff options
author | Doug Schaefer | 2003-06-27 14:31:34 +0000 |
---|---|---|
committer | Doug Schaefer | 2003-06-27 14:31:34 +0000 |
commit | afbe575516c3357a5b65381543c32ead781c701d (patch) | |
tree | 5996da6d398493677810dcf39b09150d7ba03ae3 /core/org.eclipse.cdt.core/model | |
parent | 728848ffc6303eb1f7a572e1987edbc15ea47dfc (diff) | |
download | org.eclipse.cdt-afbe575516c3357a5b65381543c32ead781c701d.tar.gz org.eclipse.cdt-afbe575516c3357a5b65381543c32ead781c701d.tar.xz org.eclipse.cdt-afbe575516c3357a5b65381543c32ead781c701d.zip |
Patch for Bogdan Gheorghe:
- The initial framework for the new indexer.
- Added a checkbox to the Indexer tab on the
C/C++ Projects settings dialog to turn on the
indexing on a per project basis.
Diffstat (limited to 'core/org.eclipse.cdt.core/model')
3 files changed, 50 insertions, 1 deletions
diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/CoreModel.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/CoreModel.java index bc633e2d40b..eeb2d46844f 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/CoreModel.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/CoreModel.java @@ -8,6 +8,7 @@ package org.eclipse.cdt.core.model; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.internal.core.model.BatchOperation; import org.eclipse.cdt.internal.core.model.CModelManager; +import org.eclipse.cdt.internal.core.search.indexing.IndexManager; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; @@ -215,4 +216,14 @@ public class CoreModel { workspace.run(new BatchOperation(action), monitor); } } + + public void startIndexing() + { + manager.getIndexManager().reset(); + } + + public IndexManager getIndexManager(){ + return manager.getIndexManager(); + } + } diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java index c6e068246ee..e5287a378a7 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java @@ -41,6 +41,7 @@ import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.cdt.internal.core.search.indexing.IndexManager; public class CModelManager implements IResourceChangeListener { @@ -755,4 +756,8 @@ public class CModelManager implements IResourceChangeListener { } } + public IndexManager getIndexManager() { + return this.fDeltaProcessor.indexManager; + } + } 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 f62712e70a2..24fadb21ce8 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 @@ -19,6 +19,8 @@ import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceDelta; import org.eclipse.core.runtime.IPath; +import org.eclipse.cdt.internal.core.search.indexing.IndexManager; + /** * This class is used by <code>CModelManager</code> to convert * <code>IResourceDelta</code>s into <code>ICElementDelta</code>s. @@ -31,6 +33,8 @@ public class DeltaProcessor { * The <code>CElementDelta</code> corresponding to the <code>IResourceDelta</code> being translated. */ protected CElementDelta fCurrentDelta; + + protected IndexManager indexManager = new IndexManager(); /* The C element that was last created (see createElement(IResource). * This is used as a stack of C elements (using getParent() to pop it, and @@ -333,6 +337,7 @@ public class DeltaProcessor { // get the workspace delta, and start processing there. IResourceDelta[] deltas = changes.getAffectedChildren(); ICElementDelta[] translatedDeltas = new CElementDelta[deltas.length]; + System.out.println("delta.length: " + deltas.length); for (int i = 0; i < deltas.length; i++) { IResourceDelta delta = deltas[i]; fCurrentDelta = new CElementDelta(root); @@ -446,9 +451,37 @@ public class DeltaProcessor { protected void updateIndexAddResource(ICElement element, IResourceDelta delta) { //CModelManager.getDefault().getIndexManager().addResource(delta.getResource()); + + if (indexManager == null) + return; + + switch (element.getElementType()) { + case ICElement.C_PROJECT : + this.indexManager.indexAll(element.getCProject().getProject()); + break; + } + } protected void updateIndexRemoveResource(ICElement element, IResourceDelta delta) { //CModelManager.getDefault().getIndexManager().removeResource(delta.getResource()); + + /* + if (indexManager == null) + return; + + switch (element.getElementType()) { + case ICElement.C_PROJECT : + this.indexManager.removeIndexFamily(element.getCProject().getProject().getFullPath()); + // NB: Discarding index jobs belonging to this project was done during PRE_DELETE + break; + // NB: Update of index if project is opened, closed, or its java nature is added or removed + // is done in updateCurrentDeltaAndIndex + + } + */ + } + + } -} + |