========================
IDE 19 NEW FEATURES LIST
========================

Copyright (C) 2026, AdaCore

This file contains a complete list of new features in version 19.
A full description of all features can be found in the documentation
of the corresponding tool.

An ISO date (YYYY-MM-DD) appears in parentheses after the description line.
This date shows the implementation date of the feature.

The following tags are used on the feature entries to indicate:

- gs:            this entry is specific to GNAT Studio
- gps:           this entry is specific to GPS (obsolete, superseded by "gs")
- gnatdoc:       this entry is specific for GNATdoc
- gnatdashboard: this entry is specific to GNATdashboard
- gb:            this entry is specific to GNATbench
- vscode:        this entry is specific to the Ada Extension for VS Code
- wb:            this entry is specific to GNATbench for WorkBench
- ecl:           this entry is specific to GNATbench for Eclipse

If no tag is specified, the entry is relevant to all IDEs.

NF-RC06-041 GPS: Case-insensitive sorting in .gpr files (2018-12-14)

  As for Ada files, clicking on 'Edit/Selection/Sort' will sort the
  .gpr files statements in a case-insensitive way.

NF-RA29-022 GPS: Support for nested external references (2018-12-04)

  GPS now treats nested external references in project files
  generated by gprinstall as scenario variables.

NF-R828-015 GPS: New prototype view to replay past SPARK runs (2018-09-19)

  There is now a new view activated by typing "open jobs" in the
  omnisearch which allows replaying previous SPARK runs.

NF-R820-035 GPS: Improved support for scenario variables (2018-09-05)

  The Project Properties are now better integrated with scenario
  variables. In particular, all the scenarios are now preselected to
  avoid having unnecessary case declarations in project files. Users
  can now also add new possible values to existing scenario
  variables directly from GPS, via the Scenario view's 'Edit'
  button.

NF-R802-030 GPS: New Libadalang view (2018-08-06)

  A new Libadalang view has been added, available through the "open
  Libadalang" action. It offers a view of the Libadalang tree for
  the current editor, and is useful for developing Libadalang
  plugins or scripts.

NF-R801-032 GPS: C preprocessor (cpp) plug-in (2018-08-08)

  There is now a plug-in that defines a convenient way launch cpp on
  a C file, and view the result in an editor.

NF-R731-031 GPS: Desktop backup save (2018-08-21)

  GPS is performing desktop saves when closing/opening a view. If
  GPS is not terminated properly, it will use the backup to restore
  the user's desktop. This behavior can be disabled via a
  preference.

NF-R720-022 GPS: Navigate between declare/begin/end keywords (2018-08-09)

  The actions "Start of statement" and "End of statement" now stop
  on the boundaries of declarations, allowing finer-grained
  navigation.

NF-R716-005 GNATDASHBOARD: GCOV info from multiple object dirs (2018-09-12)

  This is an enhancement of GNAThub GCOV plugin meant to gather GCOV
  information in case of complex Ada projects having multiple object
  directories.

NF-R702-017 GNATDASHBOARD: Cyclomatic complexity in SonarQube (2018-11-30)

  The sum of cyclomatic complexities for all methods of a file is
  computed and displayed as global cyclomatic complexity value in
  SonarQube. This value is used to compute the Coverage graph.

NF-R622-007 GPS: New switch to control the Scenario variables (2018-08-01)

  Add a new switch "--ignore-saved-scenario-values". When set, GPS
  will not read the stored values of the scenario variables in .gps.

NF-R616-001 GNATDASHBOARD: Add --server and --port switches (2018-06-22)

  The --server switch was added to GNAThub in order to be able to
  launch a WEB server using gnathub -P <project> --server. The
  --port switch was added to be able to specify a server port for
  the WEB server. If no port is specified, the default value taken
  by the port is 8000.

NF-R608-032 GPS: VCS status in the Windows view (2018-06-26)

  A new preference has been added to hide/show the VCS status in the
  Windows view.

