Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] fix bug43327 Code Complete finds local variables

core : 
  - modified MatchLocator to not report local declarations when boolean is 
set
  - modified SearchEngine.search to take an additional parameter 
"excludeLocalDeclarations"

core.tests:
  - modified resources/cfiles/CompletionProposalsTestStart.cpp
  - modified CompletionProposalsTest.testCompletionProposals
  - updated calls to SearchEngine.search

ui:
  - update calls to SearchEngine.search.  CodeCompletion passes true for 
excludeLocalDeclarations

Andrew

Index: search/ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/search/ChangeLog,v
retrieving revision 1.25
diff -u -r1.25 ChangeLog
--- search/ChangeLog	18 Sep 2003 15:15:08 -0000	1.25
+++ search/ChangeLog	19 Sep 2003 19:52:35 -0000
@@ -1,3 +1,8 @@
+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
Index: search/org/eclipse/cdt/core/search/SearchEngine.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/search/org/eclipse/cdt/core/search/SearchEngine.java,v
retrieving revision 1.8
diff -u -r1.8 SearchEngine.java
--- search/org/eclipse/cdt/core/search/SearchEngine.java	5 Sep 2003 18:31:39 -0000	1.8
+++ search/org/eclipse/cdt/core/search/SearchEngine.java	19 Sep 2003 19:52:35 -0000
@@ -113,7 +113,7 @@
 	 * @param _scope
 	 * @param _collector
 	 */
-	public void search(IWorkspace workspace, ICSearchPattern pattern, ICSearchScope scope, ICSearchResultCollector collector) {
+	public void search(IWorkspace workspace, ICSearchPattern pattern, ICSearchScope scope, ICSearchResultCollector collector, boolean excludeLocalDeclarations) {
 		if( VERBOSE ) {
 			System.out.println("Searching for " + pattern + " in " + scope); //$NON-NLS-1$//$NON-NLS-2$
 		}
@@ -153,6 +153,7 @@
 			subMonitor = (progressMonitor == null ) ? null : new SubProgressMonitor( progressMonitor, 95 );
 				
 			MatchLocator matchLocator = new MatchLocator( pattern, collector, scope, subMonitor );
+			matchLocator.setShouldExcludeLocalDeclarations( excludeLocalDeclarations );
 			
 			if( progressMonitor != null && progressMonitor.isCanceled() )
 				throw new OperationCanceledException();
Index: search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java,v
retrieving revision 1.30
diff -u -r1.30 MatchLocator.java
--- search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java	18 Sep 2003 15:15:08 -0000	1.30
+++ search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java	19 Sep 2003 19:52:35 -0000
@@ -451,6 +451,11 @@
 				}
 			} else {
 				if( currentScope instanceof IASTFunction || currentScope instanceof IASTMethod ){
+					//local declaration, only report if not being filtered
+					if( shouldExcludeLocalDeclarations ){
+						return;
+					}
+					
 					object = (ISourceElementCallbackDelegate) currentScope;
 				} else {
 					object = node;
@@ -498,6 +503,12 @@
 		currentScope = (scopeStack.size() > 0 ) ? (IASTScope) scopeStack.removeFirst() : null;
 		return oldScope;
 	}
+	
+	public void setShouldExcludeLocalDeclarations( boolean exclude ){
+		shouldExcludeLocalDeclarations = exclude;
+	}
+	
+	private boolean shouldExcludeLocalDeclarations = false;
 	
 	private ISourceElementCallbackDelegate lastDeclaration;
 	
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/ChangeLog,v
retrieving revision 1.103
diff -u -r1.103 ChangeLog
--- ChangeLog	19 Sep 2003 16:00:44 -0000	1.103
+++ ChangeLog	19 Sep 2003 19:52:47 -0000
@@ -1,3 +1,9 @@
+2003-09-19 Andrew Niefer
+	for bug 43327 - Code Complete finds local variables  
+	- modified resources/cfiles/CompletionProposalsTestStart.cpp
+	- modified CompletionProposalsTest.testCompletionProposals
+	- updated calls to SearchEngine.search
+
 2003-09-18 Andrew Niefer
 	- removed testConditionalExpression_Bug43159 from FailedCompleteParseASTExpressionTest
 	  and uncommented it (testConditionalExpression) in CompleteParseASTExpressionTest
Index: model/org/eclipse/cdt/core/codeassist/tests/CompletionProposalsTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/codeassist/tests/CompletionProposalsTest.java,v
retrieving revision 1.5
diff -u -r1.5 CompletionProposalsTest.java
--- model/org/eclipse/cdt/core/codeassist/tests/CompletionProposalsTest.java	10 Sep 2003 14:26:04 -0000	1.5
+++ model/org/eclipse/cdt/core/codeassist/tests/CompletionProposalsTest.java	19 Sep 2003 19:52:47 -0000
@@ -107,7 +107,7 @@
 			TranslationUnit headerTu = new TranslationUnit(fCProject, headerFile);
 			TranslationUnit tu = new TranslationUnit(fCProject, bodyFile);
 			Document document = new Document(tu.getBuffer().getContents());
-			int pos = 255;
+			int pos = 304;
 			int length = 0;
 			CCompletionProcessor completionProcessor = new CCompletionProcessor(null);
 			ICompletionProposal[] results = completionProcessor.evalProposals(document, pos, length, tu);
Index: resources/cfiles/CompletionProposalsTestStart.cpp
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/resources/cfiles/CompletionProposalsTestStart.cpp,v
retrieving revision 1.1
diff -u -r1.1 CompletionProposalsTestStart.cpp
--- resources/cfiles/CompletionProposalsTestStart.cpp	2 Sep 2003 17:17:01 -0000	1.1
+++ resources/cfiles/CompletionProposalsTestStart.cpp	19 Sep 2003 19:52:47 -0000
@@ -15,6 +15,10 @@
 	int aStructField = 0;
 };
 
