========================
IDE 20 NEW FEATURES LIST
========================

Copyright (C) 2021, AdaCore

This file contains a complete list of new features in version 20.
A full description of all features can be found in the GPS or GNATbench
documentation.

An ISO date (YYYY-MM-DD) appears in parentheses after the description line.
This date shows the implementation date of the feature. Any 20.0w wavefront
subsequent to this date will contain the indicated feature, as will any
subsequent 20 or later release.

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
- 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-T828-033 GS: Add filter for the Call Stack view (2020-10-07)

  A filter in the Call Stack view has been added. It filters on the
  contents of the name column.

NF-T330-041 GS: New API to restart the language server (2020-03-31)

  A new Python API GPS.LanguageServer.restart has been added. This
  allows your scripts to restart the language server, for instance
  after a change in the environment.

NF-SB22-011 GS: Improve handling of default scenario values (2019-12-06)

  When scenario variables are set to their default value, do not
  emit them in the "-X" switches, and do not save their value from
  one session to the next. This allows for smoother integration into
  workflows where the scenario is prone to changing outside of the
  IDE.

NF-SB22-005 GS: The splash screen no longer stays on top (2019-11-26)

  The GNAT Studio splash screen no longer remains displayed on top
  of all other windows.

NF-SB14-001 GS: New parameter 'base_dir' to MDI.file_selector (2019-12-06)

  The Python API GPS.MDI.file_selector now has a parameter
  'base_dir', allowing to determine the initial directory in which
  the file selector will be opened.

NF-SB04-036 GS: Project view expanded nodes and filtering (2019-12-06)

  The Project view expanded nodes are now correctly preserved when
  filtering.

NF-SA14-009 GS: List of overriding subprograms on ctrl-click (2019-12-10)

  When ctrl-clicking on primitive subprogram declarations of a
  tagged type or on dispatching calls, GNAT Studio now lists all the
  overriding subprogram bodies/declarations in a pop-up menu,
  allowing users to quickly know all the implementations of a
  dispatching subprogram.

NF-S926-010 GS: Disable VCS support completely (2019-09-30)

  Users can now disable the VCS support completely if they really
  don't need it. This can be done by disabling the GPS.VCS.MODULE
  trace.

NF-S917-037 GS: Several instances of the Breakpoints view (2019-10-10)

  Users can now open several Breakpoints views when several
  debuggers are active, one per each debugger.

NF-S813-015 GS: "No multi-choice dialogs" preference (2019-08-20)

  A new preference has been introduced to disable debugger
  questions. This preference is enabled by default.

NF-S801-032 GS: Better visibility for checked buttons (2019-09-17)

  The visibility of checked buttons (e.g. the search options of the
  Search view) has been improved on Dark themes.

NF-S726-041 GS: Apply/Discard buttons in the scenario view (2019-08-05)

  The Apply/Discard buttons are now placed on the left side of the
  scenario variables view, under the Add/Remove/Edit buttons.

NF-S717-021 GS: Allow checking out a remote git branch (2019-07-19)

  In the Branches view, handle the checkout of a remote git branch.

NF-S624-013 GS: Changed menus for manual proof of SPARK (2019-07-18)

  The Manual proof feature of SPARK can now be run on any SPARK
  check, including checks located in generics, via the contextual
  menu "SPARK->Start Manual Proof on Check", or on a larger context
  via the contextual menu "SPARK->Start Manual Proof". The global
  menu "SPARK->Edit Manual Proof" has been removed.

NF-S618-024 GS: Untyped variables in the scenario view (2019-08-05)

  It is now possible to activate/deactivate the display of untyped
  scenario variables in the scenario view. This is done via the
  local configuration menu (hamburger menu) of the view.

NF-S612-029 GS: Improve "Locate file in explorer" action (2019-06-19)

  The action "Locate file in explorer" is now giving the focus to
  the Project view. A new action "Locate file in explorer (no
  focus)" was also introduced to replicate the previous behavior.

NF-S607-001 GS: Actions to open the configuration pragmas files (2019-06-12)

  Add two actions, "Edit local configuration file" and "Edit global
  configuration file", to respectively open the files defined in the
  project attributes Compiler'Local_Configuration_Pragmas and
  Builder'Global_Configuration_Pragmas.

