<BR> Fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=55785.
<BR> Fix required update to ISourceElementRequestor interface : clients updated accordingly.
<BR>
<BR>org.eclipse.cdt.core.tests
<BR> Updated clients for ISourceElementRequestor.createReader() updates.
<BR>
<BR>org.eclipse.cdt.ui
<BR> Updated CompletionEngine to use shared working copies when parsing include files.
<BR> Updated clients for ISourceElementRequestor.createReader() updates.
Refactored MouseClickListener out of CEditor; modified it to use CppCodeScanner keywords
Fixed Outline refresh problem by reverting to an earlier copy of WorkingCopyManager
Improved error handling for Indexer
Improved error handling for MatchLocator
Bounds checking for mappings in IncudeEntry
Improved error handling for Merge operations
Source file name fitering for recreating an already existing index
PR 51221
Reformat Patch from Bogdan base on Thomas Fletcher original patch
In a nutshell, it moves the search operation into a runnable which
can be passed to a progress dialog.
====================
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.
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.
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.
- 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.
Fixed Bug 40007 : Parser reports success when it fails
Fixed Bug 44305 : Scanner/preprocessor fails on conditionals using hexidecimal
Fixed Bug 41935 : parser provides wrong name on namespace aliases
Fixed Bug 39525 : Parser fails on expressions that take address of overloaded operators
Fixed Bug 45287 : Scanner does not accept character sequence literals
Fixed Bug 36550 : Error recovery with unterminated string is weak
Fixed Bug 41063 : Remove unused K&R C support from ANSI Parser
Fixed Bug 39528 : Function try-blocks are not supported by the parser (ANSI C++)
Fixed Bug 39538 : Parser fails on explicit instantiation of templated operators
Fixed Bug 39536 : Parser fails on templated constructors/conversion operators
Refactored Scanner to make it easier to debug.
TESTS
Moved testBug40007() from ASTFailedTests to QuickParseASTTests.
Added QuickParseASTTests::testBug40759().
Added QuickParseASTTests::testBug44633().
Added ScannerTestCase::testBug44305().
Added QuickParseASTTests::testBug41935().
Moved testBug39525() from ASTFailedTests to QuickParseASTTests.
Added ScannerTestCase::testBug45287().
Moved testBug39528() from ASTFailedTests to QuickParseASTTests.
Moved testBug39538() from ASTFailedTests to QuickParseASTTests.
Added QuickParseASTTests::testBug39536().
Moved testBug39536A() from ASTFailedTests to QuickParseASTTests.
Moved testBug39536B() from ASTFailedTests to QuickParseASTTests.
Search filtering was broken, it would have become more obvious when
searching larger projects with includes.
core:
-modify BasicSearchMatch.equals()
tests:
modified OtherPatternTests.testBug42911() and renamed it
testBug42911_43988
Here's a patch that creates and manages a CDT log file in the .metadata\.plugins\org.eclipse.cdt.core folder. This log file, for now, will contain indexer failure messages and parser failure messages - particularly inclusion failures. These messages were being logged to the PDE error log which, given the number of failures that we can expect on some files, was filling up rather quickly. I put a 5MB limit on the CDT log file after which it gets deleted and a new one gets created. The intent of this log file is to help a user figure out why something isn't being indexed properly - the usual reasons are: i) can't find an include file, ii) symbols not defined.
Also in this patch are 2 minor UI fixes: i) dedicated to Brent - Ctrl+H now brings up the C++ Search Dialog for all C Editor supported extensions, and ii) especially for Alain - F3 will perform a Open Declarations.
Core:
-fix bug43862 - Cannot find macro delcarations using all occurences.
* modified CSearchPattern.createMacroPattern()
Core.tests:
Updated OtherPatternTests::testMacroPattern() to test for bug43862
Core:
-bug42911 - Search: cannot find beyond use of data member
- fix NPE's in BasicSearchMatch.equals & hashCode
TESTS:
-added testBug42911 to OtherPatternTests
core:
- modify CSearchPattern.scanForNames to use same naming convention as
TokenDuple.toString()
- modify MatchLocator.report to use
IASTOffsetableNamedElement.getNameEndOffset()
core.tests:
- added testBug43062 and testConstructorDestructor to
FunctionMethodPatternTests
- modified resources/search/classDecl.cpp & include.h to include more
operators and a constructor
Here's a patch that simplifies how workspace scopes are built - instead of getting info from the CModelManager, we go straight to the workspace. This will improve shutdown/search performance.
Core:
- fixed bug 43834 : Empty Parameter list and parameter list taking one
void do not match
- fix NPE if IScannerInfoProvider returns null IScannerInfo
Tests:
- added testbug43834 to ParserSymbolTableTest
This patch integrates the dependency calculator into
the indexer. As a result the underlying indexer file storage
format has changes. Lots of detail in the change logs of
exactly what changed...
partial fix for bug 43664 - Search cannot report matches outside of
workspace.
This enables non-ui reporting of matches outside the workspace. So
clients of search, like code assist will get external results.
We still need a resource to report a match to the search view so no
external matches in the UI.
core:
Modify Matchlocator to not try and create a link if we have no resource,
instead just use the path
core.tests:
added testNoResourceSearching() to OtherPatternTests
ui:
modify CSearchResultCollector to accept matches without resources, but not
attempt to report
them in the UI.
* src/org/eclipse/cdt/internal/ui/search/CSearchResultCollector.java
Solution to bug#43162 : Code Assist not showing the right return value:
Saved a function return value string in the BasicSearchMatch object.
Created a new package org.eclipse.cdt.internal.core.parser.util and
added ASTUtil class with static methods to help convert an ASTFunction
return type from IASTAbstractDeclaration to String. Note that this was
previously implemented in the CModelBuilder. I just moved it to a common
library for others (BasicSearchMatch) to use.
UI:
Solutions to
bug#43162 : Code Assist not showing the right return value
Bug#43145 : foo function still showing in Code Assist even if "f" is deleted
Bug#42810 : Code Assist adding characters after pressing <enter>
Bug#42861 : Code Assist should be case insensitive.
Tests:
Solution to bug#43162 : Code Assist not showing the right return value.
Solution to Bug#42861 : Code Assist should be case insensitive.
Modified the CompletionProposalsTest to include upper and lower cases
and to include functions with different return values.
core :
- modified MatchLocator to not report local declarations when boolean is
set
- modified SearchEngine.search to take an additional parameter
"excludeLocalDeclarations"
core.tests:
- modified resources/cfiles/CompletionProposalsTestStart.cpp
- modified CompletionProposalsTest.testCompletionProposals
- updated calls to SearchEngine.search
ui:
- update calls to SearchEngine.search. CodeCompletion passes true for
excludeLocalDeclarations
core :
- add parameter references to index
- modify CharOperation.match to allow escaping wildcards
(bug43063)
- modify AbstractIndexer.bestPrefix to handle wildcard escaping in
name (bug43063)
- modify CSearchPattern to handle escaping wildcards (bug43063)
- modify enterFunctionBody and enterMethodBody to fix bug42979
- search for Parameter References
- added setThrowExceptionOnBadCharacterRead to IScanner to help
with wildcard bug43063
tests:
- modified resources/search/classDecl.cpp & include.h to include
some operators
- added testOperators_bug43063_bug42979() to
MethodDeclarationPatternTests
- added testParameterREferences to OtherPatternTests
Fixed Bug 39556 : 'restrict' qualifier is not supported (ANSI C99)
Fixed Bug 43126 : ISourceElementRequestor.acceptParameterReference accesses internal class
Fixed Bug 43062 : Outline is confused on operator methods containing spaces
Cleaned up some warnings in the parser.
TESTS
Moved ASTFailedTests::testBug39556() to QuickParseASTTests.
Cleaned up some warnings in parser tests.
bug42836 - Navigate/search: prepopulate template classes from Outline...
bug42902 - Search: Cannot find typedef
bug43016 - Search: Cannot find macro declarations
Core:
- add Typedefs to index as Types with suffix T (bug42902)
- added addTypedefReference to AbstractIndexer
- modified bestTypePrefix in AbstractIndexer
- added TYPEDEF_DECL, TYPEDEF_SUFFIX to IIndexConstants
- modified acceptTypedefReference in SourceIndexerRequestor
-Searching for Typedefs: (bug42902)
- modified setElementInfo in BasicSearchResultCollector
- added TYPEDEF to ICSearchConstants
- modified CSearchPattern & ClassDeclarationPattern
- implemented acceptTypedef* in MatchLocator
Core.tests
- updated testIndexContents and testIndexAll and added them back into the
IndexManagerTests suite
- modified resources/search/classDecl.cpp to include a typedef
- added testbug42902_TypeDefs to ClassDeclarationPatternTests
- updated testNamespaceReferenceInClassBaseClause in OtherPatternTests
UI
- modified performAction & determineInitValuesFrom in CSearchPage
- modified getImage in CSearchResultLabelProvider