NF-R607-012 GPS: Possibility to set values from Variables view (2018-06-28)

  When debugging a program, users can now modify the value of a
  variable directly from the Variables view.

NF-R604-041 GPS: Allow editing actions for all editable widgets (2018-06-13)

  Common editing actions like 'goto beginning of line' or 'kill
  line' are now available for all editable widgets (e.g: Python
  console or search entries).

NF-R601-035 GPS: New look for the Variables view (2018-06-11)

  Variables names, values and types are now displayed in separate
  columns to tell them apart easier. The preferences related to the
  old Data graph view have been removed. We now reuse some editor
  preferences to ensure that the colors always relate to the current
  color theme.

NF-R530-049 GPS: Revamp of 'Default' and 'Debug' perspectives (2018-08-14)

  The 'Default' and the 'Debug' perspectives have been revamped. In
  particular, the 'Debug' perspective now displays the 'Variables'
  view by default.

NF-R426-030 GPS: New 'exit search' action (2018-05-02)

  An 'exit search' action has been created, bound to the ESC key by
  default. The purpose of this action is to exit a docked Search
  view to give the focus back to the widget that was focused before
  entering the Search view (usually editors).

NF-R426-012 GPS: New views for reporting GNATprove messages (2018-09-28)

  Messages reported by GNATprove can now be visualized and filtered
  according to their importance and the applied rule (e.g. overflow
  check). A preference has been introduced to display this report
  automatically after running GNATprove and a new SPARK/Show Report
  menu has been added to display it at any time.

NF-R419-028 GPS: New property of GPS.Bookmark class (2018-04-23)

  The 'note' property has been added to the GPS.Bookmark class,
  allowing programmatic access to the bookmark notes.

NF-R416-022 GNATDOC: Reuse parameters' documentation (2018-10-01)

  GNATdoc uses any parameters' documentation from specifications
  when generating documentation for bodies, when there is no
  documentation for the parameters provided in the bodies.

NF-R416-020 GNATDOC: Support of gen_param tag (2018-05-16)

  @gen_param tag can be used to provide description of the generic
  formal parameter of the generic package/subprogram.

NF-R413-020 GPS: Retrieve frames lazily (2018-04-19)

  It is possible to limit the number of frames that are retrieved at
  one time. The Debugger/Call Stack/Frames limit preference can be
  used to set the limit.

NF-R412-038 GPS: File counts displayed in the Locations view (2018-04-12)

  The Locations view now displays, for each category, the number of
  files in which messages are displayed.

NF-R411-004 GPS: Add visual feedback to the omnisearch (2018-04-13)

  When searching something via the omnisearch, a progress bar is now
  displayed while loading the search results and, if the search
  fails, "No results" is displayed at the end.

NF-R406-022 GPS: New 'continue to line' clickable icons (2018-04-27)

  When a debugger is running and if the debuggee was started, a
  "Continue to line" clickable icon is displayed on the editor's
  current line. Clicking on it has for effect to continue the
  execution of the program until the given line is reached.

NF-R405-014 GPS: Display the importance color in Locations view (2018-06-18)

  The color of the highest importance message is now displayed on
  the side of file/category nodes in the Locations view, making it
  easier to identify messages of high importance.

NF-R404-049 GPS: Display Ada inactive code after preprocessing (2018-04-25)

  Add 3 actions in a contextual menu to find the inactive code after
  preprocessing the project. The actions are 'Show inactive code in
  file', 'Show inactive code in subprogram' and 'Clear inactive code
  display'. The project must be compiled using -gnateG to use these
  actions.

NF-R403-040 GPS: Omnisearch popup preserved when switching apps (2018-04-06)

  The omnisearch's popup that displays the search results is now
  preserved when the focus goes out of GPS.

