CDT 3.0 - New and Noteworthy

Oh the summer is here and the software is hot!

Right on the heels of the Eclipse 3.1 release is the CDT 3.0 release, providing something new for all the C and C++ developers to play with while they soak up the rays of summer! The CDT 3.0 download is now available though the CDT download page and requires version 3.1 of the Eclipse framework.

This version of CDT provides a number of performance improvements as well a some new features:


General Improvements

DOM Based Language Backend

The CDT 3.0 is now served by a much more powerful language model in the form of a DOM that helps make everything from the C/C++ Outliner to Searching to Re-factoring to Class Browsing faster and more accessible to plugin developers.

K&R C Language Support

In addition to the new DOM serving the backend source code model, the CDT native parser is also much more tolerant of K&R C Language dialects.

Faster Searches

Significant work has gone into improving the performance and speed of the C/C++ parser and the efficiency of the indexer. As a result searches (both general and specific as in search for references and declarations) are faster and more accurate than previous releases.


C/C++ User Interface

Build Environment Control

The environment used when kicking off external commands to build can now be fully configured. The environment settings are available on Standard Make and Managed C/C++ projects or can be set directly when creating new projects directly from the New Project dialogs for C/C++ projects.

Binary Parser Options

The binary parsers have been made more generic with the capability to redefine what external commands they use for data interpretations. Configure the settings in the Project Properties or at New Project creation time.

New Discovery Capabilities

Further work has been done to facilitate the discovery of compiler and project settings, including the ability to read in the output from an existing build file.

Indexer Selection

When you can't make them happy, give them choice! C/C++ source indexers are now plugable components (each providing to different feature support) allowing users to select from:

No indexing
No support for searches or cross referencing
CTags utility based indexing
Fast, good performance, minimal configuration
Search for declarations only, no refactoring and no search for references
Reccommend using Exuberant CTags 5.5.4
CDT parser based indexing
DOM model based, requires proper project configuration (defines and includes)
Full searching, cross referencing and refactoring supported

Drag and Drop Support

The C/C++ Project and the C/C++ Outline views now both have improved support for dragging and dropping of code elements and binaries.

Make Target Filters

The Make Targets view can now be a little more clutter free by enabling the Hide Empty Folders filter in the view.

New Editing Commands

Do more with less effort, additional C/C++ Editor keybindings are available now for bracket matching Ctrl+Shift+P, block /* comments */ Ctrl+Shift+/,\, function and method navigation Ctrl+Shift+Up/Down and more flexible annotation/marker navigation.

Editor Platform Alignment

The C/C++ Editor is more aligned with the platform preferences and settings. All of the common text editor settings are available through Window > Preferences > General > Editors > Text Editors

A few new features have been added to the C/C++ Editor syntax highlighting, accessed through Windows > Preferences > C/C++ > Editor > Syntax, including the colouring of operators, braces and numbers and a new in-place outline that can be activated Ctrl+O


Debugger

New Modules View

All of the binary components, or modules, are now displayed in the debugger Modules view. This includes dlls, shared objects and the binaries themselves. Additionally, each module can be expanded allowing the user to put breakpoints directly on binary components without the need to go to the C/C++ Project view

Memory View

The debugger now makes use of the standard platform Memory view.

Register Groups

The Registers view now supports the concept of register groups, allowing users to defined collection of registers that are relevant for their environments.

New Editor Commands

The Run to line and Resume at line commands are now exposed and visible through the C/C++ editor while debugging.


Managed Build System

Configuration Overhaul!

There has been an enormous amount of work done to clean up and improve the user experience and workflow for developers (and integrators) using the Managed Build system. The new C/C++ Build project preference shows the number of new enhancements:

  • Full control over the output artifact and extension:

  • Pre and Post build command execution

  • Per project and per configuration environment variable settings

  • Build Macro Support

    The managed build preferences now support a wide set of macros that can be incorporated into your project. The system environment settings are inherited and individual macros can be set globally or local to a particular project that define Strings, Files, Directories or lists of any of these items.