1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-02 22:05:44 +02:00
Commit graph

32 commits

Author SHA1 Message Date
John Camelon
b8321abb0a Patch for Andrew Niefer
- set default C++ search sort order to be by path
- modified search dialog to use checkboxes instead of radio buttons

SearchFor buttons are now organized like this:
        Class / Struct          Function        Variable
        Union                   Method          Field
        Enumeration             Namespace       Any Element

When multiple buttons are selected, they are combined using the Or 
Pattern.
2003-09-04 13:50:42 +00:00
Doug Schaefer
8f3b6007eb Patch for Bogdan Gheorghe:
Indexer 
======= 
- Changed file extensions to prevent header files from being indexed (they will be indexed via inclusion) 

Search 
======= 
- Added scope checking to MatchLocator 
- Modified CSearchPattern to allow for destructor searches 
- Added debug tracing statements to SearchEngine 
- Added debug tracing statements to MatchLocator 

UI 
== 
- Converted CTags based OpenOnSelectionAction to OpenDeclarationsAction. For now, we do a search on all types with the selected name. 
- Hooked up OpenDeclarationsAction to search engine 

General 
======= 
- Modified start up code to set debug trace options (which are defined from the launcher). I've added the following trace components: 
        - dependency 
        - indexer 
        - indexmanager 
        - matchlocator 
        - model 
        - search 
        - parser 

- Added trace debug statements to CModelBuilder 
- Modified Util.java to make use of IDebugLogConstants
2003-08-26 19:16:03 +00:00
Doug Schaefer
a80d2f71de Patch for Bogdan Gheorghe:
Indexer 
- Added additional file extensions to supported indexed files 
- Changed the parser instantiation to pass in retrieved build info 
- Added function decl index entry based on enterFunctionBody 
- Added method decl index entry based on enterMethodBody 
- Added forward decl refs 
- Added debug tracing to AbstractIndexer 

Search 
- Changed matching and reporting functions to handle nodes 
  of type IElaboratedTypeSpecifier 

UI 
- Added a search dialog pop up item to the context menu for the 
  CEditor and CContentOutlinePage
2003-08-20 20:53:50 +00:00
John Camelon
891454830b CORE
Added X-Ref/Elaborated type support w/element requestor callbacks.  

TESTS
	Added CompleteParseASTTest::testForewardDeclarationWithUsage().
2003-08-12 20:40:11 +00:00
John Camelon
8dba12bff3 Patch for Hoda Amer.
Hi, 
This patch updates code completion to use search. It also includes my previous patch which enabled the class wizard to use search as well. 

Current Code Completion has the following restrictions: 
- It will only work within the scope of a function or a method. 
-It will look for globals (variables, functions, classes, strucs, unions, enumerations, and macros). 
-In the scope of a method, it will also look for the methods and fields that belong to the owner class of this method. 
- It will NOT search the parent classes of the method in the method scope case. 
- It will NOT de-reference after a "." or an "->"
2003-08-12 20:20:13 +00:00
John Camelon
04453687f0 Patch for Bogdan Gheorghe
This patch combines the field and variable search patterns into one in order to allow qualified searches on variables.
2003-08-12 15:20:21 +00:00
John Camelon
dbc6ab4f98 Patch for Bogdan Gheorghe.
This patch adds working copy search, macro search and combines the function and method search patterns into one.
2003-08-12 14:29:07 +00:00
John Camelon
78d86df8e3 Patch for Andrew Niefer
core : 
- add function parameter information to search results

ui:
- modified Search result sorting to sort by offset if the label is the 
same for two items
2003-08-11 13:48:39 +00:00
John Camelon
e1a20e1a7d Patch for Bogdan Gheorghe
Put in Indexer shut down which cleans up the .metadata directory of any suspicious looking index files 
Put in CSearchScope changes (in both UI and core) to enable working set searches
2003-08-11 13:42:55 +00:00
Doug Schaefer
b97611936d Patch for Andrew Niefer:
core:
- created new search pattern OrPattern, which returns a match if any of 
its constituent pattens return a match.

To use it, do something like:
OrPattern orPattern = new OrPattern();
orPattern.addPattern( SearchEngine.createSearchPattern( "::NS::B::e", 
ENUM, REFERENCES, true ) );
orPattern.addPattern( SearchEngine.createSearchPattern( "Hea*", CLASS, 
DECLARATIONS, true ) );