NF-R403-023 GPS: Various improvements made on the Scenario view (2018-04-09)

  When a user types an invalid value for a scenario variable, the
  corresponding entry is now displayed in red. A 'modified' icon is
  also displayed for scenario variables that need to be refreshed.
  Finally, Two new 'Apply' and 'Discard' buttons have been added to
  the bottom of the view instead of the previous tiny local toolbar
  buttons.

NF-R323-010 GPS: New toolbar buttons for debugging (2018-03-26)

  Toolbar buttons have been added to stop and interrupt a running
  debugger.

NF-R316-030 WB: Set gprbuild to use parallel build for WRWB4 Vx7 (2018-05-16)

  Makefile template changed in order to take into account parallel
  build jobs if any, by adding -j followed by the jobs number to
  each gprbuild call. This change will impact the generated
  gnat.makefile for Vx7 WindRiver Workbench 4 applications build.

NF-R316-002 GPS: Support GNATtest in non-default build modes (2018-03-26)

  The GNATtest integration was improved to work with specific build
  modes such as 'gcov', 'debug', etc.

NF-R314-012 GPS: New preference to control gutters' minimal size (2018-03-30)

  The minimal size of editors' gutter (i.e: where line numbers are
  drawn) can now be controled via a preference.

NF-R312-009 GPS: DnD support for Debugger Variables view (2018-03-13)

  Users can now drag a variable from a source editor to the Debugger
  Variables view in order to display it.

NF-R305-021 GB: Support of Eclipse Photon (4.8) (2018-08-09)

  GNATbench features are supported on Eclipse Photon (4.8) Windows
  32-bit 64-bit & Linux 32-bit 64-bit platforms.

NF-R228-039 GNATDOC: Instantiations and renamings support (2018-03-20)

  GNATdoc generates documentation for generic package/subprogram
  instantiations and renamings of packages/subprograms.

NF-R226-005 GPS: Multiple selection in the Project Properties (2018-02-26)

  The Project Properties now supports the multiple selection for
  deletion.

NF-R221-040 WB: Fully embedded static library support (2018-09-12)

  Vxworks-6 & Vxworks-7 static user or kernel libraries can embed
  gnat libraries. This is controlled by the EMBED_GNAT_LIBRARIES
  scenario variable.

NF-R220-038 GPS: Goto Begin plug-in (2018-03-19)

  Add a new plug-in which moves the cursor to the end of the
  declarative part of the current context.

NF-R220-024 GPS: The Log view has been added (2018-03-15)

  It allows to display current GPS log.

NF-R216-009 GPS: New option for Ada Main Units template (2018-02-23)

  An option to add a file created via the 'New/Ada Main Unit' file
  template to the project's main units has been added.

NF-R215-028 GPS: New build_and_run_all.py plugin (2018-02-20)

  This plugin adds a 'Build & Run All' button in the GPS toolbar
  that builds all the executables of your project before running
  them successively from GPS.

NF-R212-029 GPS: New auto_locate_file.py plugin (2018-02-20)

  This plugin synchronizes the Project view with the currently
  selected editor: when switching from one editor to another, the
  file associated with the newly selected editor will be highlighted
  in the Project view.

NF-R212-028 GPS: DnD support has been added to the Project view (2018-02-23)

  Drag'n'drop support has been added to the Project view, allowing
  users to move files across source directories.

NF-R212-010 WB: Add GNATbench support for aarch64-vx7 compiler (2018-03-16)

  aarch64-vx7 based RTP/DKM/libraries can be created/built by
  GNATbench.

NF-R208-037 GNATDASHBOARD: Add GNAThub --subdirs switch (2018-05-31)

  The --subdirs switch was not supported before in GNAThub. This is
  now implemented. The --subdirs switch is passed to the underlying
  tools that GNAThub launches.

