GNATbench – 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 Workbench, the Wind River Systems (WRS) extension to Eclipse for embedded systems development. The Workbench integration supports Ada development using the numerous kinds of 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, in which Workbench use is intended). In both cases the Ada tools are tightly integrated.
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.
GNATbench supports the standard Problems view, in which warnings and errors from the tools are indicated. These indications 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, and other features. All versions of Ada are supported, from Ada 83 to Ada 2012.
The language-sensitive editor may be able to propose corrections for syntax and semantics problems identified by the GNAT 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.
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.
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.
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.
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 for Ada-specific constructs, such as tasks, and is fully Ada-aware using an enhanced GDB debugger engine provided by GNAT.
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.