GNAT Studio 21 Release Notes¶
We present here a few highlights of the new features in GNAT Studio 21. You can access the complete list here. This GNAT Studio development cycle was focused on stability and performance enhancements, and to improving source navigation, transitioning more and more features to the new engine in the Ada Language Server.
GNAT Studio has replaced its older libclang-based custom engine with it by a C and C++ language server developped as part of the LLVM project, called clangd.
As a a result of this transition, dynamic completion is now supported for C and C++ and some new features have been introduced. One of the great features that clangd brings to GNAT Studio is the signature help, which pops up when opening a parenthesis for a function call: GNAT Studio will show the function’s signature, showing the parameter expected at each point.
A new Pending breakpoints debugger preference has been added to allow pending breakpoints when using the debugger. When enabled, breakpoints that are not recognized when starting the debugger (i.e: breakpoints set on dynamic libraries) won’t be rejected: the debugger will try to set them once the executable runs. This preference is enabled by default.
A new button in the Assembly view local toolbar allows setting and deleting breakpoints at given instruction addresses.
The Start/Continue button in the debugger toolbar now offers the option to stop at the beginning of the main, just like the menu.
The integration between GNAT Studio and GNATemulator has been improved: the same GNATemulator console is now reused across debugging sessions, instead of spawning a new one each time a new debug session starts. A clean button has also been added to the console.
An advanced preference has been added for the Scenario view to control the way scenario variables are expanded in command lines. By default, all the scenario variables are explicitly expanded. When the preference is deactivated, only variables with a value different from their default will be expanded.
GNAT Studio now displays a warning message on any of the VCS views (e.g: Commits view) if it’s not able to find a version control system repository for the loaded project. An hyperlink is also displayed to configure the VCS repository manually.
The vcs commit action has been improved: if there is no staged file, then all the modified files are automatically staged before committing.
GNAT Studio now highlights the searched area when opening the Search view while an editor has a multiline selection. This allows to better visualize the area being searched.
Pressing Shift+Enter while the Search view is active now searches backwards, like most editors and browsers.
A new localpreference in the search window controls whether the last search text will automatically be set in the Find field when the window is opened.
Code folding has been transitioned to the Ada Language Server, which allowed us to introduce a new set of preferences to perform automatic code folding:
Fold_With_Use_Blocks: automatically folds ‘’with’’ and ‘’use’’ blocks when a block has more lines than the setting (0 to disable).
Fold_Comment_Blocks: automatically folds comment blocks when a block has more lines than the setting (0 to disable).
Fold_Comment_Reg[1,2,3]: automatically folds comment blocks when a block’s contents matches the regular expression.’
A new toggle comment action to comment/uncomment the current line or selection has been added. You can associate a key shortcut to it via the Preferences dialog.