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

4088 commits

Author SHA1 Message Date
Doug Schaefer
301de9ca43 Patch for Sean Evoy:
I forgot (again) that the Eclipse patching mechanism does not pay 
attention to gifs. So, here are the build icons redone with the proper 
transparency settings. Now they no longer show up as an annoying white 
blob on the grey Motif background/ or Gtk selection box.
2003-08-20 20:09:31 +00:00
Doug Schaefer
cc710063b4 Patch for Sean Evoy:
This patch contains some minor UI changes and a big chunk of work to add 
built-in symbols and includes search paths to a tool specification. 

The UI change is a switch from dynamically resizing the property page when 
an option category is selected from the list, but rather using a scrolled 
edit area. Now, if the option set is larger than the viewable area, a 
horizontal and/or vertical scrollbar is displayed.

In terms of built-ins, there is no UI support to change the values just 
yet. That is coming, but I wanted to get the framework and some 
definitions in place so that the indexer and scanner can start using them.
2003-08-20 17:52:32 +00:00
Alain Magloire
5fd96de2e5 updated. 2003-08-20 17:34:42 +00:00
Alain Magloire
279655a2ff support d&d non-resources in the CView. 2003-08-20 17:34:33 +00:00
David Inglis
0f45720f3d patch from sean see changelog 2003-08-18 17:34:23 +00:00
David Inglis
746f6bfdc7 new project C/C++ project wizard classes 2003-08-18 16:10:59 +00:00
David Inglis
8c4b0d9020 update so that it can be extended to use other type control 2003-08-17 19:49:30 +00:00
David Inglis
21a6509a3b fixed problem with large lists (resize policy did not has a height hint) 2003-08-14 13:55:11 +00:00
David Inglis
4c82ed5537 new C project options controls 2003-08-13 19:26:27 +00:00
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
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
04fd4de249 Patch for Bogdan. 2003-08-12 14:31:55 +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
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
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
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
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
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
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
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
62d269c6f8 Moved Template of Variable test case to Failed tests 2003-07-24 17:20:07 +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
Doug Schaefer
33b684ca91 Patch for Bogdan Gheorghe:
- 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.
2003-07-24 14:15:07 +00:00
John Camelon
d67f2b25cf Patch for Hoda Amer.
This patch updates the CModelBuilder to use the AST instead of the DOM.
2003-07-24 13:30:30 +00:00
John Camelon
329664223a - Added support for digraphs and trigraphs. Both scanner and UI syntax
highlighting are updated.
-  Added support for hex floating point literals.
- Fixed stack overflow problem with string literals concatenation.
- Fixed problem with token pasting in macros.
- This solves PR 39523, 39550, 39552.
2003-07-22 00:44:18 +00:00
Doug Schaefer
d8ee61be38 Patch for Bogdan Gheorghe:
- adds namespaces, enums, typedefs, functions,
methods, fields and vars to the index.
- also fixes a problem with the Search label provider
which caused it to not display properly under some
conditions.
2003-07-21 21:14:10 +00:00
Doug Schaefer
a3c2f8e423 Removal of cdt.builder packages. 2003-07-21 18:03:28 +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
Alain Magloire
aa2f55b2f1 updated 2003-07-16 14:49:45 +00:00
Alain Magloire
42d1154261 Patch from Alex Chapiro to provide build contribution
to the CView.
2003-07-16 14:49:38 +00:00
Alain Magloire
0eb01b1ba1 updated 2003-07-16 14:29:49 +00:00
Alain Magloire
dab6ba3ae7 Thomas Fletcher added new command "Edit.." 2003-07-16 14:28:58 +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
b03158193f Patch for Bogdan Gheorge:
- UI for C/C++ Search
2003-07-14 15:34:57 +00:00
Doug Schaefer
0e59c966c0 Patch for Bogdan Gheorghe:
- support for class specifier search
- a new C/C++ search menu item
2003-07-11 22:41:45 +00:00
Doug Schaefer
6a897468ed - Added the ability to add arbitrary XML data to the
cdtproject file.
- Used to store the data that had been put in the
cdtbuild file for Standard Make projects.
- Cleaned up some of the exception handling in the 
StandardBuildManager.
2003-07-10 17:50:34 +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
4576601158 Patch for Victor Mozgin
Fix for PR 39476: Preference listeners for task tags do not work.
Fix for PR 39477: Task tags options dialogs ask for project rebuilds.
2003-07-07 15:35:46 +00:00
John Camelon
8b844d54f1 Patch for Sean Evoy.
The change logs contain an overview of what has been done to implement a new interface between a build model (any build model) 
and clients of the model that need to extract include search paths and defined symbols. For the most part, I have tried to leave the 
old build system as unchanged as possible. For example, project properties like the make search path, and whether or not to continue 
on build failures are still stored as persistent properties on the project through the CNature (ugh). The new information I have added 
is managed by a new build manager on a per-project basis and is associated with a project as a session property. The information is 
persisted in the 'cdtbuild' file introduced by the new managed build system.
2003-07-04 18:36:47 +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
John Camelon
c4df8f4e6f Patch for Victor Mozgin.
Initial pass at Task Bar/IProblem support.
2003-06-28 19:48:12 +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