NF-R208-018 GPS: Key Shortcuts editor has been improved (2018-02-14)

  Users are now able to define several key shortcuts for an action
  from the Key Shortcuts editor: 'Modify' button has been changed to
  'Add' button. In addition, they can assign the same key shortcut
  to several actions. 'Remove' button has also been improved,
  allowing users to only remove specific key shortcuts instead of
  all those that are assigned to an action.

NF-R202-020 GPS: Auto-highlighting count limit preference (2018-02-20)

  Auto_highlight_occurrences plugin has a new preference to limit
  the count of locations to highlight.

NF-R131-031 GPS: Metrics in the Analysis report (2018-09-20)

  The Analysis report displays the metrics. The gnathub metrics are
  properly parsed and added to the Analysis report.

NF-R130-013 GPS: New task_finished hook has been added (2018-02-02)

  GPS emmits this hook when a background task is finished.

NF-R129-038 GPS: New VCS action to checkout a particular commit (2018-07-30)

  The history view now has contextual menu items "Checkout to the
  selected commit" and "Checkout current file to the selected
  commit".

NF-R125-016 GPS: New option for creating Ada body templates (2018-02-02)

  When clicking on the 'New/Ada Package' contextual menu, an option
  for creating the associated body template is now displayed.
  Moreover, the FileTemplate Python API has been improved: it now
  allows to specify an optional implementation file template when
  registering custom templates.

NF-R125-005 GPS: New icons for debug toolbar buttons (2018-02-20)

  The debug toolbar buttons icons have been changed to adopt a
  modern look and feel.

NF-R117-052 GPS: Clear the Debugger console (2018-01-22)

  The Debugger console now has a toolbar with a "clear" button.

NF-R116-052 GNATDASHBOARD: Speed improvement at gnathub launch (2018-01-16)

  The gnathub executable can be slow to enter into the database the
  structure of the project.

NF-R105-013 GNATDASHBOARD: Sort HTML report by message counts (2018-01-13)

  In the HTML report, it is now possible to sort the lists of
  projects, modules and files by message count.

NF-QC18-044 GPS: Refactoring/Separate subprogram (2018-01-19)

  A subprogram which is defined at a package level can be moved into
  separate package by using the Refactoring/Separate Subprogram
  contextual menu item.

NF-QC07-023 GPS: The debugger execution console can be closed (2017-12-15)

  The console can be closed and opened during debugging session.

NF-QC07-005 GB: QNX Momentics 7 support (2018-05-21)

  GNATbench now allows QNX projects handling in QNX Momentics 7.x
  IDE. QNX executable & library projects can be created, edited,
  built and run/debugged.

NF-QB28-027 GPS: New debugging hooks have been added (2018-01-06)

  New hooks have been added to the Python API
  (debugger_breakpoint_added, debugger_breakpoint_changed and
  debugger_breakpoint_deleted), allowing scripts to react to changes
  in debugger breakpoints.

NF-QB20-015 GPS: Search only for valid actions (2017-11-27)

  When searching actions via the GPS omnisearch, GPS now displays
  only the actions that are valid in the current context.

NF-QB17-027 GPS: More information in the File Properties dialog (2017-10-22)

  The time of the last modification and the version control status
  are now shown in this dialog.

NF-QB13-058 GPS: Append subprogram stub to existing code (2018-11-22)

  GPS is capable to create a subprogram stub for a subprogram
  specification even when the enclosing package has already a body.

NF-QB13-048 GNATDASHBOARD: Support for SonarQube 6.7 LTS (2017-11-30)

  The Sonar Ada Plugin has been upgraded to support SonarQube 6.7
  LTS. The older releases of SonarQube are no longer supported.

