1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00
Commit graph

1160 commits

Author SHA1 Message Date
John Camelon
df11a294b8 Patch for Sean Evoy
In order to work through CExtensionPoint mechanism, I have to change the 
existing extension point entries for the Managed and Standard builders to 
the following (all future builders will have to conform to this as well):
   <extension
         id="ManagedBuildManager"
         point="org.eclipse.cdt.core.ScannerInfoProvider">
      <cextension>
         <run
 class="org.eclipse.cdt.core.build.managed.ManagedBuildManager">
         </run>
      </cextension>
   </extension>

   <extension
         id="StandardBuildManager"
         point="org.eclipse.cdt.core.ScannerInfoProvider">
      <cextension>
         <run
 class="org.eclipse.cdt.core.build.standard.StandardBuildManager">
         </run>
      </cextension>
   </extension>

As well, the ManagedBuildManager and StandardBuildManager must extend 
AbstractCExtension.

The new project wizards for managed and standard projects have to be 
modified to register the right class as the scanner info providers for the 
project. The example below shows the managed project wizard code, but the 
standard project wizard is similar.
try {
        ICDescriptor desc = 
CCorePlugin.getDefault().getCProjectDescription(project);
        desc.remove(CCorePlugin.BUILD_SCANNER_INFO_UNIQ_ID);
        desc.create(CCorePlugin.BUILD_SCANNER_INFO_UNIQ_ID, 
ManagedBuildManager.INTERFACE_IDENTITY);
} <snip>


Clients use a new method defined in CCorePlugin 

public IScannerInfoProvider getScannerInfoProvider(IProject project) {
        IScannerInfoProvider provider = null;
        if (project != null) {
                try {
                        ICDescriptor desc = (ICDescriptor) 
getCProjectDescription(project);
                        ICExtensionReference[] extensions = 
desc.get(BUILD_SCANNER_INFO_UNIQ_ID);
                        if (extensions.length > 0)
                                provider = (IScannerInfoProvider) 
extensions[0].createExtension();
                } catch (CoreException e) {
                }
        }
        return provider;
}

to get the information provider as shown in the updated JUnit test code 
below:
// Find the first IScannerInfoProvider that supplies build info for the 
project
IScannerInfoProvider provider = 
CCorePlugin.getDefault().getScannerInfoProvider(project);
assertNotNull(provider);

As is the case now, clients implement the IScannerInfoChangeListener 
interface and pass themselves to the provider in a subscription message. 
There is also a new method on the IScannerInfoProvider interface that 
allows the client to get information immediately as shown below:
IScannerInfo currentSettings = provider.getScannerInformation(project); 

The ManagedBuildManager::getScannerInfo(IResource) method will be 
deprecated, then removed before the end of this release cycle.
2003-08-13 17:45:38 +00:00
John Camelon
fbd1af4e45 Fixed Bug 41480 - ceditor extension point is not default editor for C++ file extensions 2003-08-13 14:57:13 +00:00
John Camelon
905d5c624d Patch for Bogdan Gheorghe.
Changed the order of tests in AutomatedIntegrationSuite. The indexer tests must be run AFTER any indexer client tests...
2003-08-12 22:22:58 +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
a94839573b CORE
Added Complete Parse support for ASM Definitions.  
	Added isVolatile() to abstract declarations.
	Added Complte Parse support for elaborated types / forward declaration of classes.  
	Fixed some robustness issues.

TESTS
	Cleaned up Junit parser-related tests so that failed tests are now expected failures w/defects associated with them.  
	Updated CompleteParseTests for forward declaration/elaborated types.  
	Added Search/ParseTestOnSearchFiles to AutomatedSuite. 
	Updated Search tests to workaround bug 41445.
2003-08-12 18:19:55 +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
04fd4de249 Patch for Bogdan. 2003-08-12 14:31:55 +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
David Inglis
256866b864 new error dialog methods 2003-08-12 14:04:11 +00:00
David Inglis
dc9458bbc7 abstract class for implementing a tab folder control
block of ICOptionPages.
2003-08-12 13:44:37 +00:00
David Inglis
027d7aab46 abstract class for use by ICOptionPage implementers. 2003-08-12 13:39:20 +00:00
David Inglis
f384582c3c new i/f that will replace IWizardTab and IValidation 2003-08-12 13:37:58 +00:00
John Camelon
ff9ca80b0c Patch for Bogdan (Fancy Pants) Gheorghe
This patch adds macro declarations to the index.
2003-08-11 19:10:45 +00:00
John Camelon
42cf54e708 Patch for Sean Evoy
This patch contains a fix for bug 41274 in the core; library entries in 
the build property pages were not being saved by the build model manager.

It also contains a bunch of fixes for minor problems in the UI. I added a 
new target for building DLLs on Cygwin. The zip file adds a new icon for 
configurations in the tree view of the build property page for managed 
builds. Now the tool uses the tool icon and the category uses the new 
category icon.

The list editor will better fit a page with space-grabbing widgets in 
different columns. For example, the default list field editor puts the 
list in the left column and allows it to grab all excess space. Entry 
fields put the label in the left and the space-grabbing entry field/combo 
box in the right. The layout manager then gives both left and right 
columns equal space in that case. By wrapping the list field editor in a 
group control that spans both columns, the layout manager allocates enough 
space for controls in the right-hand column. It also lays out the contents 
of the list field editor inside the group control independently of the 
outer container, so it looks right too. Also added a double-click event 
handler so users  can edit list elements. All in all, this makes the list 
widget work better.

