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.
- 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.
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.
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.
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.
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.
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.
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.
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.
- 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.
- This is a patch to allow users to add include path
and defined symbol information to a standard make
project.
- This information is required by clients like the indexer
so that a proper index can be created.
- The interface to extract that information will follow.
Updated IASTClassSpecifier for qualified name query.
Began structuring expressions and declarators in Parser for ISourceElementRequestor.
Updated other packages to use new interfaces.
Updated automatedtests/torture test to use new line number information.
1. Fix for bug 38665 - Need to select platform before configurations become visible
2. Icon files that were not delivered in my last patch
3. A new interface for clients of the build model to extract include paths and defined symbols for managed projects. Unmanaged projects to follow soon.
The user may start the wizard from the navigator view. In this case, the selection is a resource, not a CModel Element, which caused some troubles.
This patch fixes this problem. Change log has been updated.
This patch enables Outline view filters to show/hide -static members, non-public members, and fields (same as in JDT).
Please note that the patch creates three new packages and 5 new classes.
It also has 9 new icon files (in three different directories).
The modified files + the new files are all zipped into the attached file.