This patch is a refactoring of the C++ search result collecting.
There are 2 new classes:
- BasicSearchMatch implements IMatch
- BasicSearchResultCollector implements ICSearchResultCollector
IMatch itself has been modified to reflect a minimum set of information
that will be returned by the search.
The old CSearchResultCollector now extends BasicSearchResultCollector and
the old Match is now gone.
The CSearchResultLabelProvider has been moved from
org.eclipse.cdt.internal.ui.search to org.eclipse.cdt.ui, and it has
been modified to reflect changes to IMatch.
The result of this is that anyone wishing to take advantage of the search
engine (ie ClassWizard ) can now do it without implementing their own
ICSearchResultCollector and IMatch objects.
In order to meet certain internal guidelines and to test the makefile
generator, the build model replied to some answers with hard-coded
information. This patch moves the information into the build model. Tests
have been updated to reflect these changes, and the patch has been
smoke-tested on Unix.
core:
- fixed a couple of bugs to do with searching for globally qualified
patterns
- fixed a bug to do with the '?' wildcard
- fixed a bug to do with searching for functions/methods using patterns
specifying parameters
tests:
- new search tests:
ClassDeclarationPatternTests.testClassReferenceInFieldType
ClassDeclarationPatternTests.testClassReferences
ClassDeclarationPatternTests.testEnumerationReferenceVisibleByInheritance
ClassDeclarationPatternTests.testGloballyQualifiedItem
ClassDeclarationPatternTests.testTypeReferenceVisibleByUsingDirective
FunctionMethodPatternTests.testMethodDeclaration
FunctionMethodPatternTests.testMethodDeclarationWithParams
OtherPatternTests.testFieldDeclaration
OtherPatternTests.testNamespaceDeclaration
OtherPatternTests.testNamespaceReferenceInClassBaseClause
OtherPatternTests.testNamespaceReferenceInUsingDirective
OtherPatternTests.testVariableDeclaration
This patch creates a new failing test class : FullParseFailedTests. This
is for writing failed tests on the parser doing COMPLETE_PARSE.
The first failed test is for bug 40842 "Parser: NPE while parsing class
declaration in full parse mode"
- I added the ability to build when there are inter-project dependencies
(first iteration; I would like to try another way). There is also some
changes to how libraries are handled. Change logs describe the changes and
the AllBuildTests has been updated to reflect these changes.
Added COMPLETE_PARSE support for Method and Field declarations and cross-references.
Fixed some small ParserSymbolTable bugs.
Added support for linkage specification under COMPLETE_PARSE.
TESTS
Updated CompleteParseASTTests for Method/Field updates.
Fixed TortureTest's parser mode switch (was always QuickParsing).
This core patch cleans up the CModelBuilder. It also solves a bug and all tests in IStructureTests now pass successfully.
In the core.tests patch, the test for templates of variables is removed from ITemplateTests because it is moved to the failed tests.
This patch is for the search. No new things can be searched yet, but this
brings more things closer to being able to be searched.
- Implemented decodeIndexEntry & matchIndexEntry for all patterns
- changed MatchLocator to use a COMPLETE_PARSE.
- added TYPE_ALL, FUNCTION_ALL, METHOD_ALL, NAMESPACE_ALL,
FIELD_ALL constants to IIndexConstants
- modified AbstractIndexer prefix functions to properly handle
searching for all occurences
Core:
- modifications to the Indexer to better support qualified names
- functions to create Index entry prefixes for the different Search
Patterns
- all of the search patterns are now being created and all do at least
some matching
- all of the parser callbacks for declarations, definitions, and
references are now being handled, though the patterns and indexer both
need some work here
Core.tests:
- new BaseSearchTest which creates a project and uses the indexer
- new test class FunctionMethodPatternTests to test aspects of the
Function & Method patterns
- new test class OtherPatternTests to test the other (Namespace, Field &
variable) patterns
- new tests to test index prefixes for the patterns
UI:
- handle more varied search results and display more icons
- Here's a first take at the dependency tree service
which is needed by both the managed build and the
indexer. The service is in a really early form with no
persistance or notification mechanisms in place yet.
There is just enough in here to allow Sean to get his
makefile dependencies. I added a check box to the
indexer tab to enable the service on a per project basis.
Added CompleteParse - UsingDirective & UsingDeclarations w/namespace/class/field variable references.
Added CompleteParse support for enumeration specifiers and references in variables & fields.
Stubbed out other Scopes/Declarations for COMPLETE_PARSE mode to allow indexer team to switch over ASAP.
TESTS
Updated CompleteParseASTTests.