Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorDoug Schaefer2003-10-27 20:57:47 +0000
committerDoug Schaefer2003-10-27 20:57:47 +0000
commit92669e00620ce783b323bcea4f965a752d0b6f5f (patch)
tree530e6632b855ba1e800f7ce83ac393c012f69856 /core
parent5df215664c08cbf72b95a81bea87a0ecf7317fe3 (diff)
downloadorg.eclipse.cdt-92669e00620ce783b323bcea4f965a752d0b6f5f.tar.gz
org.eclipse.cdt-92669e00620ce783b323bcea4f965a752d0b6f5f.tar.xz
org.eclipse.cdt-92669e00620ce783b323bcea4f965a752d0b6f5f.zip
Patch for Bogda Gheorghe: (44366 & 45324)
- Moved off all dependency calculations to the Indexer thread, created a new UpdateDependency job - Modified CSearchOperation to only lock the workspace when tagging resources with markers.
Diffstat (limited to 'core')
-rw-r--r--core/org.eclipse.cdt.core.tests/indexer/org/eclipse/cdt/core/indexer/tests/DependencyTests.java15
-rw-r--r--core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/model/tests/WorkingCopyTests.java4
-rw-r--r--core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java1
-rw-r--r--core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/OtherPatternTests.java21
-rw-r--r--core/org.eclipse.cdt.core/dependency/ChangeLog115
-rw-r--r--core/org.eclipse.cdt.core/dependency/org/eclipse/cdt/internal/core/sourcedependency/UpdateDependency.java101
-rw-r--r--core/org.eclipse.cdt.core/index/ChangeLog463
-rw-r--r--core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/Util.java32
-rw-r--r--core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexAllProject.java7
-rw-r--r--core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java10
-rw-r--r--core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java40
-rw-r--r--core/org.eclipse.cdt.core/search/ChangeLog497
-rw-r--r--core/org.eclipse.cdt.core/search/org/eclipse/cdt/core/search/SearchEngine.java14
-rw-r--r--core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/AcceptMatchOperation.java48
-rw-r--r--core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java12
-rw-r--r--core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/processing/JobManager.java22
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java9
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchResultCollector.java1
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java2
19 files changed, 819 insertions, 595 deletions
diff --git a/core/org.eclipse.cdt.core.tests/indexer/org/eclipse/cdt/core/indexer/tests/DependencyTests.java b/core/org.eclipse.cdt.core.tests/indexer/org/eclipse/cdt/core/indexer/tests/DependencyTests.java
index a19d3342228..cbeb4e215eb 100644
--- a/core/org.eclipse.cdt.core.tests/indexer/org/eclipse/cdt/core/indexer/tests/DependencyTests.java
+++ b/core/org.eclipse.cdt.core.tests/indexer/org/eclipse/cdt/core/indexer/tests/DependencyTests.java
@@ -15,7 +15,6 @@ import java.util.Arrays;
import java.util.Iterator;
import java.util.Set;
-import junit.extensions.TestDecorator;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
@@ -143,7 +142,7 @@ import org.eclipse.core.runtime.Platform;
String[] depTest2Model = {File.separator + "DepTestProject" + File.separator + "d.h", File.separator + "DepTestProject" + File.separator + "DepTest2.h"};
ArrayList includes = new ArrayList();
- indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTest,indexManager,includes),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null);
+ indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTest,indexManager,includes),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null,null);
String[] depTestModelLocal = convertToLocalPath(depTestModel);
String[] depTestIncludes = new String[includes.size()];
@@ -166,7 +165,7 @@ import org.eclipse.core.runtime.Platform;
}
ArrayList includes2 = new ArrayList();
- indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTest2,indexManager,includes2),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null);
+ indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTest2,indexManager,includes2),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null,null);
String[] depTest2ModelLocal = convertToLocalPath(depTest2Model);
String[] depTest2Includes = new String[includes2.size()];
@@ -345,7 +344,7 @@ import org.eclipse.core.runtime.Platform;
String[] preDepTestModel = {File.separator + "DepTestProject" + File.separator + "DepTest.h", File.separator + "DepTestProject" + File.separator + "Inc1.h", File.separator + "DepTestProject" + File.separator + "a.h", File.separator + "DepTestProject" + File.separator + "c.h", File.separator + "DepTestProject" + File.separator + "d.h"};
ArrayList includes = new ArrayList();
- indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTestC,indexManager,includes),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null);
+ indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTestC,indexManager,includes),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null, null);
String[] preDepTestModelLocal = convertToLocalPath(preDepTestModel);
String[] preDepTestIncludes = new String[includes.size()];
@@ -374,7 +373,7 @@ import org.eclipse.core.runtime.Platform;
testProject.refreshLocal(IResource.DEPTH_INFINITE,null);
- indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTestC,indexManager,includes2),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null);
+ indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTestC,indexManager,includes2),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null, null);
String[] postDepTestModelLocal = convertToLocalPath(postDepTestModel);
@@ -412,7 +411,7 @@ import org.eclipse.core.runtime.Platform;
String[] preDepTestModel = {File.separator + "DepTestProject" + File.separator + "DepTest3.h", File.separator + "DepTestProject" + File.separator + "a.h", File.separator + "DepTestProject" + File.separator + "c.h"};
ArrayList includes = new ArrayList();
- indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTest3C,indexManager,includes),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null);
+ indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTest3C,indexManager,includes),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null, null);
String[] preDepTestModelLocal = convertToLocalPath(preDepTestModel);
String[] preDepTestIncludes = new String[includes.size()];
@@ -441,7 +440,7 @@ import org.eclipse.core.runtime.Platform;
testProject.refreshLocal(IResource.DEPTH_INFINITE,null);
- indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTest3C,indexManager,includes2),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null);
+ indexManager.performConcurrentJob(new DependencyQueryJob(testProject,depTest3C,indexManager,includes2),ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,null, null);
String[] postDepTestModelLocal = convertToLocalPath(postDepTestModel);
@@ -583,7 +582,7 @@ import org.eclipse.core.runtime.Platform;
indexManager
),
ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
- null );
+ null, null );
}
private void editCode(IFile tempFile, String beforeString, String afterString) throws IOException, CoreException, InterruptedException{
diff --git a/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/model/tests/WorkingCopyTests.java b/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/model/tests/WorkingCopyTests.java
index 4a48ff56f90..e933ca114fb 100644
--- a/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/model/tests/WorkingCopyTests.java
+++ b/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/model/tests/WorkingCopyTests.java
@@ -123,6 +123,8 @@ public class WorkingCopyTests extends TestCase {
// DestroyWorkingCopy
wc.destroy();
- assertFalse(wc.exists());
+ assertFalse(wc.exists());
+
+ Thread.sleep(1000);
}
} \ No newline at end of file
diff --git a/core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java b/core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java
index 7c45f21239f..645d7bde85b 100644
--- a/core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java
+++ b/core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java
@@ -24,7 +24,6 @@ import org.eclipse.cdt.core.search.ICSearchPattern;
import org.eclipse.cdt.core.search.ICSearchResultCollector;
import org.eclipse.cdt.core.search.ICSearchScope;
import org.eclipse.cdt.core.search.SearchEngine;
-import org.eclipse.cdt.internal.core.search.indexing.IndexManager;
import org.eclipse.cdt.internal.ui.search.CSearchResultCollector;
import org.eclipse.cdt.testplugin.FileManager;
import org.eclipse.core.internal.resources.ResourceException;
diff --git a/core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/OtherPatternTests.java b/core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/OtherPatternTests.java
index aa4e373c70c..876a9529693 100644
--- a/core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/OtherPatternTests.java
+++ b/core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/OtherPatternTests.java
@@ -13,19 +13,23 @@
*/
package org.eclipse.cdt.core.search.tests;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
+import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.search.BasicSearchMatch;
import org.eclipse.cdt.core.search.ICSearchPattern;
import org.eclipse.cdt.core.search.IMatch;
import org.eclipse.cdt.core.search.SearchEngine;
import org.eclipse.cdt.internal.core.CharOperation;
+import org.eclipse.cdt.internal.core.search.AcceptMatchOperation;
import org.eclipse.cdt.internal.core.search.matching.FieldDeclarationPattern;
import org.eclipse.cdt.internal.core.search.matching.MatchLocator;
import org.eclipse.cdt.internal.core.search.matching.NamespaceDeclarationPattern;
import org.eclipse.cdt.internal.core.search.matching.OrPattern;
+import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Path;
/**
@@ -322,9 +326,20 @@ public class OtherPatternTests extends BaseSearchTest {
resultCollector.setProgressMonitor( monitor );
resultCollector.aboutToStart();
- MatchLocator matchLocator = new MatchLocator( pattern, resultCollector, scope, monitor );
- matchLocator.locateMatches( new String [] { path }, workspace, null );
- resultCollector.done();
+
+ ArrayList matchesList = new ArrayList();
+ MatchLocator matchLocator = new MatchLocator( pattern, resultCollector, scope, monitor );
+ matchLocator.locateMatches( new String [] { path }, workspace, null, matchesList);
+
+ AcceptMatchOperation acceptMatchOp = new AcceptMatchOperation(resultCollector, matchesList);
+ try {
+ CCorePlugin.getWorkspace().run(acceptMatchOp,null);
+ } catch (CoreException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ //
+ //resultCollector.done();
Set matches = resultCollector.getSearchResults();
assertEquals( matches.size(), 4 );
diff --git a/core/org.eclipse.cdt.core/dependency/ChangeLog b/core/org.eclipse.cdt.core/dependency/ChangeLog
index 75e082cd3f7..5f4d18ef0cb 100644
--- a/core/org.eclipse.cdt.core/dependency/ChangeLog
+++ b/core/org.eclipse.cdt.core/dependency/ChangeLog
@@ -1,57 +1,60 @@
-2003-09-25 Bogdan Gheorghe
- - As a result of folding the dependency service into the indexer
- have removed the following files:
-
- * src/org/eclipse/cdt/internal/core/sourcedependency/AddFileToDependencyTree.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/DependencyManager.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/DependencyRequest.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/DependencyRequestor.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/DependencySelector.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/DependencyTree.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/EntireProjectDependencyTree.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/IDependencyTree.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/IPreprocessorOutput.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/ISourceDependency.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/PreprocessorOutput.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/RemoveFromDependencyTree.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/impl/IncludeEntry.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/impl/IncludeEntryHashedArray.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/impl/InMemoryTree.java
-
-
-
-2003-09-22 Bogdan Gheorghe
- - Took out enable section for DependencyManager
-
-2003-09-11 Bogdan Gheorghe
- - Added null guard to DependencyManager.getDependencyTree(),
- DependencyTree.getFileDependencies()
-
-2003-09-08 Andrew Niefer
- - Modified calls to ParserFactory to specify which language to use
- - Modified IDependencyTree.add to take ParserLanguage as a parameter so that it can
- be passed on when creating the preprocessor
-
-2003-07-23 Bogdan Gheorghe
-
- Added initial dependency implementation
-
- * src/org/eclipse/cdt/internal/core/sourcedependency/AddFileToDependencyTree.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/DependencyManager.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/DenpendencyQueryJob.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/DependencyRequest.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/DependencyRequestor.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/DependencyTree.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/EntireProjectDependencyTree.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/IDependencyTree.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/IPreprocessorOutput.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/ISourceDependency.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/PreprocessorOutput.java
-
- * src/org/eclipse/cdt/internal/core/sourcedependency/impl/IncludeEntry.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/impl/IncludeEntryHashedArray.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/impl/InMemoryTree.java
- * src/org/eclipse/cdt/internal/core/sourcedependency/impl/Node.java
-
--
+2003-10-23 Bogdan Gheorghe
+ - Added UpdateDependency job
+
+2003-09-25 Bogdan Gheorghe
+ - As a result of folding the dependency service into the indexer
+ have removed the following files:
+
+ * src/org/eclipse/cdt/internal/core/sourcedependency/AddFileToDependencyTree.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/DependencyManager.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/DependencyRequest.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/DependencyRequestor.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/DependencySelector.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/DependencyTree.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/EntireProjectDependencyTree.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/IDependencyTree.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/IPreprocessorOutput.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/ISourceDependency.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/PreprocessorOutput.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/RemoveFromDependencyTree.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/impl/IncludeEntry.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/impl/IncludeEntryHashedArray.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/impl/InMemoryTree.java
+
+
+
+2003-09-22 Bogdan Gheorghe
+ - Took out enable section for DependencyManager
+
+2003-09-11 Bogdan Gheorghe
+ - Added null guard to DependencyManager.getDependencyTree(),
+ DependencyTree.getFileDependencies()
+
+2003-09-08 Andrew Niefer
+ - Modified calls to ParserFactory to specify which language to use
+ - Modified IDependencyTree.add to take ParserLanguage as a parameter so that it can
+ be passed on when creating the preprocessor
+
+2003-07-23 Bogdan Gheorghe
+
+ Added initial dependency implementation
+
+ * src/org/eclipse/cdt/internal/core/sourcedependency/AddFileToDependencyTree.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/DependencyManager.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/DenpendencyQueryJob.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/DependencyRequest.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/DependencyRequestor.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/DependencyTree.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/EntireProjectDependencyTree.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/IDependencyTree.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/IPreprocessorOutput.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/ISourceDependency.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/PreprocessorOutput.java
+
+ * src/org/eclipse/cdt/internal/core/sourcedependency/impl/IncludeEntry.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/impl/IncludeEntryHashedArray.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/impl/InMemoryTree.java
+ * src/org/eclipse/cdt/internal/core/sourcedependency/impl/Node.java
+
+-
\ No newline at end of file
diff --git a/core/org.eclipse.cdt.core/dependency/org/eclipse/cdt/internal/core/sourcedependency/UpdateDependency.java b/core/org.eclipse.cdt.core/dependency/org/eclipse/cdt/internal/core/sourcedependency/UpdateDependency.java
new file mode 100644
index 00000000000..bfd02ab0526
--- /dev/null
+++ b/core/org.eclipse.cdt.core/dependency/org/eclipse/cdt/internal/core/sourcedependency/UpdateDependency.java
@@ -0,0 +1,101 @@
+/*
+ * Created on Oct 13, 2003
+ *
+ * To change the template for this generated file go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+package org.eclipse.cdt.internal.core.sourcedependency;
+
+import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.search.ICSearchConstants;
+import org.eclipse.cdt.core.search.ICSearchScope;
+import org.eclipse.cdt.core.search.SearchEngine;
+import org.eclipse.cdt.internal.core.search.PathCollector;
+import org.eclipse.cdt.internal.core.search.PatternSearchJob;
+import org.eclipse.cdt.internal.core.search.indexing.IndexManager;
+import org.eclipse.cdt.internal.core.search.matching.CSearchPattern;
+import org.eclipse.cdt.internal.core.search.processing.IJob;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+
+/**
+ * @author bgheorgh
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class UpdateDependency implements IJob {
+ PathCollector pathCollector;
+ IResource resource;
+
+ /**
+ * @param resource
+ */
+ public UpdateDependency(IResource resource) {
+ this.resource = resource;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.search.processing.IJob#belongsTo(java.lang.String)
+ */
+ public boolean belongsTo(String jobFamily) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.search.processing.IJob#cancel()
+ */
+ public void cancel() {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.search.processing.IJob#execute(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public boolean execute(IProgressMonitor progress) {
+ PathCollector pathCollector = new PathCollector();
+ //SubProgressMonitor subMonitor = (progressMonitor == null ) ? null : new SubProgressMonitor( progressMonitor, 5 );
+ ICSearchScope scope = SearchEngine.createWorkspaceScope();
+ CSearchPattern pattern = CSearchPattern.createPattern(resource.getLocation().toOSString(),ICSearchConstants.INCLUDE, ICSearchConstants.REFERENCES,ICSearchConstants.EXACT_MATCH,true);
+ IndexManager indexManager = CCorePlugin.getDefault().getCoreModel().getIndexManager();
+ indexManager.performConcurrentJob(
+ new PatternSearchJob(
+ (CSearchPattern) pattern,
+ scope,
+ pathCollector,
+ indexManager
+ ),
+ ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
+ null,
+ this );
+
+ String[] iPath = pathCollector.getPaths();
+ for (int i=0;i<iPath.length; i++){
+ IPath pathToReindex = new Path(iPath[i]);
+ IWorkspaceRoot workRoot = resource.getWorkspace().getRoot();
+ IFile fileToReindex = workRoot.getFile(pathToReindex);
+
+ if (fileToReindex!=null && fileToReindex.exists() ) {
+// if (VERBOSE)
+// System.out.println("Going to reindex " + fileToReindex.getName());
+ indexManager.addSource(fileToReindex,fileToReindex.getProject().getProject().getFullPath());
+ }
+ }
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.internal.core.search.processing.IJob#isReadyToRun()
+ */
+ public boolean isReadyToRun() {
+
+ return true;
+ }
+
+}
diff --git a/core/org.eclipse.cdt.core/index/ChangeLog b/core/org.eclipse.cdt.core/index/ChangeLog
index a05a6deb209..550e7f2e8a8 100644
--- a/core/org.eclipse.cdt.core/index/ChangeLog
+++ b/core/org.eclipse.cdt.core/index/ChangeLog
@@ -1,230 +1,235 @@
-2003-10-01 Bogdan Gheorghe
- - Modified BlockIndexOutput.addInclude to properly flush an
- include block once it's full.
- - Flushing the CDT log after every merge
- - Logging I/O Exceptions in AddFileToIndex
- - Changed valid source file extensions in SourceIndexer to
- use CModelManager file extensions
-
-2003-09-30 Bogdan Gheorghe
- Changed logging for SourceIndexer to log file in cdt.core
-
-2003-09-25 Bogdan Gheorghe
- Integrated the dependency service into the indexer. Changes
- as follows:
-
- org.eclipse.cdt.internal.core.index.impl:
- * IIndex - added getFileDependencies methods
- * IIndexerOutput - modified to allow dep inputs into the index
- * BlocksIndexInput - modified to allow the reading of the new index (which includes dep entries)
- * BlocksIndexOutput - added facilities to write includes to the index
- * GammaCompressedIndexBlock - modified with addIncludeEntry() and nextEntry()
- * IncludeEntry - new file
- * IncludeEntryHashedArray - new file
- * Index - Added getFileDepenendencies to query includeEntries from the index
- * IndexBlock - modified to reflect changes in GammaCompressedIndexBlock
- * IndexerOutput - added new methods from IIndexerOutput
- * IndexInput - modified to allow reading of includes from index files
- * IndexSummary - modified to save/read new format which contains include info
- * InMemoryIndex - modified InMemoryIndex to keep track of includes
- * MergeFactory - modified MergeFactory to accomodate new index file format
- * SimpleIndexInput - modified to use the new functions for includes in InMemoryIndex
- * Util - Added a quickSort for includeEntry[]
-
- org.eclipse.cdt.internal.core.search.indexing:
- * AbstractIndexer - modified to getResourceFile being indexed, added bestIncludePrefix
- to find include table entries, addInclude() which accepts IASTInclusion node and adds it
- to the index
- * IIndexConstants - added includeRef constant
- * IndexManager - got rid of all dependency table references
- * SourceIndexer - modified to return resource being indexed
- * SourceIndexerRequestor - Added inclusion handling code; stack for includes
-
-
-2003-09-22 Bogdan Gheorghe
-
- Took out the old CTags Indexer. Modified IndexAllProject to get
- the project path straight from the resource (bypassing the CModelManager).
- Commented out the enable section in IndexManager.
-
- Modified
- * org.eclipse.cdt.internal.core.search.indexing.IndexAllProject
- * org.eclipse.cdt.internal.core.search.indexing.IndexManager
-
- Deleted
- * org.eclipse.cdt.core.index.IndexModel
- * org.eclipse.cdt.core.index.ITagEntry
- * org.eclipse.cdt.core.index.TagFlags
- * org.eclipse.cdt.internal.core.index.CTagsCmd
- * org.eclipse.cdt.internal.core.index.CTagsEntry
- * org.eclipse.cdt.internal.core.index.CTagsFileReader
- * org.eclipse.cdt.internal.core.index.CTagsFileWriter
- * org.eclipse.cdt.internal.core.index.CTagsHeader
- * org.eclipse.cdt.internal.core.index.CTagsRunner
- * org.eclipse.cdt.internal.core.index.IndexManager
- * org.eclipse.cdt.internal.core.index.RequestList
-
-2003-09-16 Andrew Niefer
- - add parameter references to index
- - modify CharOperation.match to allow escaping wildcards (bug43063)
- - modify AbstractIndexer.bestPrefix to handle wildcard escaping in name (bug43063)
-
-2003-09-13 Andrew Niefer
- - add Typedefs to index as Types with suffix T (bug42902)
- - added addTypedefReference to AbstractIndexer
- - modified bestTypePrefix in AbstractIndexer
- - added TYPEDEF_DECL, TYPEDEF_SUFFIX to IIndexConstants
- - modified acceptTypedefReference in SourceIndexerRequestor
-
-2003-09-09 Andrew Niefer
- Enumerator references
- - Added createEnumeratorFullyQualifiedName in AbstractIndexer
- - Added addEnumeratorReference in AbstractIndexer
- - implemented acceptEnumeratorReference in SourceIndexerRequestor
-
-2003-09-08 Andrew Niefer
- - Modified calls to ParserFactory to specify which language to use
-
-2003-09-05 Andrew Niefer
- - Modified how AbstractIndexer creates the fully qualified name for an enumerator (spec 7.2-10)
-
-2003-08-26 Bogdan Gheorghe
- - Removed header file extensions from being indexed (they
- will be indexed via inclusion)
-
-2003-08-20 Bogdan Gheorghe
- - Added debug tracing in AbstractIndexer
- - Added additional file extensions to supported indexed files
- - Changed the parser instantiation to pass in retrieved build
- info
- - Added function decl index entry based on enterFunctionBody
- - Added method decl index entry based on enterMethodBody
- - Added forward decl refs
-
-2003-08-14 Bogdan Gheorghe
- - Added forward declarations to index
-
-2003-08-12 Bogdan Gheorghe
- - Changed var prefix in AbstractIndexer to pass in fully
- qualified names
-
-2003-08-11 Bogdan Gheorghe
- - Added macro declarations to the index
- - Added macro prefix to AbstractIndexer
-
-2003-08-07 Bogdan Gheorghe
- - Added shutdown cleanup routine in IndexManager
-
-2003-07-28 Andrew Niefer
- - added support for '?' wildcards in AbstractIndexer.bestPrefix
-
-2003-07-25 Bogdan Gheorghe
- - Changed parser to COMPLETE mode
- - Added functionRef, methodRef, typeRef, namespaceRef, fieldRef
-
- Modified:
- * index/org/eclipse/cdt/internal/core/search/indexing/AbstractIndexer.java
- * index/org/eclipse/cdt/internal/core/search/indexing/IIndexConstants.java
- * index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexer.java
- * index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexerRequestor.java
-
-
-2003-07-24 Andrew Niefer
- - added TYPE_ALL, FUNCTION_ALL, METHOD_ALL, NAMESPACE_ALL, FIELD_ALL constants to IIndexConstants
- - modified AbstractIndexer prefix functions to properly handle searching for all occurences
-
-2003-07-23 Andrew Niefer
- Modified
- *index/org/eclipse/cdt/internal/core/search/indexing/AbstractIndexer.java
- -changed so that the index prefixes contain the qualified names of the
- elements in reverse order.
- -Added functions:
- bestVariablePrefix
- bestNamespacePrefix
- bestFieldPrefix
- bestFunctionPrefix
- bestMethodPrefix
-
-2003-07-21 Bogdan Gheorghe
- Added additional declarations to index: enums, enumerators, namespace,
- functions, vars, methods, fields, typedefs.
-
- Fixed IndexManager to prevent individually added files from
- being added to the index if indexing is not enabled for the project
-
- Modified:
-
- * index/org/eclipse/cdt/internal/core/search/indexing/AbstractIndexer.java
- * index/org/eclipse/cdt/internal/core/search/indexing/IIndexConstants.java
- * index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java
- * index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexerRequestor.java
-
-2003-07-10 Bogdan Gheorghe
- Added bestTypeDeclarationPrefix to AbstractIndexer to allow the
- search engine to create a query string for the index.
- Changed encoding in AbstractIndexer to encode fully qualified names.
-
- * index/org/eclipse/cdt/internal/core/search/indexing/AbstractIndexer.java
-
-2003-07-03 Bogdan Gheorghe
- Updated copyright notices.
-
-2003-06-25 Bogdan Gheorghe
- Added new Indexer framework:
-
- * index/org/eclipse/cdt/internal/core/index/IDocument.java
- * index/org/eclipse/cdt/internal/core/index/IEntryResult.java
- * index/org/eclipse/cdt/internal/core/index/IIndex.java
- * index/org/eclipse/cdt/internal/core/index/IIndexer.java
- * index/org/eclipse/cdt/internal/core/index/IIndexerOutput.java
- * index/org/eclipse/cdt/internal/core/index/IQueryResult.java
-
- * index/org/eclipse/cdt/internal/core/index/impl/Block.java
- * index/org/eclipse/cdt/internal/core/index/impl/BlocksIndexInput.java
- * index/org/eclipse/cdt/internal/core/index/impl/BlocksIndexOutput.java
- * index/org/eclipse/cdt/internal/core/index/impl/CodeByteStream.java
- * index/org/eclipse/cdt/internal/core/index/impl/EntryResult.java
- * index/org/eclipse/cdt/internal/core/index/impl/Field.java
- * index/org/eclipse/cdt/internal/core/index/impl/GammaCompressedIndexBlock.java
- * index/org/eclipse/cdt/internal/core/index/impl/IFileDocument.java
- * index/org/eclipse/cdt/internal/core/index/impl/IIndexConstants.java
- * index/org/eclipse/cdt/internal/core/index/impl/Index.java
- * index/org/eclipse/cdt/internal/core/index/impl/IndexBlock.java
- * index/org/eclipse/cdt/internal/core/index/impl/IndexedFile.java
- * index/org/eclipse/cdt/internal/core/index/impl/IndexedFileHashedArray.java
- * index/org/eclipse/cdt/internal/core/index/impl/IndexerOutput.java
- * index/org/eclipse/cdt/internal/core/index/impl/IndexInput.java
- * index/org/eclipse/cdt/internal/core/index/impl/IndexOutput.java
- * index/org/eclipse/cdt/internal/core/index/impl/IndexSummary.java
- * index/org/eclipse/cdt/internal/core/index/impl/InMemoryIndex.java
- * index/org/eclipse/cdt/internal/core/index/impl/Int.java
- * index/org/eclipse/cdt/internal/core/index/impl/MergeFactory.java
- * index/org/eclipse/cdt/internal/core/index/impl/PropertyDocument.java
- * index/org/eclipse/cdt/internal/core/index/impl/SafeRandomAccessFile.java
- * index/org/eclipse/cdt/internal/core/index/impl/SimpleIndexInput.java
- * index/org/eclipse/cdt/internal/core/index/impl/Util.java
- * index/org/eclipse/cdt/internal/core/index/impl/WordEntry.java
- * index/org/eclipse/cdt/internal/core/index/impl/WordEntryHashedArray.java
-
- * index/org/eclipse/cdt/internal/core/search/CharOperation.java
- * index/org/eclipse/cdt/internal/core/search/HashtableOfInt.java
- * index/org/eclipse/cdt/internal/core/search/SimpleLookupTable.java
- * index/org/eclipse/cdt/internal/core/search/Util.java
- * index/org/eclipse/cdt/internal/core/search/message.properties
-
- * index/org/eclipse/cdt/internal/core/search/indexing/AbstractIndexer.java
- * index/org/eclipse/cdt/internal/core/search/indexing/AddCompilationUnitToIndex.java
- * index/org/eclipse/cdt/internal/core/search/indexing/AddFileToIndex.java
- * index/org/eclipse/cdt/internal/core/search/indexing/AddFolderToIndex.java
- * index/org/eclipse/cdt/internal/core/search/indexing/IIndexConstants.java
- * index/org/eclipse/cdt/internal/core/search/indexing/IndexAllProject.java
- * index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java
- * index/org/eclipse/cdt/internal/core/search/indexing/IndexRequest.java
- * index/org/eclipse/cdt/internal/core/search/indexing/ReadWriteMonitor.java
- * index/org/eclipse/cdt/internal/core/search/indexing/RemoveFolderFromIndex.java
- * index/org/eclipse/cdt/internal/core/search/indexing/RemoveFromIndex.java
- * index/org/eclipse/cdt/internal/core/search/indexing/SaveIndex.java
- * index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexer.java
- * index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexerRequestor.java
-
+2003-10-22 Bogdan Gheorghe
+
+ Added updateDependencies() to the IndexManager to request
+ a new UpdateDependency job.
+
+2003-10-01 Bogdan Gheorghe
+ - Modified BlockIndexOutput.addInclude to properly flush an
+ include block once it's full.
+ - Flushing the CDT log after every merge
+ - Logging I/O Exceptions in AddFileToIndex
+ - Changed valid source file extensions in SourceIndexer to
+ use CModelManager file extensions
+
+2003-09-30 Bogdan Gheorghe
+ Changed logging for SourceIndexer to log file in cdt.core
+
+2003-09-25 Bogdan Gheorghe
+ Integrated the dependency service into the indexer. Changes
+ as follows:
+
+ org.eclipse.cdt.internal.core.index.impl:
+ * IIndex - added getFileDependencies methods
+ * IIndexerOutput - modified to allow dep inputs into the index
+ * BlocksIndexInput - modified to allow the reading of the new index (which includes dep entries)
+ * BlocksIndexOutput - added facilities to write includes to the index
+ * GammaCompressedIndexBlock - modified with addIncludeEntry() and nextEntry()
+ * IncludeEntry - new file
+ * IncludeEntryHashedArray - new file
+ * Index - Added getFileDepenendencies to query includeEntries from the index
+ * IndexBlock - modified to reflect changes in GammaCompressedIndexBlock
+ * IndexerOutput - added new methods from IIndexerOutput
+ * IndexInput - modified to allow reading of includes from index files
+ * IndexSummary - modified to save/read new format which contains include info
+ * InMemoryIndex - modified InMemoryIndex to keep track of includes
+ * MergeFactory - modified MergeFactory to accomodate new index file format
+ * SimpleIndexInput - modified to use the new functions for includes in InMemoryIndex
+ * Util - Added a quickSort for includeEntry[]
+
+ org.eclipse.cdt.internal.core.search.indexing:
+ * AbstractIndexer - modified to getResourceFile being indexed, added bestIncludePrefix
+ to find include table entries, addInclude() which accepts IASTInclusion node and adds it
+ to the index
+ * IIndexConstants - added includeRef constant
+ * IndexManager - got rid of all dependency table references
+ * SourceIndexer - modified to return resource being indexed
+ * SourceIndexerRequestor - Added inclusion handling code; stack for includes
+
+
+2003-09-22 Bogdan Gheorghe
+
+ Took out the old CTags Indexer. Modified IndexAllProject to get
+ the project path straight from the resource (bypassing the CModelManager).
+ Commented out the enable section in IndexManager.
+
+ Modified
+ * org.eclipse.cdt.internal.core.search.indexing.IndexAllProject
+ * org.eclipse.cdt.internal.core.search.indexing.IndexManager
+
+ Deleted
+ * org.eclipse.cdt.core.index.IndexModel
+ * org.eclipse.cdt.core.index.ITagEntry
+ * org.eclipse.cdt.core.index.TagFlags
+ * org.eclipse.cdt.internal.core.index.CTagsCmd
+ * org.eclipse.cdt.internal.core.index.CTagsEntry
+ * org.eclipse.cdt.internal.core.index.CTagsFileReader
+ * org.eclipse.cdt.internal.core.index.CTagsFileWriter
+ * org.eclipse.cdt.internal.core.index.CTagsHeader
+ * org.eclipse.cdt.internal.core.index.CTagsRunner
+ * org.eclipse.cdt.internal.core.index.IndexManager
+ * org.eclipse.cdt.internal.core.index.RequestList
+
+2003-09-16 Andrew Niefer
+ - add parameter references to index
+ - modify CharOperation.match to allow escaping wildcards (bug43063)
+ - modify AbstractIndexer.bestPrefix to handle wildcard escaping in name (bug43063)
+
+2003-09-13 Andrew Niefer
+ - add Typedefs to index as Types with suffix T (bug42902)
+ - added addTypedefReference to AbstractIndexer
+ - modified bestTypePrefix in AbstractIndexer
+ - added TYPEDEF_DECL, TYPEDEF_SUFFIX to IIndexConstants
+ - modified acceptTypedefReference in SourceIndexerRequestor
+
+2003-09-09 Andrew Niefer
+ Enumerator references
+ - Added createEnumeratorFullyQualifiedName in AbstractIndexer
+ - Added addEnumeratorReference in AbstractIndexer
+ - implemented acceptEnumeratorReference in SourceIndexerRequestor
+
+2003-09-08 Andrew Niefer
+ - Modified calls to ParserFactory to specify which language to use
+
+2003-09-05 Andrew Niefer
+ - Modified how AbstractIndexer creates the fully qualified name for an enumerator (spec 7.2-10)
+
+2003-08-26 Bogdan Gheorghe
+ - Removed header file extensions from being indexed (they
+ will be indexed via inclusion)
+
+2003-08-20 Bogdan Gheorghe
+ - Added debug tracing in AbstractIndexer
+ - Added additional file extensions to supported indexed files
+ - Changed the parser instantiation to pass in retrieved build
+ info
+ - Added function decl index entry based on enterFunctionBody
+ - Added method decl index entry based on enterMethodBody
+ - Added forward decl refs
+
+2003-08-14 Bogdan Gheorghe
+ - Added forward declarations to index
+
+2003-08-12 Bogdan Gheorghe
+ - Changed var prefix in AbstractIndexer to pass in fully
+ qualified names
+
+2003-08-11 Bogdan Gheorghe
+ - Added macro declarations to the index
+ - Added macro prefix to AbstractIndexer
+
+2003-08-07 Bogdan Gheorghe
+ - Added shutdown cleanup routine in IndexManager
+
+2003-07-28 Andrew Niefer
+ - added support for '?' wildcards in AbstractIndexer.bestPrefix
+
+2003-07-25 Bogdan Gheorghe
+ - Changed parser to COMPLETE mode
+ - Added functionRef, methodRef, typeRef, namespaceRef, fieldRef
+
+ Modified:
+ * index/org/eclipse/cdt/internal/core/search/indexing/AbstractIndexer.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/IIndexConstants.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexer.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexerRequestor.java
+
+
+2003-07-24 Andrew Niefer
+ - added TYPE_ALL, FUNCTION_ALL, METHOD_ALL, NAMESPACE_ALL, FIELD_ALL constants to IIndexConstants
+ - modified AbstractIndexer prefix functions to properly handle searching for all occurences
+
+2003-07-23 Andrew Niefer
+ Modified
+ *index/org/eclipse/cdt/internal/core/search/indexing/AbstractIndexer.java
+ -changed so that the index prefixes contain the qualified names of the
+ elements in reverse order.
+ -Added functions:
+ bestVariablePrefix
+ bestNamespacePrefix
+ bestFieldPrefix
+ bestFunctionPrefix
+ bestMethodPrefix
+
+2003-07-21 Bogdan Gheorghe
+ Added additional declarations to index: enums, enumerators, namespace,
+ functions, vars, methods, fields, typedefs.
+
+ Fixed IndexManager to prevent individually added files from
+ being added to the index if indexing is not enabled for the project
+
+ Modified:
+
+ * index/org/eclipse/cdt/internal/core/search/indexing/AbstractIndexer.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/IIndexConstants.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexerRequestor.java
+
+2003-07-10 Bogdan Gheorghe
+ Added bestTypeDeclarationPrefix to AbstractIndexer to allow the
+ search engine to create a query string for the index.
+ Changed encoding in AbstractIndexer to encode fully qualified names.
+
+ * index/org/eclipse/cdt/internal/core/search/indexing/AbstractIndexer.java
+
+2003-07-03 Bogdan Gheorghe
+ Updated copyright notices.
+
+2003-06-25 Bogdan Gheorghe
+ Added new Indexer framework:
+
+ * index/org/eclipse/cdt/internal/core/index/IDocument.java
+ * index/org/eclipse/cdt/internal/core/index/IEntryResult.java
+ * index/org/eclipse/cdt/internal/core/index/IIndex.java
+ * index/org/eclipse/cdt/internal/core/index/IIndexer.java
+ * index/org/eclipse/cdt/internal/core/index/IIndexerOutput.java
+ * index/org/eclipse/cdt/internal/core/index/IQueryResult.java
+
+ * index/org/eclipse/cdt/internal/core/index/impl/Block.java
+ * index/org/eclipse/cdt/internal/core/index/impl/BlocksIndexInput.java
+ * index/org/eclipse/cdt/internal/core/index/impl/BlocksIndexOutput.java
+ * index/org/eclipse/cdt/internal/core/index/impl/CodeByteStream.java
+ * index/org/eclipse/cdt/internal/core/index/impl/EntryResult.java
+ * index/org/eclipse/cdt/internal/core/index/impl/Field.java
+ * index/org/eclipse/cdt/internal/core/index/impl/GammaCompressedIndexBlock.java
+ * index/org/eclipse/cdt/internal/core/index/impl/IFileDocument.java
+ * index/org/eclipse/cdt/internal/core/index/impl/IIndexConstants.java
+ * index/org/eclipse/cdt/internal/core/index/impl/Index.java
+ * index/org/eclipse/cdt/internal/core/index/impl/IndexBlock.java
+ * index/org/eclipse/cdt/internal/core/index/impl/IndexedFile.java
+ * index/org/eclipse/cdt/internal/core/index/impl/IndexedFileHashedArray.java
+ * index/org/eclipse/cdt/internal/core/index/impl/IndexerOutput.java
+ * index/org/eclipse/cdt/internal/core/index/impl/IndexInput.java
+ * index/org/eclipse/cdt/internal/core/index/impl/IndexOutput.java
+ * index/org/eclipse/cdt/internal/core/index/impl/IndexSummary.java
+ * index/org/eclipse/cdt/internal/core/index/impl/InMemoryIndex.java
+ * index/org/eclipse/cdt/internal/core/index/impl/Int.java
+ * index/org/eclipse/cdt/internal/core/index/impl/MergeFactory.java
+ * index/org/eclipse/cdt/internal/core/index/impl/PropertyDocument.java
+ * index/org/eclipse/cdt/internal/core/index/impl/SafeRandomAccessFile.java
+ * index/org/eclipse/cdt/internal/core/index/impl/SimpleIndexInput.java
+ * index/org/eclipse/cdt/internal/core/index/impl/Util.java
+ * index/org/eclipse/cdt/internal/core/index/impl/WordEntry.java
+ * index/org/eclipse/cdt/internal/core/index/impl/WordEntryHashedArray.java
+
+ * index/org/eclipse/cdt/internal/core/search/CharOperation.java
+ * index/org/eclipse/cdt/internal/core/search/HashtableOfInt.java
+ * index/org/eclipse/cdt/internal/core/search/SimpleLookupTable.java
+ * index/org/eclipse/cdt/internal/core/search/Util.java
+ * index/org/eclipse/cdt/internal/core/search/message.properties
+
+ * index/org/eclipse/cdt/internal/core/search/indexing/AbstractIndexer.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/AddCompilationUnitToIndex.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/AddFileToIndex.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/AddFolderToIndex.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/IIndexConstants.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/IndexAllProject.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/IndexRequest.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/ReadWriteMonitor.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/RemoveFolderFromIndex.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/RemoveFromIndex.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/SaveIndex.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexer.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexerRequestor.java
+
\ No newline at end of file
diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/Util.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/Util.java
index 254932ebefc..a384a3a3808 100644
--- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/Util.java
+++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/Util.java
@@ -21,6 +21,7 @@ import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
+import org.eclipse.cdt.internal.core.model.CModelManager;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IPath;
@@ -360,6 +361,37 @@ public class Util {
if (CharOperation.pathMatch(exclusionPatterns[i], path, true, '/'))
return true;
return false;
+ }
+ /**
+ * @param string
+ * @return
+ */
+ public static boolean isCCFileName(String fileName) {
+ String[] sourceExtensions = CModelManager.sourceExtensions;
+ String[] headerExtensions = CModelManager.headerExtensions;
+
+ int dot =fileName.lastIndexOf(".");
+
+ //No extension, give benefit of doubt
+ if (dot == -1)
+ return true;
+
+ //Extract extension
+ String extension = "";
+ if (dot + 1 <= fileName.length())
+ extension = fileName.substring(dot + 1);
+
+ for (int i=0; i<sourceExtensions.length; i++){
+ if (sourceExtensions[i].equals(extension))
+ return true;
+ }
+
+ for (int i=0; i<headerExtensions.length; i++){
+ if (headerExtensions[i].equals(extension))
+ return true;
+ }
+
+ return false;
}
}
diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexAllProject.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexAllProject.java
index 4d12b7cd7ad..bf4b4cf9b1d 100644
--- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexAllProject.java
+++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexAllProject.java
@@ -97,15 +97,14 @@ public class IndexAllProject extends IndexRequest {
if (isCancelled) return false;
switch(proxy.getType()) {
case IResource.FILE :
- //TODO: BOG Put the file name checking back
- //if (Util.isCCFileName(proxy.getName())) {
+ if (Util.isCCFileName(proxy.getName())) {
IResource resource = proxy.requestResource();
if (resource.getLocation() != null && (patterns == null || !Util.isExcluded(resource, patterns))) {
String name = new IFileDocument((IFile) resource).getName();
indexedFileNames.put(name, resource);
}
- //}
- // return false;
+ }
+ return false;
case IResource.FOLDER :
if (patterns != null && Util.isExcluded(proxy.requestResource(), patterns))
diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java
index b7cc31c9035..54d1cd19f86 100644
--- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java
+++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java
@@ -31,8 +31,10 @@ import org.eclipse.cdt.internal.core.search.IndexSelector;
import org.eclipse.cdt.internal.core.search.SimpleLookupTable;
import org.eclipse.cdt.internal.core.search.processing.IJob;
import org.eclipse.cdt.internal.core.search.processing.JobManager;
+import org.eclipse.cdt.internal.core.sourcedependency.UpdateDependency;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
@@ -103,7 +105,6 @@ public class IndexManager extends JobManager implements IIndexConstants {
* Note: the actual operation is performed in background
*/
public void addSource(IFile resource, IPath indexedContainer){
-
if (CCorePlugin.getDefault() == null) return;
AddCompilationUnitToIndex job = new AddCompilationUnitToIndex(resource, indexedContainer, this);
if (this.awaitingJobsCount() < MAX_FILES_IN_MEMORY) {
@@ -113,6 +114,13 @@ public class IndexManager extends JobManager implements IIndexConstants {
request(job);
}
+ public void updateDependencies(IResource resource){
+ if (CCorePlugin.getDefault() == null) return;
+ UpdateDependency job = new UpdateDependency(resource);
+
+ request(job);
+ }
+
String computeIndexName(IPath path) {
String name = (String) indexNames.get(path);
if (name == null) {
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 0ccf44f125a..ac19437a3ab 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
@@ -5,7 +5,6 @@ package org.eclipse.cdt.internal.core.model;
* All Rights Reserved.
*/
-import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.model.CModelException;
import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.IArchiveContainer;
@@ -15,20 +14,12 @@ import org.eclipse.cdt.core.model.ICElementDelta;
import org.eclipse.cdt.core.model.ICModel;
import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.core.model.IParent;
-import org.eclipse.cdt.core.search.ICSearchConstants;
-import org.eclipse.cdt.core.search.ICSearchScope;
-import org.eclipse.cdt.core.search.SearchEngine;
-import org.eclipse.cdt.internal.core.search.PathCollector;
-import org.eclipse.cdt.internal.core.search.PatternSearchJob;
import org.eclipse.cdt.internal.core.search.indexing.IndexManager;
-import org.eclipse.cdt.internal.core.search.matching.CSearchPattern;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
/**
* This class is used by <code>CModelManager</code> to convert
@@ -511,35 +502,8 @@ public class DeltaProcessor {
String fileExtension = resource.getFileExtension();
if ((fileExtension != null) &&
- (isValidHeader(fileExtension)))
- {
- PathCollector pathCollector = new PathCollector();
- //SubProgressMonitor subMonitor = (progressMonitor == null ) ? null : new SubProgressMonitor( progressMonitor, 5 );
- ICSearchScope scope = SearchEngine.createWorkspaceScope();
- CSearchPattern pattern = CSearchPattern.createPattern(resource.getLocation().toOSString(),ICSearchConstants.INCLUDE, ICSearchConstants.REFERENCES,ICSearchConstants.EXACT_MATCH,true);
- IndexManager indexManager = CCorePlugin.getDefault().getCoreModel().getIndexManager();
- indexManager.performConcurrentJob(
- new PatternSearchJob(
- (CSearchPattern) pattern,
- scope,
- pathCollector,
- indexManager
- ),
- ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
- null );
-
- String[] iPath = pathCollector.getPaths();
- for (int i=0;i<iPath.length; i++){
- IPath pathToReindex = new Path(iPath[i]);
- IWorkspaceRoot workRoot = element.getCProject().getProject().getWorkspace().getRoot();
- IFile fileToReindex = workRoot.getFile(pathToReindex);
-
- if (fileToReindex!=null && fileToReindex.exists() ) {
- if (VERBOSE)
- System.out.println("Going to reindex " + fileToReindex.getName());
- this.indexManager.addSource(fileToReindex,fileToReindex.getProject().getProject().getFullPath());
- }
- }
+ (isValidHeader(fileExtension))){
+ indexManager.updateDependencies(resource);
}
}
diff --git a/core/org.eclipse.cdt.core/search/ChangeLog b/core/org.eclipse.cdt.core/search/ChangeLog
index cd3ad83569e..ea03a2967c4 100644
--- a/core/org.eclipse.cdt.core/search/ChangeLog
+++ b/core/org.eclipse.cdt.core/search/ChangeLog
@@ -1,241 +1,258 @@
-2003-10-06 Bogdan Gheorghe
- - added createCFileSearchScope() to SearchEngine.java to improve
- code complete performance
-
-2003-10-01 Andrew Niefer
- - fix bug 44026 by checking scope before reporting match in MatchLocator.report
-
-2003-10-01 Andrew Niefer
- - fix BasicSearchMatch.equals() for bug43988
-
-2003-09-30 Bogdan Gheorghe
- - changed logging in JobManager to use new ICLogConstants
-
-2003-09-30 Andrew Niefer
- -fix bug43862 - Cannot find macro delcarations using all occurences.
- * modified CSearchPattern.createMacroPattern
-
-2003-09-29 Andrew Niefer
- - fix bug 43062 outline is confused on operator methods containing spaces
- - modify CSearchPattern.scanForNames to use same naming convention as TokenDuple.toString()
- - modify MatchLocator.report to use IASTOffsetableNamedElement.getNameEndOffset()
-
-2003-09-29 Andrew Niefer
- -bug42911 - Search: cannot find beyond use of data member
- - fix NPE's in BasicSearchMatch.equals & hashCode
-
-2003-09-29 Andrew Niefer
- -fix NPE if IScannerInfoProvider returns null IScannerInfo
-
-2003-09-25 Andrew Niefer
- - bug43129 - Cannot search for definitions of global variables
- - check definitions for variables, fields, enumerators and namespaces
- - handle enter/exitLinkageSpecification
- * search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java
- * search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java
-
-2003-09-25 Bogdan Gheorghe
- - added SearchFor INCLUDE in ICSearchConstants
- - added acceptIncludeDeclaration to IIndexSearchRequestor
- - modified PathCollector to acceptIncludeDeclarations
- - modified CSearchPattern to create an IncludePattern
- - added IncludePattern.java
-
-2003-09-25 Andrew Niefer
- - partial fix for 43664 Modify Matchlocator to not try and create a link if we have no
- resource, instead just use the path
-
-2003-09-23 Andrew Niefer
- fix bug 43498 Search with ? fails on first letter of second word
- -modifications to CSearchPattern.scanForNames()
- -add getSimpleName to MethodDeclarationPattern
-
-2003-09-19 Andrew Niefer
- fix bug 43327 Code Complete finds local variables
- - modified MatchLocator to not report local declarations when boolean is set
- - modified SearchEngine.search to take an additional parameter "excludeLocalDeclarations"
-
-2003-09-15 Andrew Niefer
- - modify CSearchPattern to handle escaping wildcards (bug43063)
- - modify enterFunctionBody and enterMethodBody to fix bug42979
- - search for Parameter References
-
-2003-09-13 Andrew Niefer
- -Searching for Typedefs: (bug42902)
- - modified setElementInfo in BasicSearchResultCollector
- - added TYPEDEF to ICSearchConstants
- - modified CSearchPattern & ClassDeclarationPattern
- - implemented acceptTypedef* in MatchLocator
- - modified BasicSearchMatch to implement Comparable
-
-2003-09-11 Andrew Niefer
- - Modified ICSearchResultCollector.createMatch to not take a parent parameter
- - modified BasicSearchResultCollector to create the parent string from the fully qualified name of the node
- - modified MatchLocator to keep track of most recent declaration for reporting purposes
- - modified MatchLocator.report to use the most recent declaration
-
-2003-09-09 Andrew Niefer
- pattern matching on function parameters:
- - modified scanForParameters in CSearchPattern
- - added getParamString in CSearchPattern
- - modified matchLevel in MethodDeclarationPattern
-
- Enumeration references
- - modified acceptEnumeratorReference in MatchLocator
-
-2003-09-05 Andrew Niefer
- - fix searching for enumerators
-
-2003-09-03 Andrew Niefer
- - added CLASS_STRUCT to the SearchFor constants
- - Modified CSearchPattern to handle CLASS_STRUCT
-
-2003-08-26 Bogdan Gheorghe
- - Added debug tracing statements to SearchEngine
- - Modified scanForNames in CSearchPattern to treat append
- a token after "~" to allow for destructors search
- - Added scope checking to MatchLocator
- - Added debug trace statements to MatchLocator
-
-2003-08-20 Bogdan Gheorghe
- - Changed matching and reporting functions to handle nodes
- of type IElaboratedTypeSpecifier
-
-2003-08-12 Bogdan Gheorghe
- - Rolled field and variable search patterns into one pattern, in
- order to allow for qualified var searches
-
-2003-08-11 Andrew Niefer
- - Added Macro ICSearchConstant
- - Added acceptMacro to IIndexSearchRequestor and PathCollector
- - Added MacroDeclaration Pattern
- - Rolled method and function patterns into one method pattern
- - Added WorkingCopy support to search
-
-2003-08-08 Bogdan Gheorghe
- - Added CreateSearchScope to create a search scope out of
- CElements
- - Filled out CSearchScope to enable:
- - adding a project to scope, include referenced projects
- - adding individual CElements to scope
-
-2003-08-08 Andrew Niefer
- - add function parameter information to search results
-
-2003-08-06 Andrew Niefer
- - Create OrPattern which matches for search if any of its constituent patterns matches
- - modified MatchLocator to support the OrPattern
- - searching for All occurences now uses the OrPattern
-
-2003-08-01 Andrew Niefer
- - Modified BasicSearchResultCollector to only accept matches it has not already seen
- - fixed bug in finding a resource when entering includes
-
-2003-07-29 Andrew Niefer
- Refactoring Search result collection:
- - Modified ICSearchResultCollector
- - Modified IMatch
- - Modified MatchLocator to reflect changes in ICSearchResultCollector
- - Created BasicSearchMatch implements IMatch
- - Created BasicSearchResultCollector implements ICSearchResultCollector
-
-2003-07-28 Andrew Niefer
- - added abstract CSearchPattern.resetIndexInfo fix bug with searching with globally
- qualified names
- - fixed bug in CSearchPattern.matchQualifications to do with globally qualified names
- - fixed bug in CSearchPattern.createFunctionPattern to do with parameter lists.
-
-2003-07-25 Bogdan Gheorghe
- - Added refs to PathCollector
- - Filled in feedIndexRequestor for the new search patterns
- - Fixed the FunctionDeclarationPattern to work with no parms
-
-2003-07-24 Andrew Niefer
- - Implemented decodeIndexEntry & matchIndexEntry for all patterns
- - changed MatchLocator to use a COMPLETE_PARSE.
-
-2003-07-23 Andrew Niefer
- -Changed ICSearchPattern.matchLevel to take a ISourceElementCallbackDelegate
- -Changed ICSearchResultCollector.createMatch to take a ISourceElementCallbackDelegate
- -first implementations of:
- -CSearchPattern.createFunctionPattern
- -CSearchPattern.createVariablePattern
- -CSearchPattern.createMethodPattern
- -preliminary matching for remaining patterns
- -handling of remaining parser callbacks
- -generating index Prefixes for the patterns
-
-2003-07-14 Andrew Niefer
- -Modified SearchFor instances in ICSearchConstants to more closely match what we are searching for
- -added IMatch interface, it represents matches found by the search engine, implementors can store
- whatever information they like, see ICSearchResultCollector::createMatch
- -added createMatch to the ICSearchResultCollector interface, the result collector is responsible for
- implementing IMatch to store whatever data they want out of the AST nodes.
- -added skeleton patterns:
- search/org/eclipse/cdt/internal/core/search/matching/FieldDeclarationPattern.java
- search/org/eclipse/cdt/internal/core/search/matching/FunctionDeclarationPattern.java
- search/org/eclipse/cdt/internal/core/search/matching/MethodDeclarationPattern.java
- search/org/eclipse/cdt/internal/core/search/matching/NamespaceDeclarationPattern.java
- search/org/eclipse/cdt/internal/core/search/matching/VariableDeclarationPattern.java
- -added beginnings of CSearchPattern::create*Pattern functions
- -modifications to MatchLocator to keep track of current scope
- -added CSearchPattern::matchQualifications
-
-2003-07-10 Bogdan Gheorghe
- Provided implementation for ICSearchScope.java, CSearchScope.java
-
- Hooked up new CWorkspaceScope, PathCollector, PatternSearchJob in SearchEngine.java
-
- Provided implementation for PatternSearchJob.java - PatternSearchJob is where the first part
- of the search occurs - using an IndexSelector to filter the indexes, it gets the indexes from
- the IndexManager and then uses the passed in pattern to find the index matched. Once it finds
- an index match it adds the file path to the PathCollector.
-
- Modified CSearchPattern - added support to find index entries.
-
- Modified ClassDeclarationPattern - added support to decode, match and report
- index entries.
-
-
- Added:
- * search/org/eclipse/cdt/internal/core/search/CWorkspaceScope.java
- * search/org/eclipse/cdt/internal/core/search/IIndexSearchRequestor.java
- * search/org/eclipse/cdt/internal/core/search/IndexSelector.java
- * search/org/eclipse/cdt/internal/core/search/PathCollector.java
-
- Modified:
- * search/org/eclipse/cdt/core/search/ICSearchScope.java
- * search/org/eclipse/cdt/core/search/SearchEngine.java
- * search/org/eclipse/cdt/internal/core/search/CSearchScope.java
- * search/org/eclipse/cdt/internal/core/search/PatternSearchJob.java
- * search/org/eclipse/cdt/internal/core/search/matching/ClassDeclarationPattern.java
- * search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java
-
-2003-07-04 Andrew Niefer
- Modified ICSearchConstants to use new nested classes SearchFor and LimitTo instead of int
- for stronger type safety
-
- Updated MatchLocator to invoke parser to do actual search.
-
-2003-06-27 Andrew Niefer
- Modified:
- search/org.eclipse.cdt.core.search.matching/MatchLocator.java
- - enter/exitInclusion
- - enterClassSpecifier
- search/org.eclipse.cdt.core.search.matching/CSearchPattern.java
- - createClassPattern
- - matchesName
- search/org.eclipse.cdt.core.search.matching/ClassDeclarationPattern.java
- - matchLevel
- search/org.eclipse.cdt.core.search/ICSearchPattern.java
- search/org.eclipse.cdt.core.search/ICSearchResultCollector.java
- search/org.eclipse.cdt.core.search/SearchEngine.java
-
-2003-06-25 Bogdan Gheorghe
- Modified:
- * search/org/eclipse/cdt/core/search/ICSearchConstants.java
- * search/org/eclipse/cdt/internal/core/search/Utils.java
- - moved to index/org/eclipse/cdt/internal/core/search/Utils.java
- * search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java
- * search/org/eclipse/cdt/internal/core/search/processing/IJob.java
+2003-10-23 Bogdan Gheorghe
+
+ - Added AcceptMatchOperation to get around Bug 45324. The search
+ operation is no longer a WorkspaceModifyOperation (which used to
+ lock the workspace for the duration of search). Instead, we now
+ lock the workspace only when we tag the resources with markers.
+
+ - Modified SearchEngine : we now receive a list of matches
+ from the search that we pass into the AcceptMatchOperation.
+
+ - Modified MatchLocator to add matches to passed in list instead
+ of reporting them right away
+
+ - Modified JobManager: -added in jobToIgnore parm to unblock dependency
+ jobs
+
+
+2003-10-06 Bogdan Gheorghe
+ - added createCFileSearchScope() to SearchEngine.java to improve
+ code complete performance
+
+2003-10-01 Andrew Niefer
+ - fix bug 44026 by checking scope before reporting match in MatchLocator.report
+
+2003-10-01 Andrew Niefer
+ - fix BasicSearchMatch.equals() for bug43988
+
+2003-09-30 Bogdan Gheorghe
+ - changed logging in JobManager to use new ICLogConstants
+
+2003-09-30 Andrew Niefer
+ -fix bug43862 - Cannot find macro delcarations using all occurences.
+ * modified CSearchPattern.createMacroPattern
+
+2003-09-29 Andrew Niefer
+ - fix bug 43062 outline is confused on operator methods containing spaces
+ - modify CSearchPattern.scanForNames to use same naming convention as TokenDuple.toString()
+ - modify MatchLocator.report to use IASTOffsetableNamedElement.getNameEndOffset()
+
+2003-09-29 Andrew Niefer
+ -bug42911 - Search: cannot find beyond use of data member
+ - fix NPE's in BasicSearchMatch.equals & hashCode
+
+2003-09-29 Andrew Niefer
+ -fix NPE if IScannerInfoProvider returns null IScannerInfo
+
+2003-09-25 Andrew Niefer
+ - bug43129 - Cannot search for definitions of global variables
+ - check definitions for variables, fields, enumerators and namespaces
+ - handle enter/exitLinkageSpecification
+ * search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java
+ * search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java
+
+2003-09-25 Bogdan Gheorghe
+ - added SearchFor INCLUDE in ICSearchConstants
+ - added acceptIncludeDeclaration to IIndexSearchRequestor
+ - modified PathCollector to acceptIncludeDeclarations
+ - modified CSearchPattern to create an IncludePattern
+ - added IncludePattern.java
+
+2003-09-25 Andrew Niefer
+ - partial fix for 43664 Modify Matchlocator to not try and create a link if we have no
+ resource, instead just use the path
+
+2003-09-23 Andrew Niefer
+ fix bug 43498 Search with ? fails on first letter of second word
+ -modifications to CSearchPattern.scanForNames()
+ -add getSimpleName to MethodDeclarationPattern
+
+2003-09-19 Andrew Niefer
+ fix bug 43327 Code Complete finds local variables
+ - modified MatchLocator to not report local declarations when boolean is set
+ - modified SearchEngine.search to take an additional parameter "excludeLocalDeclarations"
+
+2003-09-15 Andrew Niefer
+ - modify CSearchPattern to handle escaping wildcards (bug43063)
+ - modify enterFunctionBody and enterMethodBody to fix bug42979
+ - search for Parameter References
+
+2003-09-13 Andrew Niefer
+ -Searching for Typedefs: (bug42902)
+ - modified setElementInfo in BasicSearchResultCollector
+ - added TYPEDEF to ICSearchConstants
+ - modified CSearchPattern & ClassDeclarationPattern
+ - implemented acceptTypedef* in MatchLocator
+ - modified BasicSearchMatch to implement Comparable
+
+2003-09-11 Andrew Niefer
+ - Modified ICSearchResultCollector.createMatch to not take a parent parameter
+ - modified BasicSearchResultCollector to create the parent string from the fully qualified name of the node
+ - modified MatchLocator to keep track of most recent declaration for reporting purposes
+ - modified MatchLocator.report to use the most recent declaration
+
+2003-09-09 Andrew Niefer
+ pattern matching on function parameters:
+ - modified scanForParameters in CSearchPattern
+ - added getParamString in CSearchPattern
+ - modified matchLevel in MethodDeclarationPattern
+
+ Enumeration references
+ - modified acceptEnumeratorReference in MatchLocator
+
+2003-09-05 Andrew Niefer
+ - fix searching for enumerators
+
+2003-09-03 Andrew Niefer
+ - added CLASS_STRUCT to the SearchFor constants
+ - Modified CSearchPattern to handle CLASS_STRUCT
+
+2003-08-26 Bogdan Gheorghe
+ - Added debug tracing statements to SearchEngine
+ - Modified scanForNames in CSearchPattern to treat append
+ a token after "~" to allow for destructors search
+ - Added scope checking to MatchLocator
+ - Added debug trace statements to MatchLocator
+
+2003-08-20 Bogdan Gheorghe
+ - Changed matching and reporting functions to handle nodes
+ of type IElaboratedTypeSpecifier
+
+2003-08-12 Bogdan Gheorghe
+ - Rolled field and variable search patterns into one pattern, in
+ order to allow for qualified var searches
+
+2003-08-11 Andrew Niefer
+ - Added Macro ICSearchConstant
+ - Added acceptMacro to IIndexSearchRequestor and PathCollector
+ - Added MacroDeclaration Pattern
+ - Rolled method and function patterns into one method pattern
+ - Added WorkingCopy support to search
+
+2003-08-08 Bogdan Gheorghe
+ - Added CreateSearchScope to create a search scope out of
+ CElements
+ - Filled out CSearchScope to enable:
+ - adding a project to scope, include referenced projects
+ - adding individual CElements to scope
+
+2003-08-08 Andrew Niefer
+ - add function parameter information to search results
+
+2003-08-06 Andrew Niefer
+ - Create OrPattern which matches for search if any of its constituent patterns matches
+ - modified MatchLocator to support the OrPattern
+ - searching for All occurences now uses the OrPattern
+
+2003-08-01 Andrew Niefer
+ - Modified BasicSearchResultCollector to only accept matches it has not already seen
+ - fixed bug in finding a resource when entering includes
+
+2003-07-29 Andrew Niefer
+ Refactoring Search result collection:
+ - Modified ICSearchResultCollector
+ - Modified IMatch
+ - Modified MatchLocator to reflect changes in ICSearchResultCollector
+ - Created BasicSearchMatch implements IMatch
+ - Created BasicSearchResultCollector implements ICSearchResultCollector
+
+2003-07-28 Andrew Niefer
+ - added abstract CSearchPattern.resetIndexInfo fix bug with searching with globally
+ qualified names
+ - fixed bug in CSearchPattern.matchQualifications to do with globally qualified names
+ - fixed bug in CSearchPattern.createFunctionPattern to do with parameter lists.
+
+2003-07-25 Bogdan Gheorghe
+ - Added refs to PathCollector
+ - Filled in feedIndexRequestor for the new search patterns
+ - Fixed the FunctionDeclarationPattern to work with no parms
+
+2003-07-24 Andrew Niefer
+ - Implemented decodeIndexEntry & matchIndexEntry for all patterns
+ - changed MatchLocator to use a COMPLETE_PARSE.
+
+2003-07-23 Andrew Niefer
+ -Changed ICSearchPattern.matchLevel to take a ISourceElementCallbackDelegate
+ -Changed ICSearchResultCollector.createMatch to take a ISourceElementCallbackDelegate
+ -first implementations of:
+ -CSearchPattern.createFunctionPattern
+ -CSearchPattern.createVariablePattern
+ -CSearchPattern.createMethodPattern
+ -preliminary matching for remaining patterns
+ -handling of remaining parser callbacks
+ -generating index Prefixes for the patterns
+
+2003-07-14 Andrew Niefer
+ -Modified SearchFor instances in ICSearchConstants to more closely match what we are searching for
+ -added IMatch interface, it represents matches found by the search engine, implementors can store
+ whatever information they like, see ICSearchResultCollector::createMatch
+ -added createMatch to the ICSearchResultCollector interface, the result collector is responsible for
+ implementing IMatch to store whatever data they want out of the AST nodes.
+ -added skeleton patterns:
+ search/org/eclipse/cdt/internal/core/search/matching/FieldDeclarationPattern.java
+ search/org/eclipse/cdt/internal/core/search/matching/FunctionDeclarationPattern.java
+ search/org/eclipse/cdt/internal/core/search/matching/MethodDeclarationPattern.java
+ search/org/eclipse/cdt/internal/core/search/matching/NamespaceDeclarationPattern.java
+ search/org/eclipse/cdt/internal/core/search/matching/VariableDeclarationPattern.java
+ -added beginnings of CSearchPattern::create*Pattern functions
+ -modifications to MatchLocator to keep track of current scope
+ -added CSearchPattern::matchQualifications
+
+2003-07-10 Bogdan Gheorghe
+ Provided implementation for ICSearchScope.java, CSearchScope.java
+
+ Hooked up new CWorkspaceScope, PathCollector, PatternSearchJob in SearchEngine.java
+
+ Provided implementation for PatternSearchJob.java - PatternSearchJob is where the first part
+ of the search occurs - using an IndexSelector to filter the indexes, it gets the indexes from
+ the IndexManager and then uses the passed in pattern to find the index matched. Once it finds
+ an index match it adds the file path to the PathCollector.
+
+ Modified CSearchPattern - added support to find index entries.
+
+ Modified ClassDeclarationPattern - added support to decode, match and report
+ index entries.
+
+
+ Added:
+ * search/org/eclipse/cdt/internal/core/search/CWorkspaceScope.java
+ * search/org/eclipse/cdt/internal/core/search/IIndexSearchRequestor.java
+ * search/org/eclipse/cdt/internal/core/search/IndexSelector.java
+ * search/org/eclipse/cdt/internal/core/search/PathCollector.java
+
+ Modified:
+ * search/org/eclipse/cdt/core/search/ICSearchScope.java
+ * search/org/eclipse/cdt/core/search/SearchEngine.java
+ * search/org/eclipse/cdt/internal/core/search/CSearchScope.java
+ * search/org/eclipse/cdt/internal/core/search/PatternSearchJob.java
+ * search/org/eclipse/cdt/internal/core/search/matching/ClassDeclarationPattern.java
+ * search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java
+
+2003-07-04 Andrew Niefer
+ Modified ICSearchConstants to use new nested classes SearchFor and LimitTo instead of int
+ for stronger type safety
+
+ Updated MatchLocator to invoke parser to do actual search.
+
+2003-06-27 Andrew Niefer
+ Modified:
+ search/org.eclipse.cdt.core.search.matching/MatchLocator.java
+ - enter/exitInclusion
+ - enterClassSpecifier
+ search/org.eclipse.cdt.core.search.matching/CSearchPattern.java
+ - createClassPattern
+ - matchesName
+ search/org.eclipse.cdt.core.search.matching/ClassDeclarationPattern.java
+ - matchLevel
+ search/org.eclipse.cdt.core.search/ICSearchPattern.java
+ search/org.eclipse.cdt.core.search/ICSearchResultCollector.java
+ search/org.eclipse.cdt.core.search/SearchEngine.java
+
+2003-06-25 Bogdan Gheorghe
+ Modified:
+ * search/org/eclipse/cdt/core/search/ICSearchConstants.java
+ * search/org/eclipse/cdt/internal/core/search/Utils.java
+ - moved to index/org/eclipse/cdt/internal/core/search/Utils.java
+ * search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java
+ * search/org/eclipse/cdt/internal/core/search/processing/IJob.java
* search/org/eclipse/cdt/internal/core/search/processing/JobManager.java \ No newline at end of file
diff --git a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/core/search/SearchEngine.java b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/core/search/SearchEngine.java
index 17852d4a56a..23f7a3c6c48 100644
--- a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/core/search/SearchEngine.java
+++ b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/core/search/SearchEngine.java
@@ -23,6 +23,7 @@ import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.internal.core.Util;
import org.eclipse.cdt.internal.core.model.CModelManager;
import org.eclipse.cdt.internal.core.model.IWorkingCopy;
+import org.eclipse.cdt.internal.core.search.AcceptMatchOperation;
import org.eclipse.cdt.internal.core.search.CSearchScope;
import org.eclipse.cdt.internal.core.search.CWorkspaceScope;
import org.eclipse.cdt.internal.core.search.PathCollector;
@@ -32,6 +33,7 @@ import org.eclipse.cdt.internal.core.search.matching.CSearchPattern;
import org.eclipse.cdt.internal.core.search.matching.MatchLocator;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.OperationCanceledException;
@@ -164,7 +166,7 @@ public class SearchEngine implements ICSearchConstants{
/* search is starting */
collector.aboutToStart();
-
+ ArrayList matches = new ArrayList();
try{
//initialize progress monitor
IProgressMonitor progressMonitor = collector.getProgressMonitor();
@@ -188,7 +190,8 @@ public class SearchEngine implements ICSearchConstants{
indexManager
),
ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
- subMonitor );
+ subMonitor,
+ null );
subMonitor = (progressMonitor == null ) ? null : new SubProgressMonitor( progressMonitor, 95 );
@@ -199,9 +202,12 @@ public class SearchEngine implements ICSearchConstants{
throw new OperationCanceledException();
//TODO: BOG Filter Working Copies...
- matchLocator.locateMatches( pathCollector.getPaths(), workspace, this.workingCopies);
+ matchLocator.locateMatches( pathCollector.getPaths(), workspace, this.workingCopies, matches);
} finally {
- collector.done();
+ AcceptMatchOperation acceptMatchOp = new AcceptMatchOperation(collector, matches);
+ try {
+ CCorePlugin.getWorkspace().run(acceptMatchOp,null);
+ } catch (CoreException e) {}
}
}
}
diff --git a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/AcceptMatchOperation.java b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/AcceptMatchOperation.java
new file mode 100644
index 00000000000..13e390629ac
--- /dev/null
+++ b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/AcceptMatchOperation.java
@@ -0,0 +1,48 @@
+/*
+ * Created on Oct 20, 2003
+ *
+ * To change the template for this generated file go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+package org.eclipse.cdt.internal.core.search;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.cdt.core.search.ICSearchResultCollector;
+import org.eclipse.cdt.core.search.IMatch;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+/**
+ * @author bgheorgh
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class AcceptMatchOperation implements IWorkspaceRunnable {
+
+ ICSearchResultCollector collector;
+ ArrayList matches;
+ /**
+ * @param collector
+ */
+ public AcceptMatchOperation(ICSearchResultCollector collector, ArrayList matches) {
+ this.collector = collector;
+ this.matches = matches;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.resources.IWorkspaceRunnable#run(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public void run(IProgressMonitor monitor) throws CoreException {
+ Iterator i = matches.iterator();
+ while (i.hasNext()){
+ IMatch match = (IMatch) i.next();
+ collector.acceptMatch(match);
+ }
+ collector.done();
+ }
+
+}
diff --git a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java
index 9da2c6e6290..5244d435c1c 100644
--- a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java
+++ b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java
@@ -18,6 +18,7 @@ import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.Reader;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
@@ -97,6 +98,8 @@ import org.eclipse.core.runtime.Path;
*/
public class MatchLocator implements ISourceElementRequestor, ICSearchConstants {
+
+ ArrayList matchStorage;
public static boolean VERBOSE = false;
/**
@@ -328,8 +331,9 @@ public class MatchLocator implements ISourceElementRequestor, ICSearchConstants
}
}
-
- public void locateMatches( String [] paths, IWorkspace workspace, IWorkingCopy[] workingCopies ){
+
+ public void locateMatches( String [] paths, IWorkspace workspace, IWorkingCopy[] workingCopies,ArrayList matches ){
+ matchStorage = matches;
workspaceRoot = (workspace != null) ? workspace.getRoot() : null;
HashMap wcPaths = new HashMap();
@@ -495,7 +499,9 @@ public class MatchLocator implements ISourceElementRequestor, ICSearchConstants
match = resultCollector.createMatch( currentPath, offset, end, object );
}
if( match != null ){
- resultCollector.acceptMatch( match );
+ //Save till later
+ //resultCollector.acceptMatch( match );
+ matchStorage.add(match);
}
} catch (CoreException e) {
diff --git a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/processing/JobManager.java b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/processing/JobManager.java
index 7f738ba13e6..11f49cb90a1 100644
--- a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/processing/JobManager.java
+++ b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/processing/JobManager.java
@@ -188,8 +188,9 @@ public abstract class JobManager implements Runnable {
public boolean performConcurrentJob(
IJob searchJob,
int waitingPolicy,
- IProgressMonitor progress) {
-
+ IProgressMonitor progress,
+ IJob jobToIgnore) {
+
if (VERBOSE)
JobManager.verbose("STARTING concurrent job - " + searchJob); //$NON-NLS-1$
if (!searchJob.isReadyToRun()) {
@@ -250,7 +251,8 @@ public abstract class JobManager implements Runnable {
}
this.awaitingClients++;
}
- while ((awaitingWork = awaitingJobsCount()) > 0) {
+ while (((awaitingWork = awaitingJobsCount()) > 0)
+ && (!jobShouldBeIgnored(jobToIgnore))) {
if (subProgress != null && subProgress.isCanceled())
throw new OperationCanceledException();
currentJob = currentJob();
@@ -295,6 +297,20 @@ public abstract class JobManager implements Runnable {
return status;
}
+ /**
+ * @param jobToIgnore
+ * @return
+ */
+ private boolean jobShouldBeIgnored(IJob jobToIgnore) {
+ if (jobToIgnore == null)
+ return false;
+
+ if (currentJob() == jobToIgnore)
+ return true;
+
+ return false;
+ }
+
public abstract String processName();
public synchronized void request(IJob job) {
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java
index 02da45d92da..79f62ccf2b1 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java
@@ -27,6 +27,7 @@ import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.actions.WorkspaceModifyOperation;
@@ -36,7 +37,7 @@ import org.eclipse.ui.actions.WorkspaceModifyOperation;
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
-public class CSearchOperation extends WorkspaceModifyOperation implements ICSearchConstants{
+public class CSearchOperation implements IRunnableWithProgress,ICSearchConstants{
public CSearchOperation(IWorkspace workspace, String pattern, boolean caseSensitive, List searchFor, LimitTo limitTo, ICSearchScope scope, String scopeDescription, CSearchResultCollector collector) {
this( workspace, limitTo, scope, scopeDescription, collector );
_stringPattern = pattern;
@@ -56,8 +57,7 @@ public class CSearchOperation extends WorkspaceModifyOperation implements ICSear
/* (non-Javadoc)
* @see org.eclipse.ui.actions.WorkspaceModifyOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
*/
- protected void execute(IProgressMonitor monitor)
- throws CoreException, InvocationTargetException, InterruptedException
+ public void run(IProgressMonitor monitor)throws InvocationTargetException
{
_collector.setProgressMonitor( monitor );
@@ -79,6 +79,8 @@ public class CSearchOperation extends WorkspaceModifyOperation implements ICSear
}
engine.search( _workspace, pattern, _scope, _collector, false );
+
+
}
/**
@@ -147,5 +149,6 @@ public class CSearchOperation extends WorkspaceModifyOperation implements ICSear
private LimitTo _limitTo;
private List _searchFor;
+
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchResultCollector.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchResultCollector.java
index 3b42c412ec0..60bfb127698 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchResultCollector.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchResultCollector.java
@@ -54,6 +54,7 @@ public class CSearchResultCollector extends BasicSearchResultCollector{
_matchCount = 0;
_view = SearchUI.getSearchResultView();
+
CSearchResultLabelProvider labelProvider = new CSearchResultLabelProvider();
labelProvider.setOrder( CSearchResultLabelProvider.SHOW_PATH );
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java
index 145c2d90b43..118362f3d0a 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java
@@ -513,7 +513,7 @@ public class CCompletionProcessor implements IContentAssistProcessor {
//Get file's dependencies
try {
IndexManager indexMan = CCorePlugin.getDefault().getCoreModel().getIndexManager();
- indexMan.performConcurrentJob(new DependencyQueryJob(project, (IFile)actualFile, indexMan, dependencies), ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, null);
+ indexMan.performConcurrentJob(new DependencyQueryJob(project, (IFile)actualFile, indexMan, dependencies), ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, null, null);
} catch (Exception e) {
}
}

Back to the top