I re-activated the summary field editor class (it's alive!). It still does 
not behave quite right in terms of showing the command line summary, but 
that functionality will be added shortly.

Finally, the build property page is being resized for large pages. It is 
still possible to specify categories with too many options to display, 
even with the new resize. This will have to be a documented limitation, or 
we will have to add a vertical scroll bar for pages that are too large.
2003-08-11 17:33:10 +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
Doug Schaefer
65003d3ab2 Patch for Andrew Niefer:
Core:
- refactor symbol table function names to start with lower case letters
- added better constructor support :
        - IDerivableContainerSymbol.addConstructor
        - IDerivableContainerSymbol.lookupConstructor
        - IDerivableContainerSymbol.getConstructors
- implicit user-defined conversion sequences now only use constructors not 
marked explicit
- user-defined conversion sequences are now only applied at most once 
(12.3-4 in spec) 
- changed ParserSymbolTableException.r_Unspecified to r_InternalError 
which is thrown on internal symbol table inconsistancies (likely from bugs 
rather than semantic problems with the parsed code)

Core.tests:
- updated tests to reflect function name refactoring
- added ParserSymbolTableTest.testConstructors
2003-08-07 14:46:58 +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
87e177ade2 Patch for Andrew Niefer
This patch improves support in the parser symbol table for forward declarations
2003-08-01 17:43:10 +00:00
John Camelon
8513838955 Patch for Sean Evoy
I am in the process of documenting the build model and as I go along, a 
number of things will have to be cleaned up in the actual model itself. 
This patch is purely a bookeeping change to make it easier for me to 
maintain the build model in the face of these changes as we go forward. 
Where I used to access XML elements using hard-coded strings, I have moved 
the string into the appropriate interface class. If the name of the 
attribute changes in the future, I only have to update it one place.

I have also begun the process of renaming certain attributes of the schema 
to make them better reflect what they are doing. My hope is that if they 
have intuitive names, toolchain implementers will have less difficulty 
understanding their intent. In any case, I have changed four attribute 
names; optionRef -> optionReference, toolRef -> toolReference, optionValue 
-> listOptionValue, and  optionEnum -> enumeratedOptionValue. 

Unfortunately, these changes will invalidate the dot-cdtbuild files for 
any managed build projects in your workspace. If you can't bear to create 
a new project, move the files over, and set-up the compiler options again, 
you can always hand-edit the changes in the file yourself. Just remember 
to restart CDT after you do so.
2003-07-31 13:20:37 +00:00
John Camelon
c2e6e9ec5b Patch for Victor Mozgin
Fixed PR 39540 : Parser fails on const qualifier after class specifier
2003-07-31 13:14:32 +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
7b4de80105 Patch for Victor Mozgin.
Fixed PR 39532 : Parser fails on fully-qualified class names.
2003-07-30 13:04:53 +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
Alain Magloire
d0c813b653 updated 2003-07-29 19:51:30 +00:00
Alain Magloire
0e40557ca2 Check for .debug* 2003-07-29 19:51:19 +00:00
John Camelon
ae3a1417f5 Patch for Sean Evoy
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.
2003-07-29 14:28:40 +00:00
John Camelon
5423bbc79e Patch for Victor Mozgin.
Fixed PR 39546 : Parser fails on 'signed' casts.
2003-07-29 14:21:07 +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
95b11e1171 CORE
Fixed Bug 40842 - Parser: NPE while parsing class declaration in full parse mode 
	Fixed Bug 40843 - Parser: failParse doesn't set parsePassed = false on EOF.
	Fixed Miscellaneous overrides issues involving parameters & functions. 


TESTS
	Added/moved tests as necessary for bugfix 40842 & 40843.
2003-07-28 20:49:47 +00:00
John Camelon
d84488d695 Patch for Andrew Niefer.
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"
2003-07-28 17:21:50 +00:00
John Camelon
30f7903424 Fixed Bug 40730 - Parser is not searching the include path for #include"<name>" 2003-07-28 15:40:36 +00:00
John Camelon
9b571cb993 Patch for Victor Mozgin.
Fixed PR 39537 : Parser fails if template parameters contain '>' or
'<'  characters.
2003-07-28 14:18:39 +00:00
David Inglis
de98fe1839 cleanup
reduced # of open/close pre elf file
2003-07-28 13:41:00 +00:00
David Inglis
8daef5ac9c added range checks for section string 2003-07-28 13:36:57 +00:00
John Camelon
c6b470a797 Fixed testBug40714() to faiil properly. 2003-07-28 00:28:24 +00:00
John Camelon
136320038c Patch for Victor Mozgin.
Fixed PR 39553 : Macros are not expanded in #include statements.
2003-07-28 00:02:34 +00:00
Doug Schaefer
e5ca3ac578 Added the dependency dir to the build properties. 2003-07-25 20:16:20 +00:00
John Camelon
32adccaab0 Update CModel failed tests. 2003-07-25 18:09:57 +00:00
Doug Schaefer
3a2ed3957a Patch for Sean Evoy:
- 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.
2003-07-25 17:31:01 +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
8b6f29d3ad Fix Symbol Table Lookup in addBaseSpecifier() for Andrew. 2003-07-25 14:49:18 +00:00
Doug Schaefer
2ea02e1982 Patch for Sean Evoy:
- Initial makefile generator for managed build.
2003-07-25 14:40:04 +00:00
John Camelon
196aedf345 Fixed ASTEnumerator::getOwnerEnumerationSpecifier() in COMPLETE_PARSE mode for Bogdan. 2003-07-25 14:30:11 +00:00
Alain Magloire
62a75efc6b updated,. 2003-07-25 01:57:51 +00:00