- Added resolving references in a method's qualified name in Complete parse mode.
Example (.cpp file ):
The method "A::B::C::aMethod(){};" used to be an IASTFunction, with name = "A::B::C::aMethod".
Now is an IASTMethod, with name = "aMethod", and references to class A, class B and class C.
- Added the checking for "isConstructor" and "isDestructor" for an IASTMethod in complete parse mode.
Indexer
=======
- Changed file extensions to prevent header files from being indexed (they will be indexed via inclusion)
Search
=======
- Added scope checking to MatchLocator
- Modified CSearchPattern to allow for destructor searches
- Added debug tracing statements to SearchEngine
- Added debug tracing statements to MatchLocator
UI
==
- Converted CTags based OpenOnSelectionAction to OpenDeclarationsAction. For now, we do a search on all types with the selected name.
- Hooked up OpenDeclarationsAction to search engine
General
=======
- Modified start up code to set debug trace options (which are defined from the launcher). I've added the following trace components:
- dependency
- indexer
- indexmanager
- matchlocator
- model
- search
- parser
- Added trace debug statements to CModelBuilder
- Modified Util.java to make use of IDebugLogConstants
Fixed bug39526 - Parser doesn't handle initializers correctly.
Fixed bug41520 - FullParse : Constructor Initializer is mistaken as function prototype
TESTS
Moved testBug39526() from ASTFailedTests.java to QuickParseASTTests.java.
Moved testBug41520() from FullParseFailedTests.java to CompleteParseASTTest.java
Fixed Bug 39530 - More problems with initializers.
Fixed Bug 37424 - Crash when opening big files
Refactored pointerOperators & cvQualifiers to not throw backtracks in optional case.
Added tracing support to cdt.core plugin via .options file.
TESTS
Added QuickParseASTTests::testBug39530().
Core:
-Solutions to bug#38985 & bug#38986
In IStructure:
getField(String) Implemented
getFields() Implemented
getMethod(String) Implemented
getMethods() Implemented
isAbstract() Implemented
getBaseTypes() Has been replaced by getSuperClassesNames()
getAccessControl(int) Has been replaced by getSuperClassAccess(String name)
- Added some methods to IMethodDeclaration, namely:
isFriend(), isInline(), isVirtual(), and isPureVirtual().
Core Tests:
Enabled some tests in the IStructureTests, namely:
testGetFields(), testGetField(), testGetMethods(), testGetMethod(),
testIsAbstract(), testGetBaseTypes(), and testGetAccessControl().
Indexer
- Added additional file extensions to supported indexed files
- Changed the parser instantiation to pass in retrieved build info
- Added function decl index entry based on enterFunctionBody
- Added method decl index entry based on enterMethodBody
- Added forward decl refs
- Added debug tracing to AbstractIndexer
Search
- Changed matching and reporting functions to handle nodes
of type IElaboratedTypeSpecifier
UI
- Added a search dialog pop up item to the context menu for the
CEditor and CContentOutlinePage
I forgot (again) that the Eclipse patching mechanism does not pay
attention to gifs. So, here are the build icons redone with the proper
transparency settings. Now they no longer show up as an annoying white
blob on the grey Motif background/ or Gtk selection box.
Core:
Modified the parser's newExpression() to send all its sub expressions to the newDescriptor and check on each expression to find references in the CompleteParserASTFactory.createExpression().
Core Tests:
Added testNewExpressions() to CompleteParseASTTest to test new expression's references.
This patch contains some minor UI changes and a big chunk of work to add
built-in symbols and includes search paths to a tool specification.
The UI change is a switch from dynamically resizing the property page when
an option category is selected from the list, but rather using a scrolled
edit area. Now, if the option set is larger than the viewable area, a
horizontal and/or vertical scrollbar is displayed.
In terms of built-ins, there is no UI support to change the values just
yet. That is coming, but I wanted to get the framework and some
definitions in place so that the indexer and scanner can start using them.
Added X-Reference support for ArrayModifiers and Exception Specifications.
Fixed Bug 41551 - HandleInclusion always throws ScannerException on local includes.
TESTS
Added CompleteParseASTTest::testArrayModExpression(), testPointerVariable() &
testExceptionSpecification().
Added constructor expression support for variables.
Added constructor chain x-reference support for methods.
TESTS
Added testBug41520() to FullParseFailedTests.java.
Added testConstructorChain() to CompleteParseASTTest.java
Added Expression x-reference support into Parser.
TESTS
Added testSimpleExpression(), testParameterExpressions() &&
testNestedNamespaceExpression() to CompleteParseASTTest.java.
In order to work through CExtensionPoint mechanism, I have to change the
existing extension point entries for the Managed and Standard builders to
the following (all future builders will have to conform to this as well):
<extension
id="ManagedBuildManager"
point="org.eclipse.cdt.core.ScannerInfoProvider">
<cextension>
<run
class="org.eclipse.cdt.core.build.managed.ManagedBuildManager">
</run>
</cextension>
</extension>
<extension
id="StandardBuildManager"
point="org.eclipse.cdt.core.ScannerInfoProvider">
<cextension>
<run
class="org.eclipse.cdt.core.build.standard.StandardBuildManager">
</run>
</cextension>
</extension>
As well, the ManagedBuildManager and StandardBuildManager must extend
AbstractCExtension.
The new project wizards for managed and standard projects have to be
modified to register the right class as the scanner info providers for the
project. The example below shows the managed project wizard code, but the
standard project wizard is similar.
try {
ICDescriptor desc =
CCorePlugin.getDefault().getCProjectDescription(project);
desc.remove(CCorePlugin.BUILD_SCANNER_INFO_UNIQ_ID);
desc.create(CCorePlugin.BUILD_SCANNER_INFO_UNIQ_ID,
ManagedBuildManager.INTERFACE_IDENTITY);
} <snip>
Clients use a new method defined in CCorePlugin
public IScannerInfoProvider getScannerInfoProvider(IProject project) {
IScannerInfoProvider provider = null;
if (project != null) {
try {
ICDescriptor desc = (ICDescriptor)
getCProjectDescription(project);
ICExtensionReference[] extensions =
desc.get(BUILD_SCANNER_INFO_UNIQ_ID);
if (extensions.length > 0)
provider = (IScannerInfoProvider)
extensions[0].createExtension();
} catch (CoreException e) {
}
}
return provider;
}
to get the information provider as shown in the updated JUnit test code
below:
// Find the first IScannerInfoProvider that supplies build info for the
project
IScannerInfoProvider provider =
CCorePlugin.getDefault().getScannerInfoProvider(project);
assertNotNull(provider);
As is the case now, clients implement the IScannerInfoChangeListener
interface and pass themselves to the provider in a subscription message.
There is also a new method on the IScannerInfoProvider interface that
allows the client to get information immediately as shown below:
IScannerInfo currentSettings = provider.getScannerInformation(project);
The ManagedBuildManager::getScannerInfo(IResource) method will be
deprecated, then removed before the end of this release cycle.
Hi,
This patch updates code completion to use search. It also includes my previous patch which enabled the class wizard to use search as well.
Current Code Completion has the following restrictions:
- It will only work within the scope of a function or a method.
-It will look for globals (variables, functions, classes, strucs, unions, enumerations, and macros).
-In the scope of a method, it will also look for the methods and fields that belong to the owner class of this method.
- It will NOT search the parent classes of the method in the method scope case.
- It will NOT de-reference after a "." or an "->"
Added Complete Parse support for ASM Definitions.
Added isVolatile() to abstract declarations.
Added Complte Parse support for elaborated types / forward declaration of classes.
Fixed some robustness issues.
TESTS
Cleaned up Junit parser-related tests so that failed tests are now expected failures w/defects associated with them.
Updated CompleteParseTests for forward declaration/elaborated types.
Added Search/ParseTestOnSearchFiles to AutomatedSuite.
Updated Search tests to workaround bug 41445.