[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] Search Refactoring: bug 51250 & bug 50983
|
Search:
- fixed some warnings
- moved OrPattern from org.eclipse.cdt.internal.search.matching to
org.eclipse.cdt.search (50983)
- changed SearchEngine.search and MatchLocator.locateMatches to throw
InterruptedException when cancelled. (51250)
-changed calls to search to handle the InterruptedException
tested on windows
-Andrew
Index: search/ChangeLog
===================================================================
retrieving revision 1.43
diff -u -r1.43 ChangeLog
--- search/ChangeLog 15 Feb 2004 23:30:53 -0000 1.43
+++ search/ChangeLog 16 Feb 2004 16:32:23 -0000
@@ -1,3 +1,9 @@
+2004-02-13 Andrew Niefer
+ fixed a couple of warnings
+ moved OrPattern from org.eclipse.cdt.internal.core.search.matching to org.eclipse.cdt.core.search
+ changed SearchEngine.search & MatchLocator.locateMatches to throw InterruptedException when cancelled
+ updates calls to search to handle InterruptedException
+
2004-02-13 Bogdan Gheorghe
- Added error handling to MatchLocator.locateMatches to handle possible
parser failures.
Index: search/org/eclipse/cdt/core/search/BasicSearchMatch.java
===================================================================
retrieving revision 1.8
diff -u -r1.8 BasicSearchMatch.java
--- search/org/eclipse/cdt/core/search/BasicSearchMatch.java 1 Oct 2003 19:55:00 -0000 1.8
+++ search/org/eclipse/cdt/core/search/BasicSearchMatch.java 16 Feb 2004 16:32:23 -0000
@@ -59,8 +59,6 @@
}
BasicSearchMatch match = (BasicSearchMatch)obj;
- IPath path = getLocation();
-
if( startOffset != match.getStartOffset() || endOffset != match.getEndOffset() )
return false;
Index: search/org/eclipse/cdt/core/search/SearchEngine.java
===================================================================
retrieving revision 1.12
diff -u -r1.12 SearchEngine.java
--- search/org/eclipse/cdt/core/search/SearchEngine.java 15 Jan 2004 18:06:14 -0000 1.12
+++ search/org/eclipse/cdt/core/search/SearchEngine.java 16 Feb 2004 16:32:23 -0000
@@ -36,7 +36,6 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.SubProgressMonitor;
@@ -109,7 +108,6 @@
*/
public static ICSearchScope createCFileSearchScope(IFile sourceFile, ArrayList elements) {
CSearchScope scope = new CSearchScope();
- HashSet visitedProjects = new HashSet(2);
if (sourceFile != null){
//Add the source file and project
@@ -155,7 +153,7 @@
* @param _scope
* @param _collector
*/
- public void search(IWorkspace workspace, ICSearchPattern pattern, ICSearchScope scope, ICSearchResultCollector collector, boolean excludeLocalDeclarations) {
+ public void search(IWorkspace workspace, ICSearchPattern pattern, ICSearchScope scope, ICSearchResultCollector collector, boolean excludeLocalDeclarations) throws InterruptedException {
if( VERBOSE ) {
System.out.println("Searching for " + pattern + " in " + scope); //$NON-NLS-1$//$NON-NLS-2$
}
@@ -199,7 +197,7 @@
matchLocator.setShouldExcludeLocalDeclarations( excludeLocalDeclarations );
if( progressMonitor != null && progressMonitor.isCanceled() )
- throw new OperationCanceledException();
+ throw new InterruptedException();
matchLocator.locateMatches( pathCollector.getPaths(), workspace, this.workingCopies, matches);
Index: search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java
===================================================================
retrieving revision 1.34
diff -u -r1.34 CSearchPattern.java
--- search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java 9 Feb 2004 15:46:35 -0000 1.34
+++ search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java 16 Feb 2004 16:32:23 -0000
@@ -45,6 +45,7 @@
import org.eclipse.cdt.core.parser.ast.IASTParameterDeclaration;
import org.eclipse.cdt.core.parser.ast.IASTSimpleTypeSpecifier;
import org.eclipse.cdt.core.parser.ast.IASTTypeSpecifier;
+import org.eclipse.cdt.core.search.*;
import org.eclipse.cdt.core.search.ICSearchConstants;
import org.eclipse.cdt.core.search.ICSearchPattern;
import org.eclipse.cdt.core.search.ICSearchScope;
Index: search/org/eclipse/cdt/internal/core/search/matching/FieldDeclarationPattern.java
===================================================================
retrieving revision 1.10
diff -u -r1.10 FieldDeclarationPattern.java
--- search/org/eclipse/cdt/internal/core/search/matching/FieldDeclarationPattern.java 18 Sep 2003 15:15:08 -0000 1.10
+++ search/org/eclipse/cdt/internal/core/search/matching/FieldDeclarationPattern.java 16 Feb 2004 16:32:23 -0000
@@ -189,7 +189,6 @@
private char [][] decodedQualifications;
private char [] simpleName;
private char [] decodedSimpleName;
- private char decodedType;
private SearchFor searchFor;
}
Index: search/org/eclipse/cdt/internal/core/search/matching/IncludePattern.java
===================================================================
retrieving revision 1.1
diff -u -r1.1 IncludePattern.java
--- search/org/eclipse/cdt/internal/core/search/matching/IncludePattern.java 26 Sep 2003 17:53:31 -0000 1.1
+++ search/org/eclipse/cdt/internal/core/search/matching/IncludePattern.java 16 Feb 2004 16:32:23 -0000
@@ -41,7 +41,6 @@
*/
protected void decodeIndexEntry(IEntryResult entryResult) {
char[] word = entryResult.getWord();
- int size = word.length;
int firstSlash = CharOperation.indexOf( SEPARATOR, word, 0 );
Index: search/org/eclipse/cdt/internal/core/search/matching/MacroDeclarationPattern.java
===================================================================
retrieving revision 1.2
diff -u -r1.2 MacroDeclarationPattern.java
--- search/org/eclipse/cdt/internal/core/search/matching/MacroDeclarationPattern.java 12 Aug 2003 20:20:04 -0000 1.2
+++ search/org/eclipse/cdt/internal/core/search/matching/MacroDeclarationPattern.java 16 Feb 2004 16:32:24 -0000
@@ -86,7 +86,6 @@
*/
protected void decodeIndexEntry(IEntryResult entryResult) {
char[] word = entryResult.getWord();
- int size = word.length;
int firstSlash = CharOperation.indexOf( SEPARATOR, word, 0 );
Index: search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java
===================================================================
retrieving revision 1.43
diff -u -r1.43 MatchLocator.java
--- search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java 15 Feb 2004 23:30:53 -0000 1.43
+++ search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java 16 Feb 2004 16:32:24 -0000
@@ -89,7 +89,6 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.core.runtime.Path;
@@ -335,7 +334,7 @@
}
- public void locateMatches( String [] paths, IWorkspace workspace, IWorkingCopy[] workingCopies,ArrayList matches ){
+ public void locateMatches( String [] paths, IWorkspace workspace, IWorkingCopy[] workingCopies,ArrayList matches ) throws InterruptedException{
matchStorage = matches;
workspaceRoot = (workspace != null) ? workspace.getRoot() : null;
@@ -368,7 +367,7 @@
for( int i = 0; i < length; i++ ){
if( progressMonitor != null ) {
if( progressMonitor.isCanceled() ){
- throw new OperationCanceledException();
+ throw new InterruptedException();
} else {
progressMonitor.worked( 1 );
}
@@ -482,7 +481,7 @@
if( node instanceof IASTReference ){
IASTReference reference = (IASTReference) node;
offset = reference.getOffset();
- end = offset + reference.getName().length();;
+ end = offset + reference.getName().length();
if (VERBOSE)
MatchLocator.verbose("Report Match: " + reference.getName());
} else if( node instanceof IASTOffsetableNamedElement ){
@@ -491,7 +490,7 @@
: offsetableElement.getStartingOffset();
end = offsetableElement.getNameEndOffset();
if( end == 0 ){
- end = offset + offsetableElement.getName().length();;
+ end = offset + offsetableElement.getName().length();
}
if (VERBOSE)
Index: search/org/eclipse/cdt/internal/core/search/matching/OrPattern.java
===================================================================
diff -N search/org/eclipse/cdt/internal/core/search/matching/OrPattern.java
--- search/org/eclipse/cdt/internal/core/search/matching/OrPattern.java 7 Aug 2003 14:52:18 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- *
- * Contributors:
- * IBM Corp. - Rational Software - initial implementation
- ******************************************************************************/
-/*
- * Created on Aug 6, 2003
- */
-package org.eclipse.cdt.internal.core.search.matching;
-
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.LinkedList;
-
-import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate;
-import org.eclipse.cdt.core.search.ICSearchPattern;
-import org.eclipse.cdt.core.search.ICSearchScope;
-import org.eclipse.cdt.internal.core.index.IEntryResult;
-import org.eclipse.cdt.internal.core.index.impl.IndexInput;
-import org.eclipse.cdt.internal.core.search.IIndexSearchRequestor;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-
-/**
- * @author aniefer
- *
- * To change the template for this generated type comment go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-public class OrPattern extends CSearchPattern {
-
- public OrPattern(){
- super();
- patterns = new LinkedList();
- }
-
- /**
- * @param pattern
- */
- public void addPattern( ICSearchPattern pattern) {
- if( pattern != null )
- patterns.add( pattern );
- }
-
- public int matchLevel(ISourceElementCallbackDelegate node, LimitTo limit ) {
- Iterator iter = patterns.iterator();
- int size = patterns.size();
-
- int result = IMPOSSIBLE_MATCH;
-
- for( int i = 0; i < size; i++ ){
- ICSearchPattern pattern = (ICSearchPattern) iter.next();
- result = pattern.matchLevel( node, limit );
- if( result != IMPOSSIBLE_MATCH )
- break;
- }
-
- return result;
- }
-
- public boolean canAccept(LimitTo limit) {
- if( limit == ALL_OCCURRENCES ){
- return true;
- }
-
- Iterator iter = patterns.iterator();
- int size = patterns.size();
-
- for( int i = 0; i < size; i++ ){
- ICSearchPattern pattern = (ICSearchPattern) iter.next();
- if( pattern.canAccept( limit ) )
- return true;
- }
-
- return false;
- }
-
- public void findIndexMatches(IndexInput input, IIndexSearchRequestor requestor, int detailLevel, IProgressMonitor progressMonitor, ICSearchScope scope) throws IOException {
- Iterator iter = patterns.iterator();
- int size = patterns.size();
-
- for( int i = 0; i < size; i++ ){
- CSearchPattern pattern = (CSearchPattern) iter.next();
- pattern.findIndexMatches( input, requestor, detailLevel, progressMonitor, scope );
- }
- }
-
- public void feedIndexRequestor( IIndexSearchRequestor requestor, int detailLevel, int[] references, IndexInput input, ICSearchScope scope )
- throws IOException {
- //never called for OrPattern
- }
-
- protected void resetIndexInfo() {
- //never called for OrPattern
- }
-
- protected void decodeIndexEntry(IEntryResult entryResult) {
- //never called for OrPattern
- }
-
- public char[] indexEntryPrefix() {
- //never called for OrPattern
- return null;
- }
-
- protected boolean matchIndexEntry() {
- //never called for OrPattern
- return false;
- }
-
- private LinkedList patterns;
-
-}
Index: search/org/eclipse/cdt/core/search/OrPattern.java
===================================================================
RCS file: search/org/eclipse/cdt/core/search/OrPattern.java
diff -N search/org/eclipse/cdt/core/search/OrPattern.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ search/org/eclipse/cdt/core/search/OrPattern.java 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Copyright (c) 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ *
+ * Contributors:
+ * IBM Corp. - Rational Software - initial implementation
+ ******************************************************************************/
+/*
+ * Created on Aug 6, 2003
+ */
+package org.eclipse.cdt.core.search;
+
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.LinkedList;
+
+import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate;
+import org.eclipse.cdt.internal.core.index.IEntryResult;
+import org.eclipse.cdt.internal.core.index.impl.IndexInput;
+import org.eclipse.cdt.internal.core.search.IIndexSearchRequestor;
+import org.eclipse.cdt.internal.core.search.matching.CSearchPattern;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+
+/**
+ * @author aniefer
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class OrPattern extends CSearchPattern {
+
+ public OrPattern(){
+ super();
+ patterns = new LinkedList();
+ }
+
+ /**
+ * @param pattern
+ */
+ public void addPattern( ICSearchPattern pattern) {
+ if( pattern != null )
+ patterns.add( pattern );
+ }
+
+ public int matchLevel(ISourceElementCallbackDelegate node, LimitTo limit ) {
+ Iterator iter = patterns.iterator();
+ int size = patterns.size();
+
+ int result = IMPOSSIBLE_MATCH;
+
+ for( int i = 0; i < size; i++ ){
+ ICSearchPattern pattern = (ICSearchPattern) iter.next();
+ result = pattern.matchLevel( node, limit );
+ if( result != IMPOSSIBLE_MATCH )
+ break;
+ }
+
+ return result;
+ }
+
+ public boolean canAccept(LimitTo limit) {
+ if( limit == ALL_OCCURRENCES ){
+ return true;
+ }
+
+ Iterator iter = patterns.iterator();
+ int size = patterns.size();
+
+ for( int i = 0; i < size; i++ ){
+ ICSearchPattern pattern = (ICSearchPattern) iter.next();
+ if( pattern.canAccept( limit ) )
+ return true;
+ }
+
+ return false;
+ }
+
+ public void findIndexMatches(IndexInput input, IIndexSearchRequestor requestor, int detailLevel, IProgressMonitor progressMonitor, ICSearchScope scope) throws IOException {
+ Iterator iter = patterns.iterator();
+ int size = patterns.size();
+
+ for( int i = 0; i < size; i++ ){
+ CSearchPattern pattern = (CSearchPattern) iter.next();
+ pattern.findIndexMatches( input, requestor, detailLevel, progressMonitor, scope );
+ }
+ }
+
+ public void feedIndexRequestor( IIndexSearchRequestor requestor, int detailLevel, int[] references, IndexInput input, ICSearchScope scope )
+ throws IOException {
+ //never called for OrPattern
+ }
+
+ protected void resetIndexInfo() {
+ //never called for OrPattern
+ }
+
+ protected void decodeIndexEntry(IEntryResult entryResult) {
+ //never called for OrPattern
+ }
+
+ public char[] indexEntryPrefix() {
+ //never called for OrPattern
+ return null;
+ }
+
+ protected boolean matchIndexEntry() {
+ //never called for OrPattern
+ return false;
+ }
+
+ private LinkedList patterns;
+
+}
Index: ChangeLog
===================================================================
retrieving revision 1.185
diff -u -r1.185 ChangeLog
--- ChangeLog 13 Feb 2004 15:40:08 -0000 1.185
+++ ChangeLog 16 Feb 2004 16:28:21 -0000
@@ -1,3 +1,6 @@
+2004-02-13 Andrew Niefer
+ updated tests using search to handle InterruptedExcpetion
+
2004-02-12 Andrew Niefer
UnCommented CompleteParseASTTest.testBug47628
Added CompleteParseASTTest.testBug47636
Index: indexer/org/eclipse/cdt/core/indexer/tests/DependencyTests.java
===================================================================
retrieving revision 1.7
diff -u -r1.7 DependencyTests.java
--- indexer/org/eclipse/cdt/core/indexer/tests/DependencyTests.java 16 Feb 2004 03:45:20 -0000 1.7
+++ indexer/org/eclipse/cdt/core/indexer/tests/DependencyTests.java 16 Feb 2004 16:28:21 -0000
@@ -650,9 +650,12 @@
}
}
- protected void search(IWorkspace workspace, ICSearchPattern pattern, ICSearchScope scope, ICSearchResultCollector collector) {
- searchEngine.search( workspace, pattern, scope, collector, false );
- }
+ protected void search(IWorkspace workspace, ICSearchPattern pattern, ICSearchScope scope, ICSearchResultCollector collector) {
+ try {
+ searchEngine.search( workspace, pattern, scope, collector, false );
+ } catch (InterruptedException e) {
+ }
+ }
/*
* Utils
Index: search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java
===================================================================
retrieving revision 1.16
diff -u -r1.16 BaseSearchTest.java
--- search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java 16 Feb 2004 03:45:20 -0000 1.16
+++ search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java 16 Feb 2004 16:28:26 -0000
@@ -122,7 +122,11 @@
}
protected void search(IWorkspace workspace, ICSearchPattern pattern, ICSearchScope scope, ICSearchResultCollector collector) {
- searchEngine.search( workspace, pattern, scope, collector, false );
+ try {
+ searchEngine.search( workspace, pattern, scope, collector, false );
+ } catch (InterruptedException e) {
+
+ }
}
}
Index: search/org/eclipse/cdt/core/search/tests/ClassDeclarationPatternTests.java
===================================================================
retrieving revision 1.16
diff -u -r1.16 ClassDeclarationPatternTests.java
--- search/org/eclipse/cdt/core/search/tests/ClassDeclarationPatternTests.java 19 Sep 2003 16:00:44 -0000 1.16
+++ search/org/eclipse/cdt/core/search/tests/ClassDeclarationPatternTests.java 16 Feb 2004 16:28:26 -0000
@@ -19,10 +19,10 @@
import org.eclipse.cdt.core.search.ICSearchConstants;
import org.eclipse.cdt.core.search.ICSearchPattern;
import org.eclipse.cdt.core.search.IMatch;
+import org.eclipse.cdt.core.search.OrPattern;
import org.eclipse.cdt.core.search.SearchEngine;
import org.eclipse.cdt.internal.core.CharOperation;
import org.eclipse.cdt.internal.core.search.matching.ClassDeclarationPattern;
-import org.eclipse.cdt.internal.core.search.matching.OrPattern;
/**
Index: search/org/eclipse/cdt/core/search/tests/OtherPatternTests.java
===================================================================
retrieving revision 1.24
diff -u -r1.24 OtherPatternTests.java
--- search/org/eclipse/cdt/core/search/tests/OtherPatternTests.java 16 Feb 2004 05:02:21 -0000 1.24
+++ search/org/eclipse/cdt/core/search/tests/OtherPatternTests.java 16 Feb 2004 16:28:26 -0000
@@ -22,13 +22,13 @@
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.OrPattern;
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.cdt.testplugin.CTestPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Path;
@@ -327,7 +327,10 @@
ArrayList matchesList = new ArrayList();
MatchLocator matchLocator = new MatchLocator( pattern, resultCollector, scope, monitor );
- matchLocator.locateMatches( new String [] { path }, workspace, null, matchesList);
+ try {
+ matchLocator.locateMatches( new String [] { path }, workspace, null, matchesList);
+ } catch (InterruptedException e1) {
+ }
AcceptMatchOperation acceptMatchOp = new AcceptMatchOperation(resultCollector, matchesList);
try {
Index: ChangeLog
===================================================================
retrieving revision 1.273
diff -u -r1.273 ChangeLog
--- ChangeLog 16 Feb 2004 03:28:25 -0000 1.273
+++ ChangeLog 16 Feb 2004 16:30:34 -0000
@@ -1,3 +1,6 @@
+2004-02-13 Andrew Niefer
+ Updated calls to search to handle InterruptedException
+
2004-02-15 Alain Magloire
Special working set for the C/C++ Celements
Index: src/org/eclipse/cdt/internal/ui/editor/OpenDeclarationsAction.java
===================================================================
retrieving revision 1.5
diff -u -r1.5 OpenDeclarationsAction.java
--- src/org/eclipse/cdt/internal/ui/editor/OpenDeclarationsAction.java 5 Feb 2004 19:53:54 -0000 1.5
+++ src/org/eclipse/cdt/internal/ui/editor/OpenDeclarationsAction.java 16 Feb 2004 16:30:39 -0000
@@ -16,8 +16,8 @@
import org.eclipse.cdt.core.search.ICSearchConstants;
import org.eclipse.cdt.core.search.ICSearchScope;
import org.eclipse.cdt.core.search.IMatch;
+import org.eclipse.cdt.core.search.OrPattern;
import org.eclipse.cdt.core.search.SearchEngine;
-import org.eclipse.cdt.internal.core.search.matching.OrPattern;
import org.eclipse.cdt.internal.ui.dialogs.ElementListSelectionDialog;
import org.eclipse.cdt.internal.ui.util.EditorUtility;
import org.eclipse.cdt.ui.CSearchResultLabelProvider;
@@ -124,55 +124,59 @@
* @see IAction#actionPerformed
*/
public void run() {
- final String selectedText = getSelectedStringFromEditor();
-
- if(selectedText == null) {
- return;
- }
-
- final ArrayList elementsFound = new ArrayList();
+ final String selectedText = getSelectedStringFromEditor();
+
+ if(selectedText == null) {
+ return;
+ }
+
+ final ArrayList elementsFound = new ArrayList();
- IRunnableWithProgress runnable = new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) {
- BasicSearchResultCollector resultCollector = new BasicSearchResultCollector(monitor);
- IWorkingCopyManager fManager = CUIPlugin.getDefault().getWorkingCopyManager();
- ITranslationUnit unit = fManager.getWorkingCopy(fEditor.getEditorInput());
+ IRunnableWithProgress runnable = new IRunnableWithProgress()
+ {
+ public void run(IProgressMonitor monitor) {
+ BasicSearchResultCollector resultCollector = new BasicSearchResultCollector(monitor);
+ IWorkingCopyManager fManager = CUIPlugin.getDefault().getWorkingCopyManager();
+ ITranslationUnit unit = fManager.getWorkingCopy(fEditor.getEditorInput());
ICElement[] projectScopeElement = new ICElement[1];
projectScopeElement[0] = unit.getCProject();//(ICElement)currentScope.getCProject();
ICSearchScope scope = SearchEngine.createCSearchScope(projectScopeElement, true);
OrPattern orPattern = new OrPattern();
// search for global variables, functions, classes, structs, unions, enums and macros
- orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.VAR, ICSearchConstants.DECLARATIONS, true ));
- orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.FUNCTION, ICSearchConstants.DECLARATIONS, true ));
- orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.METHOD, ICSearchConstants.DECLARATIONS, true ));
- orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.TYPE, ICSearchConstants.DECLARATIONS, true ));
- orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.ENUM, ICSearchConstants.DECLARATIONS, true ));
- orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.FIELD, ICSearchConstants.DECLARATIONS, true ));
- orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.NAMESPACE, ICSearchConstants.DECLARATIONS, true ));
- orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.MACRO, ICSearchConstants.DECLARATIONS, true ));
- orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.TYPEDEF, ICSearchConstants.DECLARATIONS, true ));
- searchEngine.search(CUIPlugin.getWorkspace(), orPattern, scope, resultCollector, true);
- elementsFound.addAll(resultCollector.getSearchResults());
+ orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.VAR, ICSearchConstants.DECLARATIONS, true ));
+ orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.FUNCTION, ICSearchConstants.DECLARATIONS, true ));
+ orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.METHOD, ICSearchConstants.DECLARATIONS, true ));
+ orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.TYPE, ICSearchConstants.DECLARATIONS, true ));
+ orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.ENUM, ICSearchConstants.DECLARATIONS, true ));
+ orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.FIELD, ICSearchConstants.DECLARATIONS, true ));
+ orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.NAMESPACE, ICSearchConstants.DECLARATIONS, true ));
+ orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.MACRO, ICSearchConstants.DECLARATIONS, true ));
+ orPattern.addPattern(SearchEngine.createSearchPattern( selectedText, ICSearchConstants.TYPEDEF, ICSearchConstants.DECLARATIONS, true ));
+ try {
+ searchEngine.search(CUIPlugin.getWorkspace(), orPattern, scope, resultCollector, true);
+ } catch (InterruptedException e) {
+ }
+ elementsFound.addAll(resultCollector.getSearchResults());
}
- };
-
- try {
- ProgressMonitorDialog progressMonitor = new ProgressMonitorDialog(getShell());
- progressMonitor.run(true, true, runnable);
-
- if (elementsFound.isEmpty() == true) {
- return;
- }
+ };
- IMatch selected= selectCElement(elementsFound, getShell(), fDialogTitle, fDialogMessage);
- if (selected != null) {
- open(selected);
- return;
- }
- } catch(Exception x) {
- CUIPlugin.getDefault().log(x);
- }
+ try {
+ ProgressMonitorDialog progressMonitor = new ProgressMonitorDialog(getShell());
+ progressMonitor.run(true, true, runnable);
+
+ if (elementsFound.isEmpty() == true) {
+ return;
+ }
+
+ IMatch selected= selectCElement(elementsFound, getShell(), fDialogTitle, fDialogMessage);
+ if (selected != null) {
+ open(selected);
+ return;
+ }
+ } catch(Exception x) {
+ CUIPlugin.getDefault().log(x);
+ }
}
protected Shell getShell() {
Index: src/org/eclipse/cdt/internal/ui/opentype/TypeSearchOperation.java
===================================================================
retrieving revision 1.2
diff -u -r1.2 TypeSearchOperation.java
--- src/org/eclipse/cdt/internal/ui/opentype/TypeSearchOperation.java 5 Feb 2004 20:39:07 -0000 1.2
+++ src/org/eclipse/cdt/internal/ui/opentype/TypeSearchOperation.java 16 Feb 2004 16:30:40 -0000
@@ -12,8 +12,8 @@
import org.eclipse.cdt.core.search.ICSearchConstants;
import org.eclipse.cdt.core.search.ICSearchScope;
+import org.eclipse.cdt.core.search.OrPattern;
import org.eclipse.cdt.core.search.SearchEngine;
-import org.eclipse.cdt.internal.core.search.matching.OrPattern;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.OperationCanceledException;
Index: src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java
===================================================================
retrieving revision 1.9
diff -u -r1.9 CSearchOperation.java
--- src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java 27 Oct 2003 20:57:47 -0000 1.9
+++ src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java 16 Feb 2004 16:30:40 -0000
@@ -20,16 +20,14 @@
import org.eclipse.cdt.core.search.ICSearchConstants;
import org.eclipse.cdt.core.search.ICSearchPattern;
import org.eclipse.cdt.core.search.ICSearchScope;
+import org.eclipse.cdt.core.search.OrPattern;
import org.eclipse.cdt.core.search.SearchEngine;
-import org.eclipse.cdt.internal.core.search.matching.OrPattern;
import org.eclipse.cdt.internal.ui.CPluginImages;
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;
/**
* @author aniefer
@@ -78,9 +76,10 @@
pattern = SearchEngine.createSearchPattern( _stringPattern, (SearchFor)iter.next(), _limitTo, _caseSensitive );
}
- engine.search( _workspace, pattern, _scope, _collector, false );
-
-
+ try {
+ engine.search( _workspace, pattern, _scope, _collector, false );
+ } catch (InterruptedException e) {
+ }
}
/**
Index: src/org/eclipse/cdt/internal/ui/text/contentassist/CCompletionProcessor.java
===================================================================
retrieving revision 1.11
diff -u -r1.11 CCompletionProcessor.java
--- src/org/eclipse/cdt/internal/ui/text/contentassist/CCompletionProcessor.java 10 Feb 2004 16:06:10 -0000 1.11
+++ src/org/eclipse/cdt/internal/ui/text/contentassist/CCompletionProcessor.java 16 Feb 2004 16:30:41 -0000
@@ -20,8 +20,8 @@
import org.eclipse.cdt.core.search.BasicSearchResultCollector;
import org.eclipse.cdt.core.search.ICSearchConstants;
import org.eclipse.cdt.core.search.ICSearchScope;
+import org.eclipse.cdt.core.search.OrPattern;
import org.eclipse.cdt.core.search.SearchEngine;
-import org.eclipse.cdt.internal.core.search.matching.OrPattern;
import org.eclipse.cdt.internal.corext.template.ContextType;
import org.eclipse.cdt.internal.corext.template.ContextTypeRegistry;
import org.eclipse.cdt.internal.corext.template.ITemplateEditor;
@@ -546,7 +546,10 @@
orPattern.addPattern(SearchEngine.createSearchPattern(
searchPrefix, ICSearchConstants.FUNCTION, ICSearchConstants.DECLARATIONS, false ));
}
- searchEngine.search(CUIPlugin.getWorkspace(), orPattern, scope, searchResultCollector, true);
+ try {
+ searchEngine.search(CUIPlugin.getWorkspace(), orPattern, scope, searchResultCollector, true);
+ } catch (InterruptedException e) {
+ }
elementsFound.addAll(searchResultCollector.getSearchResults());
sendResultsToCollector(elementsFound.iterator(), offset, length, prefix );
Index: src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java
===================================================================
retrieving revision 1.11
diff -u -r1.11 NewClassWizardPage.java
--- src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java 15 Jan 2004 18:05:58 -0000 1.11
+++ src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java 16 Feb 2004 16:30:43 -0000
@@ -449,7 +449,10 @@
elements[0] = cProject;
ICSearchScope scope = SearchEngine.createCSearchScope(elements, true);
- searchEngine.search(CUIPlugin.getWorkspace(), pattern, scope, resultCollector, false);
+ try {
+ searchEngine.search(CUIPlugin.getWorkspace(), pattern, scope, resultCollector, false);
+ } catch (InterruptedException e) {
+ }
elementsFound.addAll(resultCollector.getSearchResults());
}