Searching for all occurences of something now uses the OrPattern. ie, 
SearchEngine.createSearchPattern( "A", TYPE, ALL_OCCURENCES, true );
is the same as
OrPattern orPattern = new OrPattern();
orPattern.addPattern( SearchEngine.createSearchPattern( "f", FUNCTION, 
DECLARATIONS, true ) );
orPattern.addPattern( SearchEngine.createSearchPattern( "f", FUNCTION, 
REFERENCES, true ) );
orPattern.addPattern( SearchEngine.createSearchPattern( "f", FUNCTION, 
DEFINITIONS, true ) );

For large projects this is much more efficient than the old method of 
finding all occurences

core.tests:
- added ClassDeclarationPatternTests.testAllOccurences
- added OtherPatternTests.testOrPattern
2003-08-07 14:52:18 +00:00
John Camelon
287009d748 Patch for Andrew Niefer.
This patch contains modifications to BasicSearchMatch and 
BasicSearchResultCollector so that the collector will not accept matches 
that have already been seen.

( Addresses the problem of seeing a class definition in a header file 
multiple times because that header was included from multiple cpp files)

This patch also fixes a small bug in finding the resource for header files 
we enter while parsing.
2003-08-01 19:26:58 +00:00
John Camelon
5aae8a1f5d Patch for Hoda Amer.
- The core patch modifies the CModelBuilder to recognize pointers to functions. 
- The tests patch changes the CModelElementsTests and puts the pointer to function test back in its original place (as a variable). 
- The ui patch modifies the NewClassWizard to use search in finding a base class ( the new indexer must be on for it to work ).
2003-07-30 19:17:14 +00:00
John Camelon
57c348fffa CORE
Updated AST to better represent pointers to functions/methods.
	Implemented typedef declaration/x-ref infrastructure.  

TESTS
	Updated QuickParseASTTests for pointer to function updates.
	Updated CompleteParseASTTests for typedef work.
2003-07-30 01:31:14 +00:00
John Camelon
3d7a522e3e Patch by Andrew Niefer.
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.
2003-07-29 22:47:59 +00:00
John Camelon
a3e052456b Patch for Andrew Niefer
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
2003-07-29 12:40:17 +00:00
John Camelon
1be03f5cfc Last minute demo fix from Bogdan. 2003-07-25 17:25:49 +00:00
John Camelon
7c5787894d Last minute demo fixes for Search/Indexer/COMPLETE_PARSE. 2003-07-25 16:45:49 +00:00
John Camelon
ee5dac3bd9 Patch for Bogdan Gheorghe.
This patch adds type refs, function refs, method refs,  fireld refs and namespace refs to the index and changes the parser mode to complete parse.
2003-07-25 15:21:57 +00:00
John Camelon
e312c1724b Patch for Andrew Niefer
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
2003-07-24 21:43:47 +00:00
Doug Schaefer
7a408c3e1d Patch for Andrew Niefer:
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
2003-07-24 14:20:16 +00:00
John Camelon
f25e4d8bd0 CORE
Fleshed out basic declarations for FullParse AST.
	Fixed Bug 40554  - Fields coming back as Vars 
	Fixed Bug 40555  - Methods come back as Functions 

TESTS
	Created CompleteParseASTTest and added it to ParserTestSuite.
2003-07-21 17:30:00 +00:00
John Camelon
8aa2e6f9b9 CORE & UI
Added ISourceElementCallbackDelegate interface for AST constructs to allow the Parser to delegate callback's to the nodes themselves.  
	Got rid of ParserMode.STRUCTURAL_PARSE for the time being. 
	Removed org.eclipse.cdt.internal.core.parser.ast.full. 
	Created org.eclipse.cdt.internal.core.parser.ast.complete. 
	Updated ParserFactory.createScanner() to force the user to provide a callback and a ParserMode.
	Introduced ASTSemanticException for COMPLETE_PARSE mode. 
	Fleshed out preliminary IASTReference interfaces and added callbacks to ISourceElementRequestor.
	Removed acceptElaboratedTypeSpecifier() from ISourceElementRequestor.

