- 1 Release
- 2 General
- 3 Editor
- 3.1 Open Declaration
- 3.2 Content Assist
- 3.3 Search
- 3.4 Placement of const
- 4 Makefile Editor
- 5 Code Analysis
- 6 Parser
- 7 Formatter
- 8 Build
- 9 Debug
- 10 API modifications
- 11 Bugs Fixed in this Release
C++11 "auto" variables
For variables whose type is declared with the C++11
auto keyword, Open Declaration on the
auto opens the declaration of the deduced type (bug 511522).
Following includes in inactive code paths
Open Declaration can now follow
#includes in inactive code paths (bug 379623).
Open Declaration now supports navigation from the definition of a class template to its forward declaration.
Open Declaration in assembly files
The Open Declaration action is now supported in assembly files.
Completion of member functions when taking the address
After a classname qualifier such as
MyClass::, CDT generally only offers static methods as completion proposals, since nonstatic methods need to be called on an object.
However, sometimes the address of a nonstatic method is taken, usually to be passed as a callback. CDT now recognizes the
&MyClass:: form used to do this, and offers nonstatic methods as completion proposals (bug 395562).
Improved content assist in inactive code
Content assist in inactive code (code disabled by an
#ifdef) was improved in bug 72809. It's still not on par with content assist in active code, but completions for entities declared in active code preceding the point of invocation are now proposed.
Included files with no file extension
CDT now offers completion proposals for files with files extensions other than the usual C/C++ header file extensions (such as
.hpp) when content assist is invoked in an
#include directive. This is useful for libraries that use header names with no extensions, such as Qt or KDE, as well as scenarios where non-header files (such as resource files) are included.
Enhanced parameter hints
CDT's parameter hints have been enhanced (bug 461680). They now show the full signature of the function being called, including its return type, containing class (if it's a method), and whether it's virtual.
Constructor completion with uniform initialization syntax
Enclosing definition of macro reference
In the Search view, the enclosing definition (function and class if applicable) is now shown for macro references the way it is for references to other entities (bug 508216).
const keyword can now be placed left or right to the type in a declaration specifier (bug 491957). A new preference sets the location (Preferences -> C/C++ -> Code Style):
When CDT generates new source code (for exmaple in a refactoring) the const keyword will be written accordingly:
To adapt all
const occurrences in the current file there is an action Align Const in the Source menu (Mnemonic
Additional gcc Quick-fixes
Quick fixes have been added for a variety of errors generated by the gcc compiler. Such fixes include: missing semi-colon, use of . operator instead of ->, use of -> operator instead of ., use of wrong member (gcc 6).
More accurate binding resolution
This release fixes a long-standing issue where the indexer would resolve names in a source file that referenced entities that did not have a declaration in any file included by that source file, only in other files in the project.
Prebuild task and parallel make
This solves (bug 340300).
Support to extend the toolbar of the Debugger Console pages
Just like the standard Console view, the Debugger Console view now allows the use of the Console Page Participants extension point. By using this extension, extenders can add buttons to the toolbar of the different pages of the Debugger Console view. An example of such additions can be found in org.eclipse.cdt.examples.dsf.gdb/GdbExtendedConsolePageParticipant.java and has been copied below.
<extension point="org.eclipse.ui.console.consolePageParticipants"> <consolePageParticipant class="org.eclipse.cdt.examples.dsf.gdb.ui.console.GdbExtendedConsolePageParticipant" id="org.eclipse.cdt.examples.dsf.gdb.debuggerConsolePageParticipant"> <enablement> <and> <instanceof value="org.eclipse.cdt.debug.ui.debuggerconsole.IDebuggerConsole"/> <!-- The below check only works with the Debugger Console view and not the standard console view. But that is ok since this contribution is for the Debugger Console views only. --> <with variable="org.eclipse.core.runtime.Platform"> <test property="org.eclipse.core.runtime.bundleState" args="org.eclipse.cdt.examples.dsf.gdb" value="ACTIVE"> </test> </with> </and> </enablement> </consolePageParticipant> </extension>
Furthermore, a new method was added to provide access to the full console widget. This allows to modify or extend the behaviour of the full GDB console. The method in question is GdbFullCliConsolePage#getTerminalViewControl() which returns an ITerminalViewControl. ConsolePageParticipants are provided with the console page in their init() method; they can then cast it to GdbFullCliConsolePage to access the ITerminalViewControl.
This support was a contribution from Stephen Flynn from Dell-EMC.
Source not found editor modifications
User have now 3 choices to display the source not found editor :
- Source you were jumping into is not found: - Function name known but can't find its source: - Unknown function name
- The method MIVariableManager.MIVariableObject#isComplex() has changed to always return false because we can't reliably determine whether a variable is complex or not (see bug 399494). Extenders should make sure that code calling this method will not misbehave.
Bugs Fixed in this Release
See Bugzilla report Bugs Fixed in CDT 9.3