[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] patch to speed up CSelectionTestsCTagsIndexer/CPPSelectionTestsCTagsIndexer
|
This patch gets rid of the work around
added to CoreModel with the last patch. It was required in order
to get C(PP)SelectionTests*Indexer working but the better way to do this
is to create a scanner config for the projects for those tests.
This patch also improves the speeds
of CSelectionTestsCTagsIndexer and CPPSelectionTestsCTagsIndexer by adding
CTagsIndexer#notifyListeners(IndexDelta) to Index.java.
Devin Steffler
IBM's Eclipse CDT
Ottawa (Palladium), Ontario, Canada
Index: index/org/eclipse/cdt/internal/core/index/cindexstorage/Index.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/cindexstorage/Index.java,v
retrieving revision 1.6
diff -u -r1.6 Index.java
--- index/org/eclipse/cdt/internal/core/index/cindexstorage/Index.java 16 May 2005 14:44:01 -0000 1.6
+++ index/org/eclipse/cdt/internal/core/index/cindexstorage/Index.java 31 May 2005 18:06:37 -0000
@@ -32,6 +32,7 @@
import org.eclipse.cdt.internal.core.index.cindexstorage.io.IndexOutput;
import org.eclipse.cdt.internal.core.index.cindexstorage.io.MergeFactory;
import org.eclipse.cdt.internal.core.index.cindexstorage.io.SimpleIndexInput;
+import org.eclipse.cdt.internal.core.index.ctagsindexer.CTagsIndexer;
import org.eclipse.cdt.internal.core.index.impl.IndexDelta;
import org.eclipse.cdt.internal.core.index.impl.Int;
import org.eclipse.cdt.internal.core.index.sourceindexer.SourceIndexer;
@@ -315,6 +316,9 @@
if (indexer instanceof SourceIndexer){
IndexDelta indexDelta = new IndexDelta(null,null,IIndexDelta.MERGE_DELTA);
((SourceIndexer) indexer).notifyListeners(indexDelta);
+ } else if (indexer instanceof CTagsIndexer) {
+ IndexDelta indexDelta = new IndexDelta(null,null,IIndexDelta.MERGE_DELTA);
+ ((CTagsIndexer) indexer).notifyListeners(indexDelta);
}
}
}
Index: model/org/eclipse/cdt/core/model/CoreModel.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/CoreModel.java,v
retrieving revision 1.59
diff -u -r1.59 CoreModel.java
--- model/org/eclipse/cdt/core/model/CoreModel.java 31 May 2005 15:44:40 -0000 1.59
+++ model/org/eclipse/cdt/core/model/CoreModel.java 31 May 2005 18:06:37 -0000
@@ -1098,7 +1098,7 @@
public static boolean isScannerInformationEmpty(IResource resource) {
final int PATH_ENTRY_MASK = IPathEntry.CDT_INCLUDE | IPathEntry.CDT_MACRO |
- IPathEntry.CDT_INCLUDE_FILE | IPathEntry.CDT_MACRO_FILE | IPathEntry.CDT_SOURCE;
+ IPathEntry.CDT_INCLUDE_FILE | IPathEntry.CDT_MACRO_FILE;
boolean rc = true;
IPath resPath = resource.getFullPath();
IProject project = resource.getProject();
Index: plugin.xml
===================================================================
RCS file: /home/tools/org.eclipse.cdt-core/org.eclipse.cdt.ui.tests/plugin.xml,v
retrieving revision 1.34
diff -u -r1.34 plugin.xml
--- plugin.xml 29 Mar 2005 21:40:34 -0000 1.34
+++ plugin.xml 31 May 2005 18:06:48 -0000
@@ -30,6 +30,7 @@
<import plugin="org.eclipse.compare"/>
<import plugin="org.eclipse.ui.console"/>
<import plugin="org.eclipse.core.expressions"/>
+ <import plugin="org.eclipse.cdt.make.core"/>
</requires>
<extension
Index: ui/org/eclipse/cdt/ui/tests/text/selectiontests/CPPSelectionTestsCTagsIndexer.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/selectiontests/CPPSelectionTestsCTagsIndexer.java,v
retrieving revision 1.1
diff -u -r1.1 CPPSelectionTestsCTagsIndexer.java
--- ui/org/eclipse/cdt/ui/tests/text/selectiontests/CPPSelectionTestsCTagsIndexer.java 31 May 2005 15:44:38 -0000 1.1
+++ ui/org/eclipse/cdt/ui/tests/text/selectiontests/CPPSelectionTestsCTagsIndexer.java 31 May 2005 18:06:48 -0000
@@ -16,6 +16,7 @@
import junit.framework.Test;
import junit.framework.TestSuite;
+import org.eclipse.cdt.core.CCProjectNature;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTNode;
@@ -26,8 +27,13 @@
import org.eclipse.cdt.internal.core.index.ctagsindexer.CTagsIndexer;
import org.eclipse.cdt.internal.core.index.sourceindexer.SourceIndexer;
import org.eclipse.cdt.internal.core.search.indexing.IndexManager;
+import org.eclipse.cdt.make.core.MakeProjectNature;
+import org.eclipse.cdt.make.core.scannerconfig.ScannerConfigNature;
+import org.eclipse.cdt.make.internal.core.scannerconfig2.PerProjectSICollector;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.NullProgressMonitor;
@@ -70,8 +76,12 @@
//Enable indexing on test project
project.setSessionProperty(SourceIndexer.activationKey,new Boolean(true));
- if (project==null)
- fail("Unable to create project"); //$NON-NLS-1$
+ if (project==null) fail("Unable to create project"); //$NON-NLS-1$
+ IProjectDescription description = ResourcesPlugin.getWorkspace().newProjectDescription(project.getName());
+ CCProjectNature.addCCNature(project,monitor);
+ MakeProjectNature.addNature(project, new NullProgressMonitor());
+ ScannerConfigNature.addScannerConfigNature(project);
+ PerProjectSICollector.calculateCompilerBuiltins(project);
indexManager = CCorePlugin.getDefault().getCoreModel().getIndexManager();
Index: ui/org/eclipse/cdt/ui/tests/text/selectiontests/CPPSelectionTestsDOMIndexer.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/selectiontests/CPPSelectionTestsDOMIndexer.java,v
retrieving revision 1.1
diff -u -r1.1 CPPSelectionTestsDOMIndexer.java
--- ui/org/eclipse/cdt/ui/tests/text/selectiontests/CPPSelectionTestsDOMIndexer.java 31 May 2005 15:44:38 -0000 1.1
+++ ui/org/eclipse/cdt/ui/tests/text/selectiontests/CPPSelectionTestsDOMIndexer.java 31 May 2005 18:06:48 -0000
@@ -18,6 +18,7 @@
import junit.framework.Test;
import junit.framework.TestSuite;
+import org.eclipse.cdt.core.CCProjectNature;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTNode;
@@ -27,8 +28,13 @@
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
import org.eclipse.cdt.internal.core.index.sourceindexer.SourceIndexer;
import org.eclipse.cdt.internal.core.search.indexing.IndexManager;
+import org.eclipse.cdt.make.core.MakeProjectNature;
+import org.eclipse.cdt.make.core.scannerconfig.ScannerConfigNature;
+import org.eclipse.cdt.make.internal.core.scannerconfig2.PerProjectSICollector;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.NullProgressMonitor;
@@ -69,8 +75,12 @@
//Enable indexing on test project
project.setSessionProperty(SourceIndexer.activationKey,new Boolean(true));
- if (project==null)
- fail("Unable to create project"); //$NON-NLS-1$
+ if (project==null) fail("Unable to create project"); //$NON-NLS-1$
+ IProjectDescription description = ResourcesPlugin.getWorkspace().newProjectDescription(project.getName());
+ CCProjectNature.addCCNature(project,monitor);
+ MakeProjectNature.addNature(project, new NullProgressMonitor());
+ ScannerConfigNature.addScannerConfigNature(project);
+ PerProjectSICollector.calculateCompilerBuiltins(project);
indexManager = CCorePlugin.getDefault().getCoreModel().getIndexManager();
Index: ui/org/eclipse/cdt/ui/tests/text/selectiontests/CSelectionTestsCTagsIndexer.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/selectiontests/CSelectionTestsCTagsIndexer.java,v
retrieving revision 1.1
diff -u -r1.1 CSelectionTestsCTagsIndexer.java
--- ui/org/eclipse/cdt/ui/tests/text/selectiontests/CSelectionTestsCTagsIndexer.java 31 May 2005 15:44:38 -0000 1.1
+++ ui/org/eclipse/cdt/ui/tests/text/selectiontests/CSelectionTestsCTagsIndexer.java 31 May 2005 18:06:49 -0000
@@ -26,8 +26,14 @@
import org.eclipse.cdt.internal.core.index.ctagsindexer.CTagsIndexer;
import org.eclipse.cdt.internal.core.index.sourceindexer.SourceIndexer;
import org.eclipse.cdt.internal.core.search.indexing.IndexManager;
+import org.eclipse.cdt.make.core.MakeProjectNature;
+import org.eclipse.cdt.make.core.scannerconfig.ScannerConfigNature;
+import org.eclipse.cdt.make.internal.core.scannerconfig2.PerProjectSICollector;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.NullProgressMonitor;
@@ -71,10 +77,13 @@
//Enable indexing on test project
project.setSessionProperty(SourceIndexer.activationKey,new Boolean(true));
-
- if (project==null)
- fail("Unable to create project"); //$NON-NLS-1$
-
+
+ if (project==null) fail("Unable to create project"); //$NON-NLS-1$
+ IProjectDescription description = ResourcesPlugin.getWorkspace().newProjectDescription(project.getName());
+ MakeProjectNature.addNature(project, new NullProgressMonitor());
+ ScannerConfigNature.addScannerConfigNature(project);
+ PerProjectSICollector.calculateCompilerBuiltins(project);
+
indexManager = CCorePlugin.getDefault().getCoreModel().getIndexManager();
resetIndexer(sourceIndexerID); // set indexer
Index: ui/org/eclipse/cdt/ui/tests/text/selectiontests/CSelectionTestsDOMIndexer.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/selectiontests/CSelectionTestsDOMIndexer.java,v
retrieving revision 1.1
diff -u -r1.1 CSelectionTestsDOMIndexer.java
--- ui/org/eclipse/cdt/ui/tests/text/selectiontests/CSelectionTestsDOMIndexer.java 31 May 2005 15:44:38 -0000 1.1
+++ ui/org/eclipse/cdt/ui/tests/text/selectiontests/CSelectionTestsDOMIndexer.java 31 May 2005 18:06:49 -0000
@@ -25,8 +25,13 @@
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
import org.eclipse.cdt.internal.core.index.sourceindexer.SourceIndexer;
import org.eclipse.cdt.internal.core.search.indexing.IndexManager;
+import org.eclipse.cdt.make.core.MakeProjectNature;
+import org.eclipse.cdt.make.core.scannerconfig.ScannerConfigNature;
+import org.eclipse.cdt.make.internal.core.scannerconfig2.PerProjectSICollector;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.NullProgressMonitor;
@@ -66,9 +71,12 @@
//Enable indexing on test project
project.setSessionProperty(SourceIndexer.activationKey,new Boolean(true));
-
- if (project==null)
- fail("Unable to create project"); //$NON-NLS-1$
+
+ if (project==null) fail("Unable to create project"); //$NON-NLS-1$
+ IProjectDescription description = ResourcesPlugin.getWorkspace().newProjectDescription(project.getName());
+ MakeProjectNature.addNature(project, new NullProgressMonitor());
+ ScannerConfigNature.addScannerConfigNature(project);
+ PerProjectSICollector.calculateCompilerBuiltins(project);
indexManager = CCorePlugin.getDefault().getCoreModel().getIndexManager();