For normal lookups in the symbol table, a HashMap is faster than the tree
map, but for prefix lookups the TreeMap is faster. So we are now using
the HashMap for normal parses, and we use the TreeMap in the parse mode
used by content assist.
Note that with these changes the results returned by the IASTNode.lookup
function used by content assist are now in predictable order: they are
first sorted in the order of the scopes visited during the lookup and then
they are sorted alphabetically
Core:
Modified symbol table constructor to take a ParseMode as a parameter.
Modified symbol table to use a TreeMap instead of HashMap when ParseMode is COMPLETION_PARSE.
Modified ASTNode.lookup to throw ASTNotImplementedException if called when ParseMode is not CONTEXTUAL_PARSE.
Core.tests:
Moved testBug48307_FriendFunction_1 & testBug48307_FriendFunction_2 to ContextualParseTest.
Updated ContextualParseTest now that the order of prefix lookup results is predictable.
UI:
Updated CompletionEngine to catch ASTNotImplementedException from IASTNode.lookup.
====================
Renamed IASTNode.LookupResult IASTNode.ILookupResult.
Introduced new ParseError exception for contextual parse() methods.
Renamed ParserFactoryException ParserFactoryError.
Replaced ParserNotImplementedException with a variant of ParseError.
Updated IScanner & IParser to not reference OffsetLimitReachedException explicitly.
Renamed ParserMode.CONTEXTUAL_PARSE to COMPLETION_PARSE.
Cleaned up IMacroDescriptor and made Scanner definitions table consistent.
Added IScanner.getDefinitions() to return the entire Map of definitions to a client.
Removed most of the warnings from parser source directory.
Removed the unused SyntaxErrorException.
Provided partial fix for Bug 44370 IASTMacro requires more information for clients.
org.eclipse.cdt.core.tests
==========================
Updated references to LookupResult as it was renamed to ILookupResult.
Removed some warnings from parser tests.
Updated Scanner & QuickParseTests to accommodate new errors and signatures.
Added QuickParseASTTests.testBug44370().
org.eclipse.cdt.ui
==================
Updated references to LookupResult as it was renamed to ILookupResult.
Updated references of ParserFactoryException to ParserFactoryError.
Updated references of ParserNotImplementedException to ParseError.
Updated references of CONTEXTUAL_PARSE to COMPLETION_PARSE.
Fixed bug 48909 - Wrong completion node after a . or an ->
Fixed bug 49702 - Wrong completion kind sent in const/dest and code blocks
Added new CompletionKind - STATEMENT_START to indicate the beginning of a statement line.
TESTS
Updated ContextualParseTest to accommodate bugfixes 48909 & 49702.
UI
Updated CompletionEngine to handle IASTCompletionKind.CompletionKind.STATEMENT_START
Added OffsetLimitReachedException and restructured Parser exceptions.
Continued support for code assist/selection search parser.
Ensured all source in parser/ have copyright notices.
TESTS
Expanded ContextualParseTest::testBaseCase().
Updated tests to deal with new signatures/exceptions.
UI
Updated CompletionEngine to deal with new signatures/exceptions in parser.
- upgrade plugin.xml files
- use PDE containers
- apply Eclipse 3.0 porting items, in particular openEditor and gotoMarker
- remove TestWorkbenches from test plugins
Cleaned up the ParserFactory interface to check for validity of input arguments.
Moved NullSourceElementRequestor and ScannerInfo to public interface as requested.
Restructured code so that no Eclipse/CDT source outside the parser source directory is used.
Updated parser clients to use new ParserFactory (stand-alone parser work item).
UI & TESTS
Updated parser clients to use new ParserFactory (stand-alone parser work item).
Removed warnings from parser source tree.
Removed preliminary task tags support to clean up parser interfaces and implementation.
Added preliminary IProblem support to
UI
Updated parser clients to use new IProblem strategy.
TESTS
Updated parser clients to use new IProblem strategy.
core:
Fixed Bug 44925 : Search: Elaborated type specifier
Partially Fixed Bug 44510 : C/C++ Search gives wrong results
ui:
Fixed Bug 44337 : Disabling of "definition" not making sense in Search
dialog
Fixed Bug 44947 : Navigate from Outline: Enumeration type not
pre-populated
Fixed Bug 44948 : Navigate via Open Declarations: typedef decl not found
- Moved off all dependency calculations to the Indexer thread,
created a new UpdateDependency job
- Modified CSearchOperation to only lock the workspace when
tagging resources with markers.