Ada Development Plug-In for Eclipse and Wind River Systems Workbench

GNATbench, the GNAT Pro Ada plug-in for Eclipse, brings the advantages of AdaCore's GNAT Pro toolset to the Eclipse development environment framework. GNATbench provides the functionality and capabilities one expects from the Eclipse IDE with the standard look-and-feel that facilitates learning and ease of use.

GNATbench supports both stand-alone Eclipse and also Workbench, the Wind River Systems (WRS) extension to Eclipse for embedded systems development. The Workbench integration supports Ada development using the various VxWorks real-time operating systems provided by WRS. The stand-alone version is primarily for native development but also supports cross development (except for VxWorks development, for which Workbench should be used). In both cases the Ada tools are tightly integrated.

Outline View

GNATbench supports the standard Outline view, offering a high-level view of the Ada source code to facilitate program comprehension and development. Selecting an entry in the Outline will take you to the corresponding location in the source file editor.

Problems View

GNATbench supports the standard Problems view, in which warnings and errors from the tools are reported. These reports are interactive, opening the corresponding resource when selected. GNATbench supports the Problems view with all appropriate GNAT tools.

Ada Language-Specific Editor

An Ada-specific editor supplements the basic Eclipse editor with a number of capabilities including syntax coloring, parentheses highlighting, block folding, automatic indentation and automatic casing, as well as other features. All versions of Ada are supported, from Ada 83 to Ada 2012.

Quick Fix

The language-sensitive editor can sometimes propose corrections for syntactic and semantic errors identified by the GNAT Pro compiler. This possibility is indicated by an icon in the editor marker bar, opposite the source line containing the problem. Invoking Quick Fix automatically applies the selected correction to the source code.

Code Browsing and Navigation

You can traverse the code by treating any name as a hyperlink within the editor. Given an existing identifier, you may visit the corresponding declaration or body. Hovering the mouse cursor over an entity in the Ada editor causes the profile and documentation to appear in a tooltip. A global search can display all references in a search results window. Selecting one of these references then takes you to the corresponding file.

Automatic Code Completion

"Code Assist" is an Eclipse editing capability that completes identifiers based on semantic analysis and context. GNATbench implements Code Assist for all versions of Ada. Simple identifiers, subprogram formal parameters, and entities named using the "dot notation" are candidates for completion.

Stand-Alone Eclipse-Specific Features

The stand-alone version of GNATbench provides a dedicated builder for building systems written in Ada. Errors and warnings are indicated in the Problems view, as usual. Individual files may be compiled as well. Native as well as cross GNAT compilers are supported.

For debugging, the stand-alone version enhances the C/C++ Development tools (CDT) graphical debugger interface with Ada-specific constructs, such as tasks, and is fully Ada-aware using an enhanced GDB debugger engine provided by GNAT.

Workbench-Specific Features

The GNATbench Ada builder is integrated with the Workbench builder so that Ada code is automatically compiled and included when an entire system is built, including mixed-language builds. Any errors are displayed in the standard Workbench Problems view and are traversable in standard fashion.

The embedded systems debugger is automatically provided by Wind River with Workbench, and can debug Ada source code along with code written in other supported languages.

Interoperability with GPS

Ada developers, whether using GNAT projects for stand-alone Eclipse or Wind River Workbench, can also use the GNAT Programming Studio (GPS) on those projects without requiring a change to project definition or organization.

Getting Started with GNATbench