This patch:
- changes the indexer to use whatever source/header extensions are defined in CModelManager
- updated the search shortcut so that Ctrl + H will bring up the C/C++ search in a source/header extension file
- flushes the CDT log file after each index merge (ie. each time the indexer completes an index)
core:
PST changes:
- modify lookupConstructor to copy the constructor list before resolving
on it
- modify checkUserDefinedConversionSequence the same way
- modify isValidFunctionOverload to check for forward declarations
core.tests:
- added testBug43951 to CompleteParseASTTest
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
Bug 43450 - Path strings containing backslashes need quoting by hand
The user needs to input strings in whatever manner necessary for their
build tools to work. If that means quoting them, then quote them.
However, if the user does quote them, then the scanner needs to handle
that when looking for include files:
core:
-modify Scanner.handleInclusion
core.tests:
- added testBug43450 to ManagedBuildTests.java
- added a user include to plugin.xml
the logic for managing the makefiles in the face of a header file
modification. There seems to be a problem (maybe with the dependency
calculation) for dependants in other projects when a header file is moved,
but other than that the builder seems to respond properly.
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:
PST changes for bug 43503 - parser needs to know the different between
ambiguous functions
and no functions when no parameter information is provided
- throw r_UnableToResolveFunction if we have more than 1 function
and no parameter info was given
- handle this case in addUsingDeclaration.
* note that r_UnableToResolveFunction doesn't necessarily mean
ambiguous if we had enough information
Core.Tests:
added testBug43503_AmbiguousUsing() and
testBug43503_UnableToResolveFunction() to ParserSymbolTableTest
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
Continued work on Bug 43062 : Outline is confused on operator methods containing spaces
Partial fix for Bug 43680 : Fix Parser Error Handling
TEST
Added testErrorHandling_1() to CompleteParseASTTest.java.
Two of the fixes, 43614 and 43756, involved changing property files only,
which validates the extra work of externalizing strings from the start!
For 43616, I simply took the advice of the bug reporter and added the '-'
in front of the RM macro in the clean target and the include directives in
the makefile.
The largest part of the fix involves 43220. Until just now, this was a
critical bug in bugzilla, so I addressed it. It has just been downgraded
to an enhancement request. There is now a new entry widget in the linker
options for user objects. The makefile will simply add these to the final
build target's command. Most of the work was done in the plugin file and
the build model to handle the new "type" of option.
Fixed Bug 43644 : 6 triangle icons appearing in outline viewer when typing an error
Fixed Bug 43062 : Outline is confused on operator methods containing spaces
Fixed Bug 39531 : Problems with type conversion operators
TEST
Added QuickParseASTTests::testBug43644() & testBug43062().
Moved ASTFailedTests::testBug39531() to QuickParseASTTests.
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
the new project wizard now filters out targets that should
not be selected by the user, and that the build model
handles inherited option references properly now.
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