+void foo(){
+   int aLocalDeclaration = 1;
+}
+
 void anotherClass::anotherMethod(){
   a
 };
Index: search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java,v
retrieving revision 1.8
diff -u -r1.8 BaseSearchTest.java
--- search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java	19 Sep 2003 16:00:44 -0000	1.8
+++ search/org/eclipse/cdt/core/search/tests/BaseSearchTest.java	19 Sep 2003 19:52:47 -0000
@@ -185,7 +185,7 @@
 	
 	protected void search(IWorkspace workspace, ICSearchPattern pattern, ICSearchScope scope, ICSearchResultCollector collector) {
 		resultCollector.setProgressMonitor( monitor );
-		searchEngine.search( workspace, pattern, scope, collector );
+		searchEngine.search( workspace, pattern, scope, collector, false );
 	}
 	
 }
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/ChangeLog,v
retrieving revision 1.177
diff -u -r1.177 ChangeLog
--- ChangeLog	18 Sep 2003 19:46:12 -0000	1.177
+++ ChangeLog	19 Sep 2003 20:07:02 -0000
@@ -1,3 +1,7 @@
+2003-09-19 Andrew Niefer
+	fix for bug 43327 Code Complete finds local variables  
+	- update calls to SearchEngine.search.  CodeCompletion passes true for excludeLocalDeclarations
+
 2003-09-18 Hoda Amer
 	Solution to bug#42611 : New Class Wizard should be hidden for C projects
 		
Index: src/org/eclipse/cdt/internal/ui/editor/OpenDeclarationsAction.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/OpenDeclarationsAction.java,v
retrieving revision 1.1
diff -u -r1.1 OpenDeclarationsAction.java
--- src/org/eclipse/cdt/internal/ui/editor/OpenDeclarationsAction.java	26 Aug 2003 19:15:37 -0000	1.1
+++ src/org/eclipse/cdt/internal/ui/editor/OpenDeclarationsAction.java	19 Sep 2003 20:07:02 -0000
@@ -125,7 +125,7 @@
 				orPattern.addPattern(SearchEngine.createSearchPattern( sel, ICSearchConstants.FIELD, ICSearchConstants.DECLARATIONS, true ));
 				orPattern.addPattern(SearchEngine.createSearchPattern( sel, ICSearchConstants.NAMESPACE, ICSearchConstants.DECLARATIONS, true ));
 				orPattern.addPattern(SearchEngine.createSearchPattern( sel, ICSearchConstants.MACRO, ICSearchConstants.DECLARATIONS, true ));
-				searchEngine.search(CUIPlugin.getWorkspace(), orPattern, scope, resultCollector);
+				searchEngine.search(CUIPlugin.getWorkspace(), orPattern, scope, resultCollector, true);
 				elementsFound.addAll(resultCollector.getSearchResults());
 				
 				if (elementsFound.isEmpty() == false) {
Index: src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java,v
retrieving revision 1.7
diff -u -r1.7 CSearchOperation.java
--- src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java	5 Sep 2003 18:31:52 -0000	1.7
+++ src/org/eclipse/cdt/internal/ui/search/CSearchOperation.java	19 Sep 2003 20:07:02 -0000
@@ -78,7 +78,7 @@
 			pattern = SearchEngine.createSearchPattern( _stringPattern, (SearchFor)iter.next(), _limitTo, _caseSensitive );
 		}
 		
-		engine.search( _workspace, pattern, _scope, _collector );
+		engine.search( _workspace, pattern, _scope, _collector, false );
 	}
 	
 	/**
Index: src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java,v
retrieving revision 1.10
diff -u -r1.10 CCompletionProcessor.java
--- src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java	27 Aug 2003 13:17:47 -0000	1.10
+++ src/org/eclipse/cdt/internal/ui/text/CCompletionProcessor.java	19 Sep 2003 20:07:03 -0000
@@ -535,7 +535,7 @@
 		orPattern.addPattern(SearchEngine.createSearchPattern( prefix, ICSearchConstants.TYPE, ICSearchConstants.DECLARATIONS, true ));
 		orPattern.addPattern(SearchEngine.createSearchPattern( prefix, ICSearchConstants.ENUM, ICSearchConstants.DECLARATIONS, true ));
 		orPattern.addPattern(SearchEngine.createSearchPattern( prefix, ICSearchConstants.MACRO, ICSearchConstants.DECLARATIONS, true ));
-		searchEngine.search(CUIPlugin.getWorkspace(), orPattern, scope, resultCollector);
+		searchEngine.search(CUIPlugin.getWorkspace(), orPattern, scope, resultCollector, true);
 		elementsFound.addAll(resultCollector.getSearchResults());
 
 		if((currentScope instanceof IMethod) || (currentScope instanceof IMethodDeclaration) ){
Index: src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java,v
retrieving revision 1.8
diff -u -r1.8 NewClassWizardPage.java
--- src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java	18 Sep 2003 19:46:12 -0000	1.8
+++ src/org/eclipse/cdt/ui/wizards/NewClassWizardPage.java	19 Sep 2003 20:07:03 -0000
@@ -449,7 +449,7 @@
 		elements[0] = cProject;
 		ICSearchScope scope = SearchEngine.createCSearchScope(elements, true);
 
-		searchEngine.search(CUIPlugin.getWorkspace(), pattern, scope, resultCollector);
+		searchEngine.search(CUIPlugin.getWorkspace(), pattern, scope, resultCollector, false);
 		elementsFound.addAll(resultCollector.getSearchResults());
 	}
 	

Back to the top