========================
IDE 22 NEW FEATURES LIST
========================

Copyright (C) 2026, AdaCore

This file contains a complete list of new features in version 22.
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-UA21-031 WB: VxWorks 21.xx support (2021-10-29)

  GNATbench now supports VxWorks 21.xx projects.

NF-U805-025 GNATDASHBOARD: GNAThub's new --sonar-work-dir switch (2021-09-03)

  The new sonar-work-dir switch allows specifying a path to a custom
  folder used as a work directory by the sonar-config and the sonar-
  scanner plugins. This directory collects all the data needed by
  the Sonar Scanner execution.

NF-U803-019 GNATDASHBOARD: Add support for SonarQube 8.9 LTS (2021-09-09)

  The Sonar Ada plugin was updated in order to support SonarQube 8.9
  LTS. The older versions of SonarQube are no longer supported.

NF-U119-021 GNATDASHBOARD: GNATstack support in SonarQube (2021-03-30)

  GNATstack support is added to GNATdashboard Sonar Ada plugin. This
  feature allows to upload and display in SonarQube dashboard the
  issues reported by the GNATstack plugin through GNAThub.

NF-V323-011 GS: Allow extra mouse buttons as key shortcuts (2022-03-31)

  It's now possible to bind extra mouse buttons to actions in the
  key shortcuts (they will be named button_x).

NF-U906-036 GS: Highlighting for configuration pragmas files (2021-09-25)

  Configuration pragmas files with the .adc extension are now
  highlighted like Ada files.

NF-U812-033 GS: Improved "goto beginning of line" behavior (2021-08-13)

  GNAT Studio's behavior for "goto beginning of line" has been
  revised to improve navigation in heavily indented code. Before
  this change, the first execution of the command would go to the
  first column and the second execution would go to the first
  nonblank character. Now, the first execution will go to the first
  nonblank character and the second execution will go to the first
  column.

NF-U804-020 GS: Preference to enable/disable completion snippets (2021-08-13)

  A new preference has been added in the LSP preferences page to
  enable or disable completion snippets when LSP completion is
  active. Note that snippets are disabled by default.

NF-U708-027 GS: Keep Files View collapsed state after refresh (2021-09-22)

  When refreshing the Files View, the state of the directory tree is
  now preserved.

NF-U707-025 GS: Timeout for filter and search entries (2021-09-29)

  All the GNAT Studio filter and search entries now have a small
  timeout (150ms) before actually triggering searching or filtering.
  This makes searching and filtering faster since we don't start
  searching/filtering on each typed letter.

NF-U707-024 GS: Address bar for Files view (2021-08-02)

  An address bar is now provided in the Files view, which allows
  entering the path of a directory to be displayed. Also, the
  directory selection dialog is available via the tool button.

NF-U630-025 GS: Scrollbar overlay in editors (2021-07-20)

  The scrollbars in the editors are now using the overlay mode and
  thus are disappearing when not interactable. This behavior can be
  changed by setting the GTK_OVERLAY_SCROLLING environment variable
  to 1.

NF-U625-022 GS: Add pulse mode feedback for Tasks (2021-08-10)

  By setting the total progress of a task to 0 with
  GPS.Task.set_progress: the task's bar will start to pulse. Then a
  custom message indicating why the Task is idle can be set with
  GPS.Task.set_idle_label.

NF-U625-021 GS: Add GPS.Console.set_automatic_scroll (2021-07-10)

  Add a method to enable/disable the automatic scroll in a Console.

NF-U617-013 GS: Exporting whole content of a browser (2021-06-25)

  The "PDF/PNG/SVG (whole graph)" options have been added to "Export
  to" combo-box to export the whole graph instead of the visible
  part only.

NF-U422-039 GS: New parameter in GPS.Process constructor (2021-04-23)

  A new optional task_manager_name parameter has been added. This
  can be used to set the name that is displayed for this process in
  the task manager. Defaults to the process name when not specified.

NF-U412-038 GS: Visual feedback for empty Outline view (2021-04-15)

  The Outline view now displays a 'No symbols available' label when
  there are no symbols available in the current context. This can be
  the case for empty files or if a given language is not supported
  by GNAT Studio.

NF-U412-018 GS: Order of ads/adb files in the Project view (2021-11-02)

  Specifications are located before bodies in the view now.

NF-U312-017 GS: New GPS.Process.get_exit_status method (2021-03-29)

  Returns the exit status of the command, if any or 0. Should be
  called after GPS.Process.get_result. Returns -1 if the process
  could not be started.

NF-U305-058 GS: New GPS.Context.projects() method (2021-04-20)

  It returns the list of projects for the files that are selected in
  the given context.

NF-U216-018 GS: Python targets allowed to use output parsers (2021-03-02)

  Target models based on Python (see <uses-python> tag) are now
  allowed to use the output parser mechanism.

NF-U208-034 GS: Basic syntax highlighter for assembly (2021-11-22)

  A basic highlighter for assembly language ("Asm" in .gpr project
  files) has been added. This highlighter is not specific to a given
  assembly language though, but it will highlight things that are
  common to most assembly languages, such as instructions, comments,
  literals, etc.

