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.
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...
UI:
Solution to :
bug#43149: Code Assist Preferences: Background Color not working....
bug#43153: Code Assist Preferences: Disabling "Insert single proposa...
bug#43154: Code Assist Preferences: Enable Auto activation not working
bug#42224: Code Assist preferences Do not work properly
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
Core:
- Last part of solution to bug#42453: Expression result types not computed
Added the handling of POSTFIX_TYPENAME_IDENTIFIER
Completed bug#43221: POSTFIX_TYPENAME_IDENTIFIER not implemented
- Solution to bug#43644 : 6 triangle icons appearing in outline viewer when typing ...
Tests:
Enabled CompleteParseASTExpressionTest.testPostfixTypenameIdentifier()
UI:
Solution to bug#43646: Code Assist won't work if missing end bracket
Core:
Solution to bug#43373: No reference to static member in definition (Major)
Solution to bug#43371: constructor incorrectly marked private (Normal)
Tests:
Added CompleteParseASTTest.testBug43373()
Added QuickParseASTTests.testBug43371()
UI:
Solution to bug#43143: Naming of Code Assist Menus/Tab are not consistent
changed both names to Content Assist. No tests provided.
Fixed Bug 42685, Bug 43474.
This patch:
- removes the old CTags Indexer
- removes the remaining Indexer block UI item under Project Properties
- enables the Indexer on all projects
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
- Since I forgot to do this last release, I am removing the
original managed build model schema and extension
points from the cdt core and ui projects.
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
Core:
For bug42815
- Modified ICSearchResultCollector.createMatch to not take a parent
parameter
- modified BasicSearchResultCollector to create the parent string from the
fully qualified name of the node
- modified MatchLocator to keep track of most recent declaration for
reporting purposes
- modified MatchLocator.report to use the most recent declaration
Core.Tests:
- Created search/SearchTestSuite
- Added SearchTestSuite to AutomatedIntegrationSuite and removed the
individual search tests
- Added testReferencesInFunction to ClassDeclarationPatternTests
- Modified resources/search/classDecl.cpp
- Modified testNamespaceReferenceInClassBaseClause, testMacroPattern,
testEnumerators,
and testEnumeratorReferences in OtherPatternTests to test the Match
result strings
UI:
- bug42837 - fixed populating search dialog on function declarations
- bug42829 - prepopulated search dialog to any element declarations
- bug42815 - group together search results with same label
- modified CSearchResultLabelProvider to not display the "-" in the search
label
while sorting by name if there is no parent.
UI
- This patch changes the search context menu in the CEditor, CContentPage and CView:
Search > C/C++ Search...
File Search > Workspace
WorkingSets
- C/C++ Search pops up the search dialog with the chosen element filled out.
- File Search does a text based file search on the Workspace or a chosen WorkingSet
Core
- Added some error checking to the dependency generator.
- Removed any reference to jdt.ineternal package for property files
in TextManipulationMessages and CUIMessages
- Added a CUIMessages.properties file to org.eclipse.cdt.internal.ui