NF-S528-032 GS: Open file via double-click in Locations view (2019-06-25)

  It is now possible to open a file by double-clicking on the
  corresponding row in the Locations view.

NF-S516-002 GS: Confirmation dialog on gnatstub actions (2019-06-25)

  GPS now displays a confirmation dialog before executing the
  "generate body" and "generate body as separate" actions.

NF-S513-019 GNATDASHBOARD: Sonar GNATcheck profile update (2019-05-21)

  The default GNATcheck rules profile of Sonar Ada plugin was
  updated with the GNAT warnings that could be enabled for GNATcheck
  analysis.

NF-S509-038 GS: Project-specific bookmarks (2019-10-10)

  The Bookmarks view can now create bookmarks that are linked with
  the project.

NF-S509-028 GS: Preserve the project expanded nodes (2019-06-10)

  The project view has a new "Preserve nodes state" preference in
  the local configuration menu which allows preserving the expanded
  nodes between GPS sessions.

NF-S508-006 GNATDASHBOARD: Handle spaces in project file paths (2019-05-21)

  Spaces are allowed and handled correctly in folder names when they
  are present and used in the path passed as argument for the
  GNAThub -P switch.

NF-S427-003 GS: "Refill" action now works in project files (2019-05-16)

  The "Refill" action now works in project files, in the same way as
  Ada source files.

NF-S424-041 GS: Prompts on ClearCase actions on unsaved editors (2019-04-29)

  When performing a checkin or an uncheckout action on an editor
  that contains unsaved changes, a dialog will appear and the action
  will be canceled.

NF-S410-063 GS: New action "strip trailing blanks" (2019-04-17)

  A new action has been introduced, accessible through the key
  shortcuts manager, which can be used to strip trailing spaces in
  the current editor.

NF-S409-042 GB: Load XREF and construct database on demand (2019-07-18)

  New checkboxes have been added to the Preferences/Ada/Tools page:
  "Enable loading construct database" and "Enable load XREF". These
  allow the user to activate/deactivate construct database
  recomputation and XREF loading. By default, these are enabled.

NF-S405-039 GS: Improve Outline view icons for dark themes (2019-07-02)

  The icons have been updated to be more visible on dark themes.

NF-S329-010 GS: LSP-based navingation actions (2019-05-22)

  The "goto body", "goto declaration" and hyper mode ctrl-click
  actions are now implemented using the Microsoft Language Server
  Protocol. The main benefit of that is that GPS won't rely anymore
  on compilation artifacts for source navigation.

NF-S328-051 GS: Copy base file name to clipboard (2019-06-10)

  Copy_file_name plugin has now a new "copy_base_file_name" action
  to copy the base name of a selected file to the clipboard.

NF-S316-003 GS: Sort the selection while removing duplicates (2019-07-30)

  Actions have been added that allow sorting and reverse-sorting the
  selected text in an editor and remove duplicated lines at the same
  time.

NF-S315-034 GS: Yanking lines in command mode with Vim plugin (2019-09-01)

  Add 'y' and 'Y' in command mode for the Vim plugin.

NF-S312-010 GS: Show generic parameters in tooltips (2019-03-18)

  Generic parameters are now shown in editor tooltips.

NF-S305-026 GS: Use Diff command preference in VCS action (2019-04-11)

  Use the Diff command set by the user in the "Show local change for
  file (in editor)" action.

NF-S228-023 GS: New "Search entities for current file" action (2019-03-27)

  A new action has been added in order to search the entities
  declared in the current file, allowing to navigate very quickly
  amongst them.

NF-S211-048 GNATDASHBOARD: Add technical debt in Sonar plugin (2019-06-12)

  Based on the remediation effort categories listed by GNATcheck -h
  and Codepeer --list-categories switches output, the Sonar Ada
  plugin default profile for SonarQube was updated and contains
  technical debt related information.

NF-S121-024 GS: Analysis report messages filtering (2019-01-28)

  When selecting a row in the Analysis report then the Locations
  view filter will be set to only show the corresponding messages.