TESTS
	Updated ParserSymbolTableTests to remove dependencies on parser.ast.full classes.
	Updated Parser test suites for updates to ParserFactory.
2003-07-18 16:39:26 +00:00
John Camelon
b43dece8ee CORE & UI
Removed IParserCallback.  
	Partially converted DOM to ISourceElementRequestor (requires refactoring of CModelBuilder & StuctureComparator modules in near future).  
	Completely finished ISourceElementRequestor/IASTFactory work for QuickParse mode.  
	Added pointer to methods/functions into AST callback structure.  
	Restructured AST class hierarchy.  
	Removed the old IParserCallback return Objects from every Parser method.

TESTS
	Rewrote the entire DOMTests suite to now be AST tests.  
	Removed DOMTests, BaseDOMTest, DOMFailedTests after methods were migrated to QuickParseASTTests & ASTFailedTests.  
	Made sure every parser failed test had a defect number associated with it.
2003-07-17 20:15:18 +00:00
Doug Schaefer
0c232fa416 Patch for Andrew Niefer:
Patch for C++ Search to support searching for class declarations

Interface changes:
- modified search Interfaces : 
        - ICSearchConstants - changed SearchFor instantiations to more 
closely match what we can search for.
        - ICSearchPattern - added getLimitTo() 
        - ICSearchResultCollector - added createMatch(), which should 
return an object implementing the new IMatch interface, these store the 
any data needed to keep found matches.
  These interfaces are still new and its too early for anyone other than 
search and the indexer to be using them.
- added search interface IMatch.


Changes to core.search had to do with keeping track of the current scope 
during the search, as well as other modifications for matching class 
declarations, and the start of the patterns for matching other things.

Changes to ui.search had to do with creating IMatch objects to store the 
information needed by the label provider to display icons and sort the 
results.
2003-07-15 14:48:13 +00:00
Doug Schaefer
bcf023a6c8 Patch for Bogdan Gheorghe:
- support for class specifier search
- a new C/C++ search menu item.
2003-07-11 22:12:35 +00:00
John Camelon
d71d9270d8 CORE
Filled out IASTMethod & IASTFunction & added implementations.
	Updated IScanner, clients & implementations to use IScannerInfo.  
	Finished SimpleDeclaration porting to new architecture, only thing left is templates.  

TESTS
	Updated IScanner, clients & implementations to use IScannerInfo.
2003-07-09 00:47:49 +00:00
John Camelon
91794dcff9 Further restructuring. 2003-07-07 13:46:16 +00:00
John Camelon
8a70b5e1d2 Patch for Andrew Niefer.
cdt.core: 
- Modified ICSearchConstants to use classes (SearchFor & LimitTo) instead of int for constants 
- Modified MatchLocator to actually invoke the parser to do the search 

cdt.core.tests: 
        - Added new source Folder search 
        - Added search/ClassDeclarationPatternTests::testMatchSimpleDeclaration 
        - Added search/ClassDeclarationPatternTests::testMatchNamespaceNestedDeclaration 
        - Added new resource folder search & containing file classDecl.cpp 
        - Added new failures package ord.eclipse.cdt.core.search.failedTests 
        - Added new failing test PatternsFailedTests::testBug39652 

        * Note that both the ClassDeclarationPatternTests and PatternsFailedTests must be run as Plugin Tests * 

        cdt.ui: 
        - Updated Search classes to reflect changes to ICSearchConstants.
2003-07-04 17:15:44 +00:00
John Camelon
6fa5a87930 Patch for Andrew Niefer
Further work on C/C++ Search framework.
2003-06-28 19:56:54 +00:00
Doug Schaefer
afbe575516 Patch for Bogdan Gheorghe:
- The initial framework for the new indexer.
- Added a checkbox to the Indexer tab on the
C/C++ Projects settings dialog to turn on the
indexing on a per project basis.
2003-06-27 14:31:34 +00:00
John Camelon
effbc07d12 Updates for ISourceElementRequestor - elaborated types & enumerations. 2003-06-24 20:18:16 +00:00
John Camelon
18eca5c02b Patch for Andrew Niefer.
Skeleton implementation of C/C++ Search.
2003-06-16 17:35:46 +00:00