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.
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
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
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
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
* src/org/eclipse/cdt/launch/sourcelookup/DefaultSourceLocator.java
Check if the project saved in the launch configuration equals to the project set
in the source lookup tab.
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.
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.
- 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 ).
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.
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.