Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] indexer changes

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/ChangeLog,v
retrieving revision 1.24
diff -u -r1.24 ChangeLog
--- ChangeLog	12 Nov 2002 13:51:55 -0000	1.24
+++ ChangeLog	12 Nov 2002 18:49:23 -0000
@@ -1,3 +1,12 @@
+2002-11-12 Alain Magloire
+
+	* index/.../index/IndexModel.java (isEnabled):
+	New method check if indexing is enable for a project.
+	(setEnabled) : enable/disable indexing for a project.
+	* index/.../internal/core/index/IndexManager.java (addContainer):
+	Check if resource is enable for indexing.
+	(addFile): Check if resource is enable for indexing.
+
 2002-11-12 David Inglis
 
 	* model/.../internal/core/model/CModelManager.java,v
Index: index/org/eclipse/cdt/core/index/IndexModel.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/index/org/eclipse/cdt/core/index/IndexModel.java,v
retrieving revision 1.1
diff -u -r1.1 IndexModel.java
--- index/org/eclipse/cdt/core/index/IndexModel.java	26 Jun 2002 20:33:48 -0000	1.1
+++ index/org/eclipse/cdt/core/index/IndexModel.java	12 Nov 2002 18:49:23 -0000
@@ -5,15 +5,42 @@
  * All Rights Reserved.
  */
  
+import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.internal.core.index.IndexManager;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
-
-import org.eclipse.cdt.internal.core.index.IndexManager;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.QualifiedName;
 
 public class IndexModel {
 
 	static IndexModel indexModel = null;
 	static IndexManager manager = null;
+	final static String INDEX_MODEL_ID = CCorePlugin.PLUGIN_ID + ".indexmodel";
+	final static String ACTIVATION = "enable";
+
+	static QualifiedName activationKey = new QualifiedName(INDEX_MODEL_ID, ACTIVATION);
+
+	public boolean isEnabled(IProject project) {
+		String prop = null;
+		try {
+			if (project != null) {
+				prop = project.getPersistentProperty(activationKey);
+			}
+		} catch (CoreException e) {
+		}
+		return ((prop != null) && prop.equalsIgnoreCase("true"));
+	}
+
+	public void setEnabled(IProject project, boolean on) {
+		String prop = new Boolean(on).toString();
+		try {
+			if (project != null) {
+				project.setPersistentProperty(activationKey, prop);
+			}
+		} catch (CoreException e) {
+		}
+	}
 
 	/**
 	 * Search Project for tag symbol.
Index: index/org/eclipse/cdt/internal/core/index/IndexManager.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/IndexManager.java,v
retrieving revision 1.3
diff -u -r1.3 IndexManager.java
--- index/org/eclipse/cdt/internal/core/index/IndexManager.java	28 Oct 2002 14:43:27 -0000	1.3
+++ index/org/eclipse/cdt/internal/core/index/IndexManager.java	12 Nov 2002 18:49:23 -0000
@@ -12,24 +12,24 @@
 import java.util.List;
 import java.util.Map;
 
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.CoreException;
-
 import org.eclipse.cdt.core.index.ITagEntry;
+import org.eclipse.cdt.core.index.IndexModel;
 import org.eclipse.cdt.core.model.CModelException;
 import org.eclipse.cdt.core.model.CoreModel;
 import org.eclipse.cdt.core.model.ElementChangedEvent;
 import org.eclipse.cdt.core.model.ICElement;
-import org.eclipse.cdt.core.model.ICResource;
-import org.eclipse.cdt.core.model.ITranslationUnit;
 import org.eclipse.cdt.core.model.ICElementDelta;
+import org.eclipse.cdt.core.model.ICResource;
 import org.eclipse.cdt.core.model.IElementChangedListener;
+import org.eclipse.cdt.core.model.ITranslationUnit;
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
 
 public class IndexManager implements IElementChangedListener {
 
@@ -155,7 +155,7 @@
 	}
 
 	public void addResource(IResource resource) {
-		switch(resource.getType()) {
+		switch (resource.getType()) {
 			case IResource.ROOT:
 			case IResource.PROJECT:
 			case IResource.FOLDER:
@@ -173,7 +173,8 @@
 	 * Note: the actual operation is performed in background
 	 */
 	public void addFile(IFile file) {
-		if (CoreModel.getDefault().isTranslationUnit(file)) {
+		if (CoreModel.getDefault().isTranslationUnit(file) &&
+			IndexModel.getDefault().isEnabled(file.getProject())) {
 			requestList.addItem(file);
 		}
 	}
@@ -193,7 +194,8 @@
 						break;
 
 						case IResource.PROJECT:
-							if (CoreModel.getDefault().hasCNature((IProject)res)) {
+							if (CoreModel.getDefault().hasCNature((IProject)res) &&
+								IndexModel.getDefault().isEnabled((IProject)res)) {
 								addContainer((IContainer)res);
 							}
 						break;
@@ -258,13 +260,13 @@
 			}
 		}
 
-		if (kind == ICElementDelta.ADDED) {
-			try {
-				IResource resource = ((ICResource)element).getResource();
-				addResource(resource);
-			} catch (CModelException e) {
-			}
-		}
+//		if (kind == ICElementDelta.ADDED) {
+//			try {
+//				IResource resource = ((ICResource)element).getResource();
+//				addResource(resource);
+//			} catch (CModelException e) {
+//			}
+//		}
 
 		if (element instanceof ITranslationUnit) {
 			if (kind == ICElementDelta.CHANGED) {



Back to the top