Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Schaefer2003-06-27 14:31:34 +0000
committerDoug Schaefer2003-06-27 14:31:34 +0000
commitafbe575516c3357a5b65381543c32ead781c701d (patch)
tree5996da6d398493677810dcf39b09150d7ba03ae3 /core/org.eclipse.cdt.core/model
parent728848ffc6303eb1f7a572e1987edbc15ea47dfc (diff)
downloadorg.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')
-rw-r--r--core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/CoreModel.java11
-rw-r--r--core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java5
-rw-r--r--core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java35
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
+
+ }
+ */
+ }
+
+
}
-}
+

Back to the top