- Ada 2012
- Ada 2005 / 95 / 83
- Embedded Development
- Formal Methods
- Open Source
- Safety-Critical Development
- Static Analysis
WB: create missing scenario.makefile during build
When building projects having GNATbench nature, if scenario.makefile is not found, it is created before the Wind River Workbench build is started. This is useful for headless builds done by continuous builders when the scenario.makefile file is not under version control.
GB: add check syntax/semantic, recompute xref menus
Check Ada File(s) Semantic, Check Ada File(s) Syntax, Recompute Xref Info & Compile All Sources contextual menus added.
GPS: changing perspective from main toolbar
GPS now includes a new button to the right of the main toolbar, to let users easily switch perspectives.
GB: use legacy cmd when target not found in Makefile
When running a GNATbench command (compile/build/clean/...) on a GNAT project where builds are handled by a Makefile, if the expected target is not found in the Makefile, the standard command (ie, the one used for GNAT projects where builds are not handled by a Makefile) is used instead.
GNATdoc: support for Ada 83 and Ada 95
GNATdoc now supports processing Ada 83 and Ada 95 codebases, in addition to Ada 2005 and 2012.
WB: revision controlled scenario variable settings
Scenario variables values related to a project are stored in its .gb_project file to enable having them version controlled.
WB: run quickfix from Ada editor left ruler
Quickfix process can be initiated clicking Ada markers in Ada editor left ruler. Initiating quickfix from problems view is still supported.
WB: add support of ppc64-vx7 target
Wind River Workbench projects for powerpc64-wrs-vxworks7 platform can be converted to Ada project and then built through Workbench builder.
GPS: speed up Project and Files views
Creating either views is now much faster, in particular on large projects where a directory contains several thousands of files.
GPS: Number of replacements reported
GPS now reports in the Messages window the number of occurrences that have been replaced when 'Replace All' button of the Search view is clicked.
GPS: new setting to preserve build messages
The local configuration menu of the Locations view now contains an item "Preserve message" to control whether to keep build messages for files that are not being recompiled.
GPS: hidden files in the Files view
The Files view now reuses the same preference as the Project view to hide some files (those starting with "." by default, although this can be configured in the preferences dialog).
GPS: resize Debugger Data items when pref changes
When the preferences that control the maximum size of items are changed in the Preferences/Debugger dialog, this immediately impacts already displayed items in the Debugger Data view.
GB: add library pages to GPR file creator
During the execution of commands "new Ada project" or "convert to Ada project", the GPR file creation wizard is displaying two new pages when the user asks for a library GPR file. These pages allow configuring library attributes.
GPS: remove entity information in Project view
We no longer display the list of entities defined in a file, in the Project view. This information is already available in the Outline, whenever a file is selected in the Project view. Removing it allowed us to speed up the display of the tree view.
GPS: relative paths in the Omnisearch
The Omnisearch can now also display project relative paths instead of absolute ones. This behavior can be controlled via a checkbox present in the Omnisearch settings.
GPS: non-exclusive key bindings in plugins
It is now possible to bind keys to actions without unbinding the key. This means that the same key binding might apply to several actions, and the action that gets executed is the first one for which the filter matches. In particular, this allows reusing keys like <enter> or <tab> in contexts other than the editor.
GPS: new action to maximize a window
A new action ("maximize window") is provided to make the central area of the desktop (that contains the editor) occupy the full GPS window, hiding all other views. Executing the action again goes back to the previous layout. You can bind a key shortcut to this action via the Preferences/Key Bindings menu.
GPS: cross-references from runtime files
It is now possible to force GPS to index runtime files so that you can perform cross-references from them (it was always possible to cross-ref from your own sources to the runtime). This takes longer to index, so is disabled by default. See the preference Project/Cross References in Runtime Files.
GPS: toolchain information in About dialog
The About dialog now contains the name of the current project's toolchain if this toolchain is not the native one.
GNATdoc: Documentation_Dir attribute
Attribute Documentation_Dir is defined in Documentation package now. Attribute with same name in package IDE is obsolete. Its support will be removed in future version of GNATdoc.
GPS: Windows view sort order
Two new settings have been added to the Windows view: you can now choose whether to show nodes for notebooks that have a single window (the default is still to display the window itself, but not its notebook in this case); and you can choose whether to sort windows alphabetically, or to preserve the order of tabs within the notebooks. When the notebooks are not displayed, and sorting is disabled, the order depends on which window had the keyboard focus last, which provides a convenient way of switching quickly between a few editors among a lot of them.
GPS: using keyboard in Outline view
It is now possible to use <enter> in the Outline to jump to the corresponding entity (same as clicking on the line).
GPS: mouse buttons 4 and 5 for locations
The mouse buttons 4 and 5 (available on some high-end mice) are mapped to the locations command, and used to move in the locations history (back to the previous position, and back). This is hard-coded, and cannot be changed.
GPS: new action “locate in Files view”
GPS now exports a new action to find the current file in the Files view. This action is not visible by default in the contextual menu (as opposed to Locate in Project view) in an effort to keep the menu simple. However, it can be added with a small python script as in:
GPS.Action("Locate in Files view").contextual("Locate in Files")The menu /Navigate/Locate in Files view has been added.
GPS: ask before overwriting read-only file
GPS now checks the permission on the disk before saving a file (rather than just the read-only status of the editor). If the file is read-only on the disk, it displays a confirmation dialog to let you chose whether to overwrite (and, in the context of Clearcase, hijack the file).
GPS: compute the GNAT Runtime menu dynamically
The Help -> GNAT Runtime menu is now computed from the runtime that is actually being used for the current project, rather than a static image of a native runtime. This is particularly helpful when working with embedded or restricted runtimes.
ECL: AJIS examples integration
A new "AJIS examples" importer is now available. It is accessible from "File > Import..." menu in Ada folder. This importer requires AJIS 17.0.20160919w or later installation. These AJIS versions contain GNATbench examples that can be imported, built, run and debugged in GNATbench without modifications.
GPS: display list of mains as flat menu
When a project (and its subprojects) have a small number of main units, and the root project is not an aggregate, we display the /Build/Project/, /Build/Run/ and /Debug/Initialize menus as a flat list of mains, rather than introduce one extra level of menu for the name of the project.
GPS: contextual menu to set watchpoint
Right-clicking on a variable while the debugger is running will now set a watchpoint, so that the debugger stops any time the variable is modified.
GPS: new menu /File/Reset All Perspectives
This menu restores the default window layout. This is in particular useful to reset the Debug perspective that has changed in this release of GPS.
GPS: GPS.Process accepts a list of args
The Python GPS.Process() now accepts the command as a list of arguments instead of a string, which makes it easier to handle arguments with spaces (no need for quoting)
GPS: GUI enhancements to the Omnisearch
The Omnisearch feature has received a number of enhancements:
- A default key shortcut (control-u) brings up the omnisearch - When bringing up the omnisearch through the key shortcut completions start appearing even before anything is typed in the entry. This allows, for instance, using the arrow keys to select one of the currently open windows. - The size of the popup window has been increased to take up to 2/3 of the main window. This is useful when listing directories with long names, for instance. - The highlighting of the fuzzy-matched characters now uses a color. - If the text in the global entry has been manually deleted, it no longer reappears next time the search is activated.
GPS: new %TP macro in builder targets
A new macro %TP is available in builder targets. It will be replaced with the name of the project file to which the main unit belongs. It is for instance used when you do not want to pass the root project to gprbuild, but directly the unit's own project
GPS: outline option to hide parameter names
A new setting for the Outline view allows you to hide the name of parameters in the profile of subprograms. This saves some space, and helps differentiate homonym subprograms.
GPS: Pass the configuration file to the builder
The configuration file (.cgpr) set by the "--config" command-line switch is now passed on to the builder. Also, GPS now also passes the configuration file which was automatically generated when the "--autoconf" option was given.
GPS: search icons in GPS_CUSTOM_PATH
Icons used in plug-ins are now also searched in any of the directories specified in the environment variable GPS_CUSTOM_PATH.
GPS: more info when reviewing a codepeer message
The CodePeer dialog for reviewing a single message now contains information about a message, similariliy to the dialog for reviewing multiple messages.
GPS: preserve more build errors after recompiling
When the Locations view contains build errors, and one of the files is being recompiled, the Locations view will now only update the entries for that file, rather than removing all build errors.
GPS: wrong file view for multi-drive projects
When the 'Show files from project only' option is enabled, the Files view now correctly displays the project files that reside on multiple logical drives.
GPS: new trace for old Xming compatibility
A new trace "Views.No_Transient_Views" has been added. When activated (in .gps/traces.cfg or via the --traceon switch), this prevents the use of "transient" windows for floating views. This is needed mostly for compatibility with the Xming X11 server which does not allow resizing transient windows, and calculates their size wrongly. Another trace "Store_Window_Positions" has been added: this is on by default, and, when switched off, will prevent GPS from saving the size and positions of floating windows.
GPS: improved behavior of the ESC key
The Escape key can now be used to close floating dialogs (such as the Search dialog, or the Preferences dialog) even when the input focus is not currently on these dialogs.
GPS: Messages are displayed with different font
CodePeer's messages with lifeage "removed" are displayed with different font to help distinguish them from regular messages.
GPS: new “All files from prj dirs” in Files view
A new local configuration has been added to the Files view, to show all files in any of the directories of the project. In particular, this shows the object and executable files in the object directories.
GPS: Show color of messages in the Locations view
For messages which have an associated background color (for instance compiler errors), the Locations view shows this background color on the side of the row for this message.
GPS: Breakpoints view can be displayed anywhere
Since we can now set breakpoints even when no debugger is running, it is also useful to edit them outside of the Debug perspective.
GPS: preserve the size of simple text input dialogs
The size of simple text input dialogs (e.g: the 'Debug/Run' dialog) is now preserved: GPS will now restore it when the dialog is displayed again in the future (either in the current session or in a later session).
GPS: changes in Bookmarks view
You now need to double-click on a bookmark to jump to the corresponding editor, or long-click to start editing (although there is still a button in the local toolbar for that purpose). This makes it more consistent with other views in GPS like the Breakpoints view. Bookmarks are no longer sorted by default. Instead, you can use drag-and-drop to organize them in the order you want. Bookmarks can be grouped: when you drag and drop a bookmark on top of another bookmark, a new group is created that contains both. These groups can be used to organize large numbers of bookmarks. Add a filter to the Bookmarks view, to match what is done for other views. Comments can be added to bookmarks, either that an explicit toolbar button or dragging and dropping text from a source editor. A new configuration "link with editor" is also available, which automatically selects the first bookmark associated with the current editor line, whenever the latter changes.
GPS: double-click in breakpoints to see editor
If you double-click on a breakpoint in the Breakpoints view, GPS will show you the corresponding editor (same as using the toolbar button, but more convenient). Likewise, a long click on the breakpoint will show its details, same as clicking on the toolbar button would do.
GPS: adjust score for runtime files in omnisearch
When you search via the omnisearch, GPS will now ensure that matches in runtime files appear only after matches in user code.