NF-S117-028 GS: Contextual menus revamp (2019-05-20)

  The GPS contextual menus have been revamped: proper groups have
  been introduced as well as separators to clearly separate them.

NF-S110-002 GNATDOC: Dispatching subprograms are now indexed (2019-01-14)

  GNATdoc now correctly indexes all the dispatching subprograms.

NF-S108-021 GS: New 'Open Folder...' contextual menus (2019-01-18)

  New 'Open folder' and 'Open containing folder' contextual menus
  have been added for the Project and Files views.

NF-RC10-001 GS: Plugin for copying file data to clipboard (2018-12-12)

  A plugin has been added defining three actions for copying a
  file's name, path, or the file's directory to the clipboard.

NF-RC03-034 GS: Add '0' command in the VIM plugin (2019-02-01)

  Add the command '0' which will move to the first character of the
  line in the VIM plugin.

NF-RB30-002 GS: Debug build mode and project's options (2019-01-31)

  GPS now checks if project options are incompatible with the Debug
  build mode (like the "strip all symbols" for instance).

NF-RB12-023 GS: Debugger.interrupt() method (2019-02-05)

  Python API has this new method for interrupting gdb execution.

NF-RB06-033 GS: C++ project template (2018-11-20)

  There is now a project template that represents a simple C++
  project.

NF-R927-014 GB: Eclipse SimRel 2018-09 (4.9) (2018-10-16)

  Add Eclipse SimRel 2018-09 (4.9) to GNATbench supported versions.

NF-R724-020 GS: Add relocate-build-tree and root-dir switches (2019-08-16)

  These switches will be passed to gprbuild (see gprbuild
  documentation for more details).

NF-R713-015 GS: Order of Bookmarks (2019-02-26)

  New item has been added to Bookmarks view's local menu to allow
  adding bookmarks at the end of the bookmarks' list. New method
  GPS.Bookmark.reorder has also been added to allow bookmark
  reordering.

NF-R308-027 GS: Improve user experience when opening a project (2019-05-03)

  Always open the project file in the editor when it contains
  errors/warnings. When a project is invalid, GPS will load an empty
  project. In this case, the reload project action can be used
  reload the last invalid project.

NF-R227-030 GS: Add History view tooltips (2019-07-01)

  Tooltips have been added in the History view, they contain the
  Commit-Id, Author, Date and Subject data.

NF-R109-025 GS: Revamp of the VCS diff viewer (2018-10-25)

  The VCS diff was integrated in the history view. Because of size
  limitation, the VCS diff is now displayed in the editor area. A
  new language was also defined to allow navigation in the diff via
  the Outline view.

NF-R108-002 GS: History view asynchronous loading (2018-11-15)

  A visual feedback has been added while waiting for the first
  commit. Then the commits are displayed as soon as they are
  available.

NF-QA26-019 GS: Export only the visible messages in Locations (2019-10-04)

  The 'locations export to text file' action now only exports the
  messages that are visible in the Locations view.

NF-Q823-023 GS: Add Fold/Unfold all similar blocks actions (2019-04-09)


  These actions fold/unfold all the blocks in the editor that have
  the same type as the current one (the one enclosing the cursor).
  For instance, if the cursor is in an aspect block then it will
  fold/unfold all aspect blocks in the current editor.

NF-Q815-003 GS: Plug-in to display the representation clauses. (2019-06-17)

  Add a new plug-in to compute and display the representation
  clauses in the editor. The plug-in is using the json output of
  gnatR, therefore a compiler version 20+ is needed.

NF-Q707-021 GS: Word-selection behavior in the Search view (2019-02-28)

  Double-clicking in a word will not stop the selection at the
  underscores.

NF-Q206-043 GS: Floating windows position is always saved (2018-12-14)

  The position of the floating windows (e.g. the Search dialog) is
  now always saved, even after exiting GPS while these windows are
  still open.

NF-P511-010 GNATDASHBOARD: New metrics for Sonar Ada plugin (2019-03-19)

  Sonar Ada plugin is updated with new metrics. GNATmetric LSLOC
  metric value is stored into SonarQube as "Lines of Code" instead
  of "all statements" metric. GNATmetric "all statements" metric is
  stored as a newly added "Statements" metric in SonarQube.
