Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBogdan Gheorghe2004-08-11 20:05:35 +0000
committerBogdan Gheorghe2004-08-11 20:05:35 +0000
commit4fd44238b9a7f360c715b7a944ed17f6a65e07dd (patch)
tree3cc9b086d420845856fe1655c2bff3756985b3cf
parent16258395c2c28f6140b1b490df9412793b537231 (diff)
downloadorg.eclipse.cdt-4fd44238b9a7f360c715b7a944ed17f6a65e07dd.tar.gz
org.eclipse.cdt-4fd44238b9a7f360c715b7a944ed17f6a65e07dd.tar.xz
org.eclipse.cdt-4fd44238b9a7f360c715b7a944ed17f6a65e07dd.zip
Fix for Bug 59493: need to refine index query for open-type (2.0 Stream)
-rw-r--r--core/org.eclipse.cdt.core.tests/ChangeLog3
-rw-r--r--core/org.eclipse.cdt.core.tests/indexer/org/eclipse/cdt/core/indexer/tests/IndexManagerTests.java10
-rw-r--r--core/org.eclipse.cdt.core/index/ChangeLog7
-rw-r--r--core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/AbstractIndexer.java53
-rw-r--r--core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IIndexConstants.java3
-rw-r--r--core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexerRequestor.java4
-rw-r--r--core/org.eclipse.cdt.core/search/ChangeLog805
-rw-r--r--core/org.eclipse.cdt.core/search/org/eclipse/cdt/core/search/ICSearchConstants.java6
-rw-r--r--core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java8
-rw-r--r--core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/ClassDeclarationPattern.java24
-rw-r--r--core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/DerivedTypesPattern.java2
-rw-r--r--core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/FriendPattern.java2
12 files changed, 509 insertions, 418 deletions
diff --git a/core/org.eclipse.cdt.core.tests/ChangeLog b/core/org.eclipse.cdt.core.tests/ChangeLog
index e987b504d50..37c95a4b8d5 100644
--- a/core/org.eclipse.cdt.core.tests/ChangeLog
+++ b/core/org.eclipse.cdt.core.tests/ChangeLog
@@ -1,3 +1,6 @@
+2004-08-11 Bogdan Gheorghe
+ Modified indexer test to work with new forward declaration encoding.
+
2004-08-03 Bogdan Gheorghe
Updated indexer and dependency tests to work for indexing standalone headers
diff --git a/core/org.eclipse.cdt.core.tests/indexer/org/eclipse/cdt/core/indexer/tests/IndexManagerTests.java b/core/org.eclipse.cdt.core.tests/indexer/org/eclipse/cdt/core/indexer/tests/IndexManagerTests.java
index 4519f15cbdc..18352cc1c5e 100644
--- a/core/org.eclipse.cdt.core.tests/indexer/org/eclipse/cdt/core/indexer/tests/IndexManagerTests.java
+++ b/core/org.eclipse.cdt.core.tests/indexer/org/eclipse/cdt/core/indexer/tests/IndexManagerTests.java
@@ -425,7 +425,7 @@ public class IndexManagerTests extends TestCase {
IIndex ind = indexManager.getIndex(testProjectPath,true,true);
assertTrue("Index exists for project",ind != null);
- String [] typeRefEntryResultModel ={"EntryResult: word=typeRef/C/C/B/A, refs={ 1 }", "EntryResult: word=typeRef/C/ForwardA/A, refs={ 1 }", "EntryResult: word=typeRef/E/e1/B/A, refs={ 1 }", "EntryResult: word=typeRef/V/x/B/A, refs={ 1 }"};
+ String [] typeRefEntryResultModel ={"EntryResult: word=typeRef/C/C/B/A, refs={ 1 }", "EntryResult: word=typeRef/E/e1/B/A, refs={ 1 }", "EntryResult: word=typeRef/G/ForwardA/A, refs={ 1 }", "EntryResult: word=typeRef/V/x/B/A, refs={ 1 }"};
IEntryResult[] typerefresults = ind.queryEntries(IIndexConstants.TYPE_REF);
assertTrue("Entry exists",typerefresults != null);
@@ -558,10 +558,10 @@ public class IndexManagerTests extends TestCase {
assertTrue("Index exists for project",ind != null);
//IEntryResult[] fwdDclResults = ind.queryEntries("typeDecl/C/ForwardA/A".toCharArray());
- IEntryResult[] fwdDclResults = ind.queryEntries("typeDecl/C/ForwardA/A".toCharArray());
+ IEntryResult[] fwdDclResults = ind.queryEntries("typeDecl/G/ForwardA/A".toCharArray());
assertTrue("Entry exists",fwdDclResults != null);
- String [] fwdDclModel = {"EntryResult: word=typeDecl/C/ForwardA/A, refs={ 1 }"};
+ String [] fwdDclModel = {"EntryResult: word=typeDecl/G/ForwardA/A, refs={ 1 }"};
if (fwdDclResults.length != fwdDclModel.length)
fail("Entry Result length different from model for forward declarations");
@@ -571,10 +571,10 @@ public class IndexManagerTests extends TestCase {
assertEquals(fwdDclModel[i],fwdDclResults[i].toString());
}
- IEntryResult[] fwdDclRefResults = ind.queryEntries("typeRef/C/ForwardA/A".toCharArray());
+ IEntryResult[] fwdDclRefResults = ind.queryEntries("typeRef/G/ForwardA/A".toCharArray());
assertTrue("Entry exists", fwdDclRefResults!= null);
- String [] fwdDclRefModel = {"EntryResult: word=typeRef/C/ForwardA/A, refs={ 1 }"};
+ String [] fwdDclRefModel = {"EntryResult: word=typeRef/G/ForwardA/A, refs={ 1 }"};
if (fwdDclRefResults.length != fwdDclRefModel.length)
fail("Entry Result length different from model for forward declarations refs");
diff --git a/core/org.eclipse.cdt.core/index/ChangeLog b/core/org.eclipse.cdt.core/index/ChangeLog
index 0688f6eff76..cfa848230ed 100644
--- a/core/org.eclipse.cdt.core/index/ChangeLog
+++ b/core/org.eclipse.cdt.core/index/ChangeLog
@@ -1,3 +1,10 @@
+2004-08-11 Bogdan Gheorghe
+ Fix for Bug 59493: need to refine index query for open-type
+
+ * 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/SourceIndexerRequestor.java
+
2004-08-03 Bogdan Gheorghe
Fix for Bug 60948: Indexer should pick up all headers in include path
diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/AbstractIndexer.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/AbstractIndexer.java
index 51bd4e9d0fc..459d22d8c4f 100644
--- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/AbstractIndexer.java
+++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/AbstractIndexer.java
@@ -51,6 +51,9 @@ public abstract class AbstractIndexer implements IIndexer, IIndexConstants, ICSe
final static int TYPEDEF = 6;
final static int DERIVED = 7;
final static int FRIEND = 8;
+ final static int FWD_CLASS = 9;
+ final static int FWD_STRUCT = 10;
+ final static int FWD_UNION = 11;
public static boolean VERBOSE = false;
@@ -241,15 +244,15 @@ public abstract class AbstractIndexer implements IIndexer, IIndexConstants, ICSe
public void addElaboratedForwardDeclaration(IASTElaboratedTypeSpecifier elaboratedType) {
if (elaboratedType.getClassKind().equals(ASTClassKind.CLASS))
{
- this.output.addRef(encodeTypeEntry(elaboratedType.getFullyQualifiedNameCharArrays(),CLASS, ICSearchConstants.DECLARATIONS));
+ this.output.addRef(encodeTypeEntry(elaboratedType.getFullyQualifiedNameCharArrays(),FWD_CLASS, ICSearchConstants.DECLARATIONS));
}
else if (elaboratedType.getClassKind().equals(ASTClassKind.STRUCT))
{
- this.output.addRef(encodeTypeEntry(elaboratedType.getFullyQualifiedNameCharArrays(),STRUCT, ICSearchConstants.DECLARATIONS));
+ this.output.addRef(encodeTypeEntry(elaboratedType.getFullyQualifiedNameCharArrays(),FWD_STRUCT, ICSearchConstants.DECLARATIONS));
}
else if (elaboratedType.getClassKind().equals(ASTClassKind.UNION))
{
- this.output.addRef(encodeTypeEntry(elaboratedType.getFullyQualifiedNameCharArrays(),UNION, ICSearchConstants.DECLARATIONS));
+ this.output.addRef(encodeTypeEntry(elaboratedType.getFullyQualifiedNameCharArrays(),FWD_UNION, ICSearchConstants.DECLARATIONS));
}
}
@@ -336,6 +339,32 @@ public abstract class AbstractIndexer implements IIndexer, IIndexConstants, ICSe
this.output.addRef(encodeTypeEntry(fullyQualifiedName,UNION,ICSearchConstants.REFERENCES));
}
}
+ public void addForwardClassReference(IASTTypeSpecifier reference){
+ char[][] fullyQualifiedName = null;
+ ASTClassKind classKind = null;
+
+ if (reference instanceof IASTElaboratedTypeSpecifier){
+ IASTElaboratedTypeSpecifier typeRef = (IASTElaboratedTypeSpecifier) reference;
+ fullyQualifiedName = typeRef.getFullyQualifiedNameCharArrays();
+ classKind = typeRef.getClassKind();
+ }
+
+ if (classKind == null)
+ return;
+
+ if (classKind.equals(ASTClassKind.CLASS))
+ {
+ this.output.addRef(encodeTypeEntry(fullyQualifiedName,FWD_CLASS, ICSearchConstants.REFERENCES));
+ }
+ else if (classKind.equals(ASTClassKind.STRUCT))
+ {
+ this.output.addRef(encodeTypeEntry(fullyQualifiedName,FWD_STRUCT,ICSearchConstants.REFERENCES));
+ }
+ else if (classKind.equals(ASTClassKind.UNION))
+ {
+ this.output.addRef(encodeTypeEntry(fullyQualifiedName,FWD_UNION,ICSearchConstants.REFERENCES));
+ }
+ }
/**
* Type entries are encoded as follow: 'typeDecl/' ('C' | 'S' | 'U' | 'E' ) '/' TypeName ['/' Qualifier]*
*/
@@ -391,6 +420,18 @@ public abstract class AbstractIndexer implements IIndexer, IIndexConstants, ICSe
case(FRIEND):
result[pos++]=FRIEND_SUFFIX;
break;
+
+ case(FWD_CLASS):
+ result[pos++]=FWD_CLASS_SUFFIX;
+ break;
+
+ case (FWD_STRUCT):
+ result[pos++]=FWD_STRUCT_SUFFIX;
+ break;
+
+ case (FWD_UNION):
+ result[pos++]=FWD_UNION_SUFFIX;
+ break;
}
result[pos++] = SEPARATOR;
//Encode in the following manner
@@ -509,6 +550,12 @@ public abstract class AbstractIndexer implements IIndexer, IIndexConstants, ICSe
classType = DERIVED_SUFFIX;
} else if ( searchFor == ICSearchConstants.FRIEND){
classType = FRIEND_SUFFIX;
+ } else if ( searchFor == ICSearchConstants.FWD_CLASS) {
+ classType = FWD_CLASS_SUFFIX;
+ } else if ( searchFor == ICSearchConstants.FWD_STRUCT) {
+ classType = FWD_STRUCT_SUFFIX;
+ } else if ( searchFor == ICSearchConstants.FWD_UNION) {
+ classType = FWD_UNION_SUFFIX;
} else {
//could be TYPE or CLASS_STRUCT, best we can do for these is the prefix
return prefix;
diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IIndexConstants.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IIndexConstants.java
index 9b175d51bfd..e76b9da5640 100644
--- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IIndexConstants.java
+++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IIndexConstants.java
@@ -105,6 +105,9 @@ public interface IIndexConstants {
char TYPEDEF_SUFFIX = 'T';
char DERIVED_SUFFIX = 'D';
char FRIEND_SUFFIX = 'F';
+ char FWD_CLASS_SUFFIX = 'G';
+ char FWD_STRUCT_SUFFIX = 'H';
+ char FWD_UNION_SUFFIX = 'I';
char TYPE_SUFFIX = 0;
char SEPARATOR= '/';
diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexerRequestor.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexerRequestor.java
index 06693d557f9..c56ba9d7045 100644
--- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexerRequestor.java
+++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexerRequestor.java
@@ -364,8 +364,8 @@ public class SourceIndexerRequestor implements ISourceElementRequestor, IIndexCo
indexer.addClassReference((IASTClassSpecifier)reference.getReferencedElement());
else if (reference.getReferencedElement() instanceof IASTElaboratedTypeSpecifier)
{
- indexer.addClassReference((IASTTypeSpecifier) reference.getReferencedElement());
- }
+ indexer.addForwardClassReference((IASTTypeSpecifier) reference.getReferencedElement());
+ }
}
/* (non-Javadoc)
diff --git a/core/org.eclipse.cdt.core/search/ChangeLog b/core/org.eclipse.cdt.core/search/ChangeLog
index 92d3a9bd9ad..df7c8d659b5 100644
--- a/core/org.eclipse.cdt.core/search/ChangeLog
+++ b/core/org.eclipse.cdt.core/search/ChangeLog
@@ -1,399 +1,408 @@
-2004-06-25 Bogdan Gheorghe
- Indirect fix for Bug 65551: [Search] Search for Variable references should not include parameters
- Instead of excluding parameter references from searches, added parm declarations to the index (for
- both functions and methods)
-
- * search/org/eclipse/cdt/core/search/BasicSearchResultCollector.java
- * index/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java
-
-2004-06-25 Bogdan Gheorghe
- Fix for 68550: [Indexer] Cannot restart indexer by touching .c/.cpp/.cc files
-
- * search/org/eclipse/cdt/internal/core/search/processing/JobManager.java
- * index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java
-
-2004-06-24 Bogdan Gheorghe
- Fix for 66695: [Indexer] Manually add an include path to a file/folder
- is ignored by indexer
-
- * search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java
-
-2004-06-22 Alain Magloire
- Part of PR 68246.
- Close the inputstream to release resource handle
- when we done with it, we can not rely on the GC to do it for us.
-
- * search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java
-
-2004-06-21 Bogdan Gheorghe
- Modified JobManager to change state from waiting to enabled on a job request.
-
-2004-06-11 Andrew Niefer
- fix bugs 43063 & 43498 - better handling of spaces around wild cards in search pattern
-
-2004-06-10 Andrew Niefer
- fix bug 64986 - handle Containers in CSearchScope
-
-2004-05-26 Andrew Niefer
- Modified search to use ASTUtil.getFunctionParameterTypes to get the strings to search for
- functions with specific parameters.
-
-2004-05-21 Andrw Niefer
- fix bug 63478
-
-2004-05-21 Andrew Niefer
- Indexer problems reporting: group problems under the indexer job in progress view
-
-2004-05-21 Andrew Niefer
- bug 62731 - [Search] typedefs are appearing as union declarations
- * search/org/eclipse/cdt/internal/core/search/matching/ClassDeclarationPattern.java
-
-2004-05-21 Bogdan Gheorghe
- bug 63320 - Search does not consider working copies
- Added a check to turn off indexer timer thread, if number entered is <= 0
-
-2004-05-18 Andrew Niefer
- bug 62651 - indexer job hangs if project deleted from workspace
- When we discard jobs, we must downtick the indexing job as well.
- * search/org/eclipse/cdt/internal/core/search/processing/IndexingJob.java
- * search/org/eclipse/cdt/internal/core/search/processing/JobManager.java
-
-2004-05-17 Bogdan Gheorghe
- Added matching routine to IncludePattern
-
-2004-05-17 Andrew Niefer
- bug 61044 - report search matches at the end of each compilation unit
-
-2004-05-14 Bogdan Gheorghe
- bug 60491
- Added working copy filtering to search engine
- From now on only relevent working copies are considered for search
- If no index paths are found then search will return no results regardless of any working copies passed in
-
-2004-05-14 Andrew Niefer
- bug 56411 - Added IndexingJob show that indexing shows up in the process view
- - this allows for the index job to be cancelled, which pauses indexing until someone requests something
- - if a request was waiting on the indexer and the indexer gets paused from a user canceling it, then the
- request is forced immediate.
-
-2004-05-06 Bogdan Gheorghe
- Added friend to ICSearchConstants
- Created IMatchLocator to allow search users to pass in their own match locators
- Modified CSearchPattern to create friend search pattern
- Added Friend pattern
- Modified MatchLocator to check for class specifiers upon class exit
-
-2004-04-19 Andrew Niefer
- speed up BasicSearchMatch.compareTo and .hashCode by reducing number of string objects created.
-
-2004-04-12 Bogdan Gheorghe
- Modified FieldDeclarationPattern to work with new Enumerator type, added
- DerivedTypesPattern.
-
-2004-04-05 Andrew Niefer
- fix bug 54169, TYPE includes enum & typedef, handle that in ClassDeclarationPattern.matchLevel
-
-2004-03-24 Bogdan Gheorghe
- Modified BasicSearchMatch to keep track of what files contained the match in order
- to create file links to support external file markers.
-
- Modified MatchLocator to pass in the referring file path to BasicSearchMatch if the
- match has no resource attached to it (ie. the match is external).
-
- * search/org/eclipse/cdt/core/search/BasicSearchResultCollector.java
- * search/org/eclipse/cdt/core/search/BasicSearchMatch.java
- * search/org/eclipse/cdt/core/search/ICSearchResultCollector.java
- * search/org/eclipse/cdt/core/search/IMatch.java
- * search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java
-
-
-2004-03-08 Bogdan Gheorghe
- BasicSearchResultCollector patch from Chris Wiebe - adds setProgressMonitor method,
- cleans up some of the CoreException warnings
-
-2004-02-16 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.
-
-2004-02-06 Bogdan Gheorghe
-
- - Modified CSearchPattern.scanforParameters. If no parameters are passed in
- as part of a function/method search, void is assigned as a parameter type.
-
- - Modified MethodDeclarationPattern to check for void parameter types
-
-2004-02-05 Alain Magloire
- PR 51221
- Reformat Patch from Bogdan base on Thomas Fletcher original patch
- In a nutshell, it moves the search operation into a runnable which
- can be passed to a progress dialog.
-
- * search/org/eclipse/cdt/core/search/BasicSearchResultCollector.java
-
-2004-01-26 John Camelon
- Updated clients to use new Scanner logging service.
-
-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
+2004-08-11 Bogdan Gheorghe
+ Fix for Bug 59493: need to refine index query for open-type
+
+ * search/org/eclipse/cdt/internal/core/search/ICSearchConstants.java
+ * search/org/eclipse/cdt/internal/core/search/matching/ClassDeclarationPattern.java
+ * search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java
+ * search/org/eclipse/cdt/internal/core/search/matching/DerivedTypesPattern.java
+ * search/org/eclipse/cdt/internal/core/search/matching/FriendPattern.java
+
+2004-06-25 Bogdan Gheorghe
+ Indirect fix for Bug 65551: [Search] Search for Variable references should not include parameters
+ Instead of excluding parameter references from searches, added parm declarations to the index (for
+ both functions and methods)
+
+ * search/org/eclipse/cdt/core/search/BasicSearchResultCollector.java
+ * index/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java
+
+2004-06-25 Bogdan Gheorghe
+ Fix for 68550: [Indexer] Cannot restart indexer by touching .c/.cpp/.cc files
+
+ * search/org/eclipse/cdt/internal/core/search/processing/JobManager.java
+ * index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java
+
+2004-06-24 Bogdan Gheorghe
+ Fix for 66695: [Indexer] Manually add an include path to a file/folder
+ is ignored by indexer
+
+ * search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java
+
+2004-06-22 Alain Magloire
+ Part of PR 68246.
+ Close the inputstream to release resource handle
+ when we done with it, we can not rely on the GC to do it for us.
+
+ * search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java
+
+2004-06-21 Bogdan Gheorghe
+ Modified JobManager to change state from waiting to enabled on a job request.
+
+2004-06-11 Andrew Niefer
+ fix bugs 43063 & 43498 - better handling of spaces around wild cards in search pattern
+
+2004-06-10 Andrew Niefer
+ fix bug 64986 - handle Containers in CSearchScope
+
+2004-05-26 Andrew Niefer
+ Modified search to use ASTUtil.getFunctionParameterTypes to get the strings to search for
+ functions with specific parameters.
+
+2004-05-21 Andrw Niefer
+ fix bug 63478
+
+2004-05-21 Andrew Niefer
+ Indexer problems reporting: group problems under the indexer job in progress view
+
+2004-05-21 Andrew Niefer
+ bug 62731 - [Search] typedefs are appearing as union declarations
+ * search/org/eclipse/cdt/internal/core/search/matching/ClassDeclarationPattern.java
+
+2004-05-21 Bogdan Gheorghe
+ bug 63320 - Search does not consider working copies
+ Added a check to turn off indexer timer thread, if number entered is <= 0
+
+2004-05-18 Andrew Niefer
+ bug 62651 - indexer job hangs if project deleted from workspace
+ When we discard jobs, we must downtick the indexing job as well.
+ * search/org/eclipse/cdt/internal/core/search/processing/IndexingJob.java
+ * search/org/eclipse/cdt/internal/core/search/processing/JobManager.java
+
+2004-05-17 Bogdan Gheorghe
+ Added matching routine to IncludePattern
+
+2004-05-17 Andrew Niefer
+ bug 61044 - report search matches at the end of each compilation unit
+
+2004-05-14 Bogdan Gheorghe
+ bug 60491
+ Added working copy filtering to search engine
+ From now on only relevent working copies are considered for search
+ If no index paths are found then search will return no results regardless of any working copies passed in
+
+2004-05-14 Andrew Niefer
+ bug 56411 - Added IndexingJob show that indexing shows up in the process view
+ - this allows for the index job to be cancelled, which pauses indexing until someone requests something
+ - if a request was waiting on the indexer and the indexer gets paused from a user canceling it, then the
+ request is forced immediate.
+
+2004-05-06 Bogdan Gheorghe
+ Added friend to ICSearchConstants
+ Created IMatchLocator to allow search users to pass in their own match locators
+ Modified CSearchPattern to create friend search pattern
+ Added Friend pattern
+ Modified MatchLocator to check for class specifiers upon class exit
+
+2004-04-19 Andrew Niefer
+ speed up BasicSearchMatch.compareTo and .hashCode by reducing number of string objects created.
+
+2004-04-12 Bogdan Gheorghe
+ Modified FieldDeclarationPattern to work with new Enumerator type, added
+ DerivedTypesPattern.
+
+2004-04-05 Andrew Niefer
+ fix bug 54169, TYPE includes enum & typedef, handle that in ClassDeclarationPattern.matchLevel
+
+2004-03-24 Bogdan Gheorghe
+ Modified BasicSearchMatch to keep track of what files contained the match in order
+ to create file links to support external file markers.
+
+ Modified MatchLocator to pass in the referring file path to BasicSearchMatch if the
+ match has no resource attached to it (ie. the match is external).
+
+ * search/org/eclipse/cdt/core/search/BasicSearchResultCollector.java
+ * search/org/eclipse/cdt/core/search/BasicSearchMatch.java
+ * search/org/eclipse/cdt/core/search/ICSearchResultCollector.java
+ * search/org/eclipse/cdt/core/search/IMatch.java
+ * search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java
+
+
+2004-03-08 Bogdan Gheorghe
+ BasicSearchResultCollector patch from Chris Wiebe - adds setProgressMonitor method,
+ cleans up some of the CoreException warnings
+
+2004-02-16 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.
+
+2004-02-06 Bogdan Gheorghe
+
+ - Modified CSearchPattern.scanforParameters. If no parameters are passed in
+ as part of a function/method search, void is assigned as a parameter type.
+
+ - Modified MethodDeclarationPattern to check for void parameter types
+
+2004-02-05 Alain Magloire
+ PR 51221
+ Reformat Patch from Bogdan base on Thomas Fletcher original patch
+ In a nutshell, it moves the search operation into a runnable which
+ can be passed to a progress dialog.
+
+ * search/org/eclipse/cdt/core/search/BasicSearchResultCollector.java
+
+2004-01-26 John Camelon
+ Updated clients to use new Scanner logging service.
+
+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/ICSearchConstants.java b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/core/search/ICSearchConstants.java
index 1fe7a46064a..7ea7302bae9 100644
--- a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/core/search/ICSearchConstants.java
+++ b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/core/search/ICSearchConstants.java
@@ -107,6 +107,12 @@ public interface ICSearchConstants {
public static final SearchFor FRIEND = new SearchFor( 16 );
+ public static final SearchFor FWD_CLASS = new SearchFor ( 17 );
+
+ public static final SearchFor FWD_STRUCT = new SearchFor ( 18 );
+
+ public static final SearchFor FWD_UNION = new SearchFor ( 19 );
+
/* Nature of match */
/**
diff --git a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java
index dc801f1f3cf..46f4d8bfeb3 100644
--- a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java
+++ b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java
@@ -110,6 +110,7 @@ public abstract class CSearchPattern implements ICSearchConstants, ICSearchPatte
CSearchPattern pattern = null;
if( searchFor == TYPE || searchFor == CLASS || searchFor == STRUCT ||
+ searchFor == FWD_CLASS || searchFor == FWD_STRUCT || searchFor == FWD_UNION ||
searchFor == ENUM || searchFor == UNION || searchFor == CLASS_STRUCT ||
searchFor == TYPEDEF )
{
@@ -344,6 +345,11 @@ public abstract class CSearchPattern implements ICSearchConstants, ICSearchPatte
return orPattern;
}
+ boolean isForward = false;
+ if (searchFor == FWD_CLASS || searchFor == FWD_STRUCT || searchFor == FWD_UNION){
+ isForward = true;
+ }
+
char [] patternArray = patternString.toCharArray();
IScanner scanner =null;
@@ -393,7 +399,7 @@ public abstract class CSearchPattern implements ICSearchConstants, ICSearchPatte
char[] name = (char [])list.removeLast();
char [][] qualifications = new char[0][];
- return new ClassDeclarationPattern( name, (char[][])list.toArray( qualifications ), searchFor, limitTo, matchMode, caseSensitive );
+ return new ClassDeclarationPattern( name, (char[][])list.toArray( qualifications ), searchFor, limitTo, matchMode, caseSensitive, isForward );
}
diff --git a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/ClassDeclarationPattern.java b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/ClassDeclarationPattern.java
index 3538e945944..b696dba2946 100644
--- a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/ClassDeclarationPattern.java
+++ b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/ClassDeclarationPattern.java
@@ -42,9 +42,10 @@ public class ClassDeclarationPattern extends CSearchPattern {
// super( matchMode, caseSensitive, DECLARATIONS );
// }
- public ClassDeclarationPattern( char[] name, char[][] containers, SearchFor searchFor, LimitTo limit, int mode, boolean caseSensitive ){
+ public ClassDeclarationPattern( char[] name, char[][] containers, SearchFor searchFor, LimitTo limit, int mode, boolean caseSensitive, boolean isForward ){
super( mode, caseSensitive, limit );
+ this.isForward = isForward;
simpleName = caseSensitive ? name : CharOperation.toLowerCase( name );
if( caseSensitive || containers == null ){
qualifications = containers;
@@ -58,13 +59,13 @@ public class ClassDeclarationPattern extends CSearchPattern {
this.searchFor = searchFor;
- if( searchFor == CLASS ){
+ if( searchFor == CLASS || searchFor == FWD_CLASS ){
classKind = ASTClassKind.CLASS;
- } else if( searchFor == STRUCT ) {
+ } else if( searchFor == STRUCT || searchFor == FWD_STRUCT) {
classKind = ASTClassKind.STRUCT;
} else if ( searchFor == ENUM ) {
classKind = ASTClassKind.ENUM;
- } else if ( searchFor == UNION ) {
+ } else if ( searchFor == UNION || searchFor == FWD_UNION ) {
classKind = ASTClassKind.UNION;
} else {
classKind = null;
@@ -86,6 +87,11 @@ public class ClassDeclarationPattern extends CSearchPattern {
if( ! canAccept( limit ) )
return IMPOSSIBLE_MATCH;
+ if ((node instanceof IASTElaboratedTypeSpecifier &&!isForward)||
+ (node instanceof IASTClassSpecifier && isForward)){
+ return IMPOSSIBLE_MATCH;
+ }
+
char[] nodeName = null;
if (node instanceof IASTElaboratedTypeSpecifier)
{
@@ -145,6 +151,7 @@ public class ClassDeclarationPattern extends CSearchPattern {
protected char[] decodedSimpleName;
private char[][] decodedContainingTypes;
protected char decodedType;
+ protected boolean isForward;
public void feedIndexRequestor(IIndexSearchRequestor requestor, int detailLevel, int[] references, IndexInput input, ICSearchScope scope) throws IOException {
@@ -213,15 +220,18 @@ public class ClassDeclarationPattern extends CSearchPattern {
return false;
}
} else if( classKind == ASTClassKind.CLASS ) {
- if( decodedType != CLASS_SUFFIX ){
+ if( decodedType != CLASS_SUFFIX &&
+ decodedType != FWD_CLASS_SUFFIX){
return false;
}
} else if ( classKind == ASTClassKind.STRUCT ) {
- if( decodedType != STRUCT_SUFFIX ){
+ if( decodedType != STRUCT_SUFFIX &&
+ decodedType != FWD_STRUCT_SUFFIX){
return false;
}
} else if ( classKind == ASTClassKind.UNION ) {
- if( decodedType != UNION_SUFFIX ){
+ if( decodedType != UNION_SUFFIX &&
+ decodedType != FWD_UNION_SUFFIX){
return false;
}
} else if ( classKind == ASTClassKind.ENUM ) {
diff --git a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/DerivedTypesPattern.java b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/DerivedTypesPattern.java
index 69ca402e0c6..00997a2ce5c 100644
--- a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/DerivedTypesPattern.java
+++ b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/DerivedTypesPattern.java
@@ -42,7 +42,7 @@ public class DerivedTypesPattern extends ClassDeclarationPattern {
* @param caseSensitive
*/
public DerivedTypesPattern(char[] name, char[][] containers, SearchFor searchFor, LimitTo limit, int mode, boolean caseSensitive) {
- super(name, containers, searchFor, limit, mode, caseSensitive);
+ super(name, containers, searchFor, limit, mode, caseSensitive, false);
}
public char[] indexEntryPrefix() {
diff --git a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/FriendPattern.java b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/FriendPattern.java
index 83ebc71881d..bf1255bd066 100644
--- a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/FriendPattern.java
+++ b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/FriendPattern.java
@@ -41,7 +41,7 @@ public class FriendPattern extends ClassDeclarationPattern {
* @param caseSensitive
*/
public FriendPattern(char[] name, char[][] containers, SearchFor searchFor, LimitTo limit, int mode, boolean caseSensitive) {
- super(name, containers, searchFor, limit, mode, caseSensitive);
+ super(name, containers, searchFor, limit, mode, caseSensitive, false);
}
public char[] indexEntryPrefix() {

Back to the top