NF-U113-070 GS: Clangd formatting settings (2021-02-18)

  Several major settings have been added to the Preferences/Editor/C
  & C++ page. Extra tuning can be done in the ".clangd-format" file
  which GNAT Studio creates for each C/C++ project (in the top
  source directory).

NF-U112-043 GNATDASHBOARD: Multi-object dir support for SPARK (2021-01-26)

  GNAThub's SPARK 2014 plugin was enhanced to explore all the .spark
  files in the gnatprove subfolder of the related object directory
  for each project in the project tree and gather analysis results.

NF-TC10-028 GNATDASHBOARD: Add GNATcoverage results to SonarQube (2021-02-01)

  The Sonar Ada plugin was enhanced to handle GNATcoverage analysis
  results. The GNATcoverage results are considered and displayed as
  part of coverage of the code in SonarQube. If both gcov and
  GNATcoverage coverage data are present in the database, then only
  GNATcoverage data will be considered, as it is more precise.

NF-TB30-030 GS: Navigate through entities mentioned in comments (2020-12-09)

  Ctrl-clicking or executing navigation requests on mixed-case
  entities mentioned in Ada comments now works if this entity is
  referenced in the current file: for instance, ctrl-clicking on an
  entity mentioned in comments will jump to its declaration.

NF-TA29-031 GS: Clear button for the Python console (2020-11-02)

  The Python console can now be cleared via a local toolbar button.

NF-TA15-061 GNATDASHBOARD: New --gnatcheck-hide-exempted switch (2020-10-24)

  This switch allows better handling of GNATcheck exempted
  violations. By default, when the exempted violations are reported
  by the GNATcheck plugin run, all these violations are imported
  into the GNAThub database. They can now be filtered and not
  imported into the database using the --gnatcheck-hide-exemption
  switch on the GNAThub command line.

NF-T917-021 GS: New 'Add to source dirs' option for new dirs (2020-10-15)

  When creating new directories via the GNAT Studio Project view or
  via the File view, a checkbox is now displayed in the file
  creation dialog to automatically add this directory to the
  project's source directories.

NF-T708-026 GS: Restore initial pattern in the Search dialog (2021-02-25)

  Ctrl+Z in the Find field returns the initial pattern which was
  present when opening the Search view.

NF-T629-015 GS: Harness_Dir can be set as an absolute path (2021-05-11)

  Harness_Dir can now be set as either a relative or an absolute
  path.

NF-T619-032 GS: Clickable and selectable tooltips for entities (2020-12-09)

  The tooltips that appear when hovering over entities are now
  clickable and selectable, allowing users to copy their contents.
  To copy text from it, just click on the tooltip: the tooltip will
  then be highlighted and its contents will be selectable.

NF-T618-049 GS: Reordering of the contextual menu (2021-07-06)

  The contextual menu to operate "goto other file" is now placed
  after the one for "goto declaration".

NF-T520-047 GS: Improved verbosity when no coverage (2021-04-27)

  In the coverage report, the generic indication "Undetermined" is
  replaced with a more specific status, such as "No coverage
  report", "Empty report file", or "Corrupted report file".

NF-T318-086 GS: Suppress Separate refactoring is now available (2021-04-21)

  The Ada Language Server now has a CodeAction capable of
  suppressing a separate subprogram by moving it to the parent
  package. This CodeAction is available both on the subprogram stub
  and on the separate subunit.

NF-T203-047 GS: SHA1 in Windows view (2021-02-26)

  For the editors in the Windows view, a column has been added
  containing the SHA1 for the edited files. This can be used to
  rapidly verify that two files share the same content.

NF-SB29-024 GS: "Restart build all" action (2021-02-02)

  This action interrupts the current build, if any, and starts a new
  Build all compilation.

NF-SA29-004 GS: Auto filling 'Approved By' field (2021-05-24)

  'Approved By' field for CodePeer review records now is filled
  automatically with the host logged user name.

NF-SA11-032 GS: Possibility of locking editor views (2021-03-17)

  A new 'lock or unlock current editor' action has been added,
  allowing users to lock a given editor at a given position. Locked
  editors are still navigable manually, but are insensitive to all
  'jump to code' events, such as clicks in the Locations view,
  navigation actions (find all references, goto declaration, etc.),
  clicks on the Call Trees view, in the Call Stack view, etc.
  Contextual menus to lock or unlock a given editor are accessible
  by right-clicking on the editor tabs.

NF-SA11-005 GS: History provider for the omnisearch (2021-03-03)

  The provider shows files that were already opened for a given
  pattern or whose names match the pattern.

NF-R306-004 GS: Auto-highlighting is now done through LSP (2020-12-09)

  The auto-highlighting that occurs when the cursor is placed on a
  given word has been re-implemented via the LSP
  textDocument/documentHighlight request. As a result, the
  auto_highlight_occurrence.py plugin has been removed. With the new
  implementation the write and read references are now highlighted
  using a separate color. It's also more stable and faster than
  before, especially on large files.

NF-Q509-045 GS: Show Exec_Dir and Library_dir (2021-07-01)

  These directories are now shown when the "Show all files in any
  project directory" option is enabled for the Files view.

NF-Q316-008 GS: Reorder tabs using drag-n-drop (2021-04-21)

  Notebook tabs are now reorderable using drag-n-drop within the
  same notebook.
