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