NF-QA24-002 GPS: New GPS.Message.cancel_subprogram method (2017-10-25)

  A new method has been added in the GPS.Message python class to
  cancel a subprogram associated with a given message (i.e. the
  subprogram that is called when clicking on the message's icon).

NF-QA23-018 GPS: Multiple selection in the Variables view (2018-02-22)

  The Variables view now supports the multiple selection for
  deletion.

NF-QA23-013 GPS: Multiple selection in the Call Trees View (2017-11-09)

  The multiple selection is enabled, you can now destroy the
  selection rows with one button. The action "collapse all" has been
  replaced by "collapse selected" but the previous behavior can be
  achieved by using ctrl+a. Furthermore, the complementary action
  "expand selected" has been added.

NF-QA23-012 GPS: Multiple selection in the Locations View (2018-02-15)

  The Locations view now supports the multiple selection. The
  expand/collapse all actions have been reworked into
  expand/collapse selected. The previous behavior can be reproduced
  using ctrl-a.

NF-QA23-011 GPS: Multiple selection in the Bookmarks View (2018-02-20)

  The Bookmarks view now supports the multiple selection for
  deletion.

NF-QA20-024 GPS: New GPS.MDI.combo_selection_dialog method (2017-12-12)

  A new method has been added to the GPS.MDI class for displaying
  dialogs with a combobox that can display several choices.

NF-QA06-033 GPS: New Registers view (2017-11-07)

  GPS has a new Registers view, dedicated to viewing and editing the
  contents of the registers while debugging.

NF-QA06-032 GPS: The Debugger Data view has been removed (2017-11-21)

  The old Debugger Data view has been removed, superseded by the
  Debugger Variables view.

NF-Q914-012 GPS: Changes in the Python API (2017-10-10)

  A parameter 'static_path' has been added to the 'contextual' and
  'make_interactive' methods, and should be used when the
  'contextual' parameter of these methods is function.

NF-Q911-036 GPS: Scenario variables from aggregated projects (2018-02-12)

  GPS now allows to see and modify in Scenario tab variables
  declared in aggregated projects.

NF-Q906-022 GPS: Autofix for "use clause has no effect" warning (2017-11-29)

  GPS now offers an autofix for compiler warnings of the form "use
  clause for package "X" has no effect".

NF-Q831-016 GPS: New GPS Learn view (2018-01-11)

  A Learn view is now available in GPS. The purpose of this view is
  to help users familiarize with GPS. The actual contents of the
  Learn view is filtered depending on the current context: only the
  actions that are available in the current context are displayed.

NF-Q621-018 GPS: Scenario variables in aggregate projects (2018-07-20)

  GPS now supports the scenario variables defined in the subprojects
  of an aggregate project. You can manipulate them via the Scenario
  View.

NF-Q614-051 GPS: Autofix for incorrect overriding (2017-11-27)

  GPS now offers an autofix for compiler messages of the form
  "subprogram <bla> is not overriding".

NF-Q317-038 GPS: Scenario view uses a monospace font (2018-06-12)

  The scenario values are now displayed with a monospace font to
  improve their readability.

NF-Q301-043 GPS: New macro to access an environment variable (2018-02-02)

  New macro %(env:VARIABLE) is replaced by value of an environment
  variable.

NF-Q116-022 GB: runtime variable support (2018-05-30)

  When a GNAT project file is created by GNATbench, a runtime
  variable is added. It can be handled through environment or
  scenario variables view.

NF-PC30-003 GPS: Tag editor sections to make them read-only (2017-11-27)

  GPS now automatically makes read-only sections of code which are
  bounded by "--  begin read only" and "--  end read only".

NF-P930-049 GPS: Maximize Notebook when double clicking (2018-01-11)

  Double clicking on the tab of a notebook child will maximize the
  notebook window in the current perspective. Double clicking again
  on one of the maximized notebook's child tab or closing all the
  maximized notebooks child will unmaxize the perspective.

NF-P921-044 GPS: Better gnatemu support in Project Editor (2018-02-13)

  The Project Editor was extended to allow editing gnatemu switches
  and specifying the board.

NF-O731-035 GPS: Key shortcuts for CodePeer annotations (2018-09-10)

  It is possible to assign key shortcuts to the show/hide CodePeer
  annotations actions.
