========================
IDE 18 NEW FEATURES LIST
========================

Copyright (C) 2021, AdaCore

This file contains a complete list of new features in version 18.
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 18.0w wavefront
subsequent to this date will contain the indicated feature, as will any
subsequent 18 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-R403-040 GPS: Omnisearch popup preserved when switching apps (2018-04-09)

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

NF-QA13-037 GB: GNAT project file write protection (2017-11-29)

  New boolean setting "GNAT project file change allowed" added to
  GNATbench properties page to disable GNAT project file change from
  project's properties dialogs. GNAT project file should be
  protected when IDE package contains user edited content.

NF-Q929-058 GPS: Log exit code of terminated process (2017-09-29)

  Exit code of terminated process is reported in the log file to
  provide useful information for investigations.

NF-Q926-009 GPS: Handling of scenarios in Project Properties (2017-09-28)

  When applying changes made in Project Properties to all the
  possible values of a given scenario variable, no useless switch
  case is written in the resulting .gpr file.

NF-Q926-007 GPS: A preferences assistant for newcomers (2017-07-18)

  When starting GPS for the first time, a preferences assistant
  window opens, allowing you to configure some general preferences
  (color theme, key bindings etc.).

NF-Q915-030 GPS: Do not attempt to edit read-only projects (2017-09-17)

  GPS no longer offers to edit project properties of a read-only
  project file.

NF-Q912-001 GPS: EUC-JP encoding support (2017-09-12)

  GPS can now edit files in the EUC-JP encoding.

NF-Q818-004 GPS: Group names by category in Outline View (2017-09-20)

  The Outline View is now able to present entities grouped by
  categories. This is enabled via a new preference 'Group by
  category', and works only in flat view mode.

NF-Q814-021 GPS: Variables display format in the Variables view (2017-09-15)

  The format (display base) of variables can now be controlled via
  the contextual menu in the Variables view.

NF-Q712-038 GPS: GPS traces are no longer buffered (2017-09-11)

  The GPS traces are no longer buffered, to avoid losing useful
  information in the log files.

NF-Q629-047 GPS: Status indicator for source buffers (2017-06-30)

  A new status indicator has been placed in the bottom-right corner
  of source editors, showing whether the editor has been modified.

NF-Q628-025 GPS: Auto fix for Range attribute usage (2017-07-03)

  The compiler is clever enough to detect that the Range attribute
  should be used to loop over the content of an array. GPS now
  offers an autofix for such warnings.

NF-Q615-020 GPS: New action to add extended characters (2017-06-26)

  A new action "insert extended character" has been added, allowing
  one to enter an extended character in the editor by its unicode
  number.

NF-Q611-001 GPS: Key shortcuts displayed in contextual menus (2017-06-13)

  Key shortcuts are now displayed in GPS contextual menus.

NF-Q606-037 GPS: Interfaces attribute in Project Properties (2017-06-14)

  The Interfaces attribute is now editable from the
  Library/Standalone page of the Project Properties editor.

NF-Q531-010 GPS: Project attribute to prevent graphical editing (2017-07-19)

  A new attribute "Read_Only" can be placed in the IDE package of a
  project to prevent GPS from displaying the graphical editor on
  this project.

NF-Q516-018 GPS: The GNAT examples are now deployable (2017-05-17)

  GPS now asks to specify a directory for deploying GNAT examples
  via the HELP/GNAT/Examples menus, rather than opening examples in
  the location where they are installed.

NF-Q511-039 GPS: New API to create nested messages (2017-07-05)

  A python method create_nested_message has been added to the
  GPS.Message class, to create nested messages.

NF-Q510-037 GPS: Improve key shortcuts for Mac OS (2017-05-16)

  A Mac OS key shortcuts theme has been introduced in GPS. The
  command key instead of control and common Mac OS key shortcuts
  have been added (e.g: 'control + a' to go to the beginning of the
  current line).

NF-Q504-010 GPS: Debug/Print contextual menus reintroduced (2017-05-07)

  The Debug/Print contextual menus have been reintroduced in GPS.

NF-Q504-002 GPS: Revamping of Help/GNAT Runtime menu (2017-08-03)

  GNAT runtime menu items for cross platforms have been moved into a
  separate submenu of Help/GNAT runtime instead of placing them
  after Help/About submenu.

NF-Q503-017 GB: Optimization on scenario variables view display (2017-05-03)

  The GNAT project load is no longer required to show the scenario
  variables view. The GNAT project load is postponed to until it is
  selected in the project explorer or in the scenario variables
  views.

NF-Q428-030 GPS: Autofix removes redundant context clauses (2017-05-24)

  Autofix now removes redundant "with" clauses together with any
  accompanying "use" clauses.

NF-Q419-028 GPS: Preserve "withs" node state in the Outline view (2017-04-25)

  The Outline view now preserves the expanded/collapsed state of the
  "withs" node when switching between sources.

NF-Q418-031 GPS: Python API for creating Tasks (2017-04-19)

  It is now possible to create Tasks from the GPS Python API, and to
  create tasks that monitor a workflow. This can conveniently
  replace some uses of the GPS.Timeout API, and integrates within
  the GPS Task Manager, allowing to provide progress indication for
  background tasks.

NF-Q410-027 GB: Use relative path when creating linked folders (2017-04-21)

  On Eclipse versions 3.6 (Helios) or above, GNATbench uses relative
  paths to create linked folders. GNATbench creates linked folders
  when directories found in GNAT project files are not present in
  the workspace.

NF-Q404-008 GPS: New Build & Run and Build & Debug buttons (2017-04-10)

  A Build & Run and a Build & Debug toobar button have been
  introduced. Clicking on these buttons has for effect to build the
  selected executable before performing the second action (either
  Run or Debug).

NF-Q330-046 GPS: Menu separators more visible in dark themes (2017-08-30)

  The menu separators have been made more visible in dark themes.

NF-Q330-043 GPS: Items selection improved in GPS browsers (2017-04-21)

  On Linux, electing an item now deselects any other unless the user
  is pressing a modifier key.

NF-Q327-047 GNATDOC: Documentation for concurrent constructs (2017-03-27)

  Detailed information is generated for task and protected objects,
  including their subprograms and entries.

NF-Q327-029 GPS: Auto fix for prefix of Result attribute (2017-03-28)

  GPS provides auto fix to help with compiler errors of the form
  'incorrect prefix for attribute "Result", expected "Incr2"'.

NF-Q310-003 GPS: The Window menu now contains icons (2017-03-20)

  Icons were added in the Window menu for editors. This allows
  displaying which editors are currently modified.

NF-Q227-029 GPS: Python API of Libadalang is available (2017-03-22)

  Python API of Libadalang can be used in GPS plugins to implement
  custom code checkers.

NF-Q220-004 GPS: Selectable file property labels (2017-02-20)

  The labels containing the base name and directory of a file in the
  Properties dialog are now selectable, which means you can
  copy/paste from them.

NF-Q209-045 GPS: Locate in Project view and flat mode (2017-02-27)

  The "Locate in Project View" action now works for both normal and
  flat modes, without switching the mode.

NF-Q126-040 GPS: Changing perspective from main toolbar (2017-01-30)

  GPS now includes a new button to the right of the main toolbar, to
  let users easily switch perspectives.

NF-Q106-020 GPS: Better default colors on Windows (2017-05-17)

  The colors used for selected items on Windows have been improved
  to make them more readable by default.

NF-Q103-007 GB: Add check syntax/semantic, recompute xref menus (2017-02-02)

  Check Ada File(s) Semantic, Check Ada File(s) Syntax, Recompute
  Xref Info & Compile All Sources contextual menus added.

NF-PC12-019 GPS: Improvement of the Memory Usage View (2017-02-27)

  The GPS Memory Usage View has been improved. It is now able to
  display the static memory usage for memory regions, sections and
  object files, even when the link has failed.

NF-PC07-032 WB: Create missing scenario.makefile during build (2017-02-06)

  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.

NF-PC02-023 GB: Use legacy cmd when target not found in Makefile (2016-12-13)

  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.

NF-PC02-022 GNATDOC: Support for extraction of doc from bodies (2017-03-30)

  GNATdoc is now able to process bodies, and extract documentation
  from bodies and generate separate pages for these bodies in the
  resulting HTML output. This is activated via the command-line
  switch '-d'.

NF-PB28-051 GNATDOC: Support for Ada 83 and Ada 95 (2016-12-10)

  GNATdoc now supports processing Ada 83 and Ada 95 codebases, in
  addition to Ada 2005 and 2012.

NF-PB16-048 GPS: New GPS welcome dialog (2017-02-02)

  The GPS welcome dialog has been reworked, making starting GPS a
  smoother experience. In particular, a list of recently opened
  projects is now displayed on the left side, allowing user to open
  one quickly.

NF-PB10-016 WB: Run quickfix from Ada editor left ruler (2016-11-29)

  Quickfix process can be initiated clicking Ada markers in Ada
  editor left ruler. Initiating quickfix from problems view is still
  supported.

NF-PB09-027 GPS: Speed up Project and Files views (2016-11-10)

  Creating either views is now much faster, in particular on large
  projects where a directory contains several thousands of files.

NF-PB08-050 GPS: Number of replacements reported (2016-11-09)

  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.

NF-PB07-034 WB: Add support of ppc64-vx7 target (2016-11-25)

  Wind River Workbench projects for powerpc64-wrs-vxworks7 platform
  can be converted to Ada project and then built through Workbench
  builder.

NF-PB02-048 GPS: New setting to preserve build messages (2016-11-07)

  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.

NF-PA21-030 GPS: Hidden files in the Files view (2016-11-04)

  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).

NF-PA20-057 WB: Revision controlled scenario variable settings (2016-12-08)

  Scenario variables values related to a project are stored in its
  .gb_project file to enable having them version controlled.

NF-PA19-020 GPS: Resize Debugger Data items when pref changes (2016-10-19)

  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.

NF-PA12-040 GPS: Remove entity information in Project view (2016-10-13)

  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.

NF-PA11-031 GPS: Reuse a single Metrics view (2016-11-04)

  If the Metrics view is already present, GPS will reuse it when
  computing metrics of a file/project.

NF-PA11-026 GPS: Limit number of entries in Search view combobox (2016-11-04)

  The number of entries in the Search view combobox is now limited
  to 5 when the view is spawned. A separator has also been added
  between the predefined regexps and the previously searched
  patterns.

NF-PA10-012 GB: Add library pages to GPR file creator (2016-10-18)

  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.

NF-PA04-010 GPS: New templates for packages/mains (2016-11-22)

  New contextual menus have been added to create new files from
  templates (e.g: 'New Ada Package' contextual menu in the Project
  View). These templates are derived from the aliases mechanism and
  a Python API has been introduced to allow users to create their
  own templates.

NF-P827-005 GPS: New debug-related entries in contextual menus (2017-04-10)

  The debug section of contextual menu now contains entries to
  remove, enable, or disable breakpoints.

NF-P727-037 GPS: Revamp of the Search view (2017-06-27)

  The GPS Search view has been completely revamped. The usability
  has been improved and an interactive mode has been added.

NF-P722-003 GPS: Add asynchronous hook callbacks (2017-06-27)

  The scripting API has been enhanced with an add_debounce method
  which can be used to schedule callbacks to be called as soon as
  GPS is idle.

NF-P705-015 GPS: GPS.Debugger allows to manipulate frames now (2017-04-05)

  The python GPS.Debugger now has following methods - current_frame,
  frame_down, frame_up, frames, select_frame.

NF-P628-002 GPS: The assembly view has been improved (2017-05-16)

  Highlighting has been added for assembler instructions, registers
  and addresses. The navigation has been improved and a local
  toolbar has been added to customize the view.

NF-P223-027 GPS: New Test View (2016-10-20)

  A new dedicated 'Test View' was added to present tests, test cases
  and corresponding sources available in the project.

NF-O901-028 GB: GNAThub integration in GNATbench (2017-12-01)

  GNAThub is integrated in GNATbench and could be launched as menu
  entry from Analyze top menu entry. Two actions are available:
      "Run GNAThub" which will launch the execution of GNAThub
      on the currently selected project
  and
      "Display GNAThub Analysis" which display already stored
      results on the current selected project.

NF-O119-009 GPS: Finer distinction in navigation contextual menu (2017-06-22)

  The "Go declaration ..." item is no longer shown when the
  subprogram does not have a declaration. Instead, the contextual
  menu only shows "Goto body ...".

NF-O116-004 GPS: Rewrite version control support (2017-01-11)

  The full support for version control has been rewritten from
  scratch. It replaces the old VCS Explorer and VCS Activities views
  with a new set of views. Existing python plug-ins that use the
  GPS.VCS python API will need to be rewritten. The new API in
  GPS.VCS2 is however more flexible, providing more control to the
  plug-in, and making it easier to add vcs-specific actions.
  * Multiple version control systems can be used within the loaded
  project tree (so you can have an imported project using svn when
  your main project uses git, for instance, or multiple git
  repositories)
  * The Project and Files views show the status for files (modified,
  staged for commit,...) * The new Commits view shows at all points
  in time the current status of files, and let's you stage some of
  them to be part of the next commit (or, of course, remove them
  from the next commit). You can then easily do the commit from
  there. If you are using git, you can instead chose to amend the
  previous commit.
  * The new History view shows the set of commits done in the
  repository in the past, along with a graphical diagram showing how
  branches were created or joined. This makes it easier to
  understand how the commits relate to each other. A unique
  collapsed view makes it possible to show only branch-related
  commits (so a simplified version of the history that hides, in the
  diagram, all the simple commits).
  * The new Branches view lets you view and switch all existing
  branches, create new branches or delete branches. If you are using
  git, you can also apply view stashed commits.
  * Support has been added to execute special VCS operations when a
  file needs to be made writable (needed for clearcase for
  instance).
  * All VCS operations are now performed much more efficiently, so
  getting the status for instance is almost instantaneous on most
  working directories.

NF-N807-002 GPS: Run GNATname on existing projects (2016-11-04)

  A 'File/Project/Add Complex File Naming Conventions' menu has been
  added to run GNATname on project loaded by GPS.

NF-J224-016 GPS: Edit register values from Registers view (2017-06-07)

  While debugging, it is now possible to change the value of
  registers directly from within the Registers view.

NF-J208-012 GPS: GDB/MI support (2017-02-15)

  Support of GDB/MI protocol has been added. It can be activated via
  Edit/Preferences/Debugger menu.

NF-I602-027 GPS: Local toolbar in the Assembly view (2017-04-18)

  The Assembly view now has a local toolbar, containing buttons for
  disassembling and local configuration.

NF-G523-009 GPS: Search/Replace actions available from keyboard (2016-11-04)

  Every Search/Replace action is now available from the keyboard.
