Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/PDOMSearchPatternQuery.java')
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/PDOMSearchPatternQuery.java43
1 files changed, 10 insertions, 33 deletions
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/PDOMSearchPatternQuery.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/PDOMSearchPatternQuery.java
index d65d57cef05..3f1e31c2f22 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/PDOMSearchPatternQuery.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/PDOMSearchPatternQuery.java
@@ -11,18 +11,12 @@
package org.eclipse.cdt.internal.ui.search;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.dom.IPDOM;
import org.eclipse.cdt.core.dom.ast.IBinding;
-import org.eclipse.cdt.core.model.CoreModel;
+import org.eclipse.cdt.core.model.ICElement;
import org.eclipse.cdt.core.model.ICProject;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.cdt.internal.core.pdom.dom.PDOMBinding;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
@@ -52,50 +46,32 @@ public class PDOMSearchPatternQuery extends PDOMSearchQuery {
| FIND_UNION | FIND_METHOD | FIND_FIELD | FIND_ENUM
| FIND_ENUMERATOR | FIND_NAMESPACE | FIND_TYPEDEF | FIND_MACRO;
- private IResource[] scope;
private String scopeDesc;
private String pattern;
public PDOMSearchPatternQuery(
- IResource[] scope,
+ ICElement[] scope,
String scopeDesc,
String pattern,
boolean isCaseSensitive,
int flags) {
- super(flags);
- this.scope = scope;
+ super(scope, flags);
this.scopeDesc = scopeDesc;
this.pattern = pattern;
}
public IStatus run(IProgressMonitor monitor) throws OperationCanceledException {
- // get the list of projects we need to search
- List projects = new ArrayList();
- for (int i = 0; i < scope.length; ++i) {
- if (scope[i] instanceof IWorkspaceRoot) {
- IProject[] p = ((IWorkspaceRoot)scope[i]).getProjects();
- for (int j = 0; j < p.length; ++j)
- projects.add(p[j]);
- } else
- projects.add(scope[i].getProject());
- }
-
try {
- for (Iterator iproject = projects.iterator(); iproject.hasNext();)
- searchProject((IProject)iproject.next(), monitor);
+ for (int i = 0; i < projects.length; ++i)
+ searchProject(projects[i], monitor);
return Status.OK_STATUS;
} catch (CoreException e) {
return e.getStatus();
}
}
- private void searchProject(IProject project, IProgressMonitor monitor) throws CoreException {
- if (!CoreModel.hasCNature(project))
- // Not a CDT project
- return;
-
- ICProject cproject = CoreModel.getDefault().create(project);
- IPDOM pdom = CCorePlugin.getPDOMManager().getPDOM(cproject);
+ private void searchProject(ICProject project, IProgressMonitor monitor) throws CoreException {
+ IPDOM pdom = CCorePlugin.getPDOMManager().getPDOM(project);
try {
pdom.acquireReadLock();
@@ -106,7 +82,8 @@ public class PDOMSearchPatternQuery extends PDOMSearchQuery {
try {
IBinding[] bindings = pdom.findBindings(pattern);
for (int i = 0; i < bindings.length; ++i) {
- createMatches(bindings[i]);
+ PDOMBinding pdomBinding = (PDOMBinding)bindings[i];
+ createMatches(pdomBinding.getLinkage().getLanguage(), pdomBinding);
}
} finally {
pdom.releaseReadLock();

Back to the top