New Features and Changes of BashSupport Pro 3.0
BashSupport Pro 3.0 is a new major version, adding long-awaited new functionality and improvements.
This page is an annotated list of the most important new features and improvements since BashSupport Pro 2.1. Please refer to the complete changelog for a detailed list of changes.
BashSupport Pro 3.0 can be used with all active subscriptions, existing or new.
Annual subscriptions bought at or after Oct 4, 2022 receive a fallback license for version 3.0 and updates of 3.x.
Monthly subscriptions receive the same fallback license after 12 months of uninterrupted payment starting Oct 4, 2022.
Version 3.0 has a new trial available. Users, who already used the trial of 2.0, can now activate a new trial.
Content
Remote Development
Remote development becomes more and more important. Version 3.0 is now much more suitable for remote development of shell scripts with your JetBrains IDE.
Run Targets
A significant new feature is remote execution and remote debugging of shell scripts.
A while ago, JetBrains introduced a new feature called run targets. It allows to execute or debug programs in remote environments like SSH hosts or Docker containers. JetBrains provides a few implementations, for example for Java and Gradle run configurations.
BashSupport Pro 3.0 supports remote execution and remote debugging for its own run configurations. For example, you can now edit a shell script on your local machine and debug it on a remote machine over SSH.
Please refer to our documentation about remote development for instructions and a list of compatible JetBrains products.
JetBrains Gateway
JetBrains Gateway is an alternative way to develop in a remote environment. With Gateway, the IDE is executed on the remote machine, but the user interface is displayed on your local machine.
BashSupport Pro 3.0 has been updated to full support development in a Gateway environment. Executing scripts, debugging, etc. are all working like in a local environment.
Refactorings
BashSupport Pro’s code insight is now more mature and allows to add advanced refactorings like “inline variable”.
Inline Variable
You can now inline the value of shell script variables in your scripts. As in other languages, you can inline just a single occurrence or all at once.
Move Statements Up or Down
Code → Move Statement Up and Code → Move Statement Down are now supported in your shell scripts. These actions help you to quickly reorder elements of your shell scripts, especially when you’re using keyboard shortcuts.
Move Elements Left or Right
The helpful actions Code → Move Element Left and Code → Move Element Right are now available in shell scripts.
Miscellaneous Improvements
The name of heredoc markers can now be renamed.
Navigation Features
Call and Callee Hierarchy
Navigate → Call Hierarchy is now supported for shell script functions. This feature helps to visualize how functions are called or which functions are called by a function or its callees.
Improved structure view
The structure view now displays variable declarations. Previously, only function declarations were shown in the outline.
Editor Improvements
Complete Current Statement
Code → Code Completion → Complete Current Statement is now available in shell scripts. You can use it to quickly insert the body of incomplete function declarations.
Smart Join Lines
The newly added support for Edit → Join Lines automatically inserts a semicolon ;
when you join statements on different lines into a single line.
Highlighting of Exit Points
You can now highlight all statements, which terminate a function or script, at once.
Highlighting of Read/Write Status
Read-access and write-access to variable declarations is now highlighted differently.
Smarter Live Templates
There are new live template contexts now to restrict live templates to contexts, where they’re valid. All live templates were updated to be only shown in valid contexts.
Quick Documentation
Quick documentation of functions, which follow the Google Shell Style Guide, is now rendered much nicer.
Quick Documentation
Quick documentation now attempts to load content via man
instead of just info
.
We also added quick documentation support for bats-core’s built-in functions.
bats-core Support
The bundled version of bats-core has been updated to 1.8.2.
Libraries
bats-core allows to load libraries of test functions with the help of the bats_load_library
function.
The libraries bats-support, bats-assert, and bats-file are now bundled with BashSupport Pro to significantly simplify the use of bats-core libraries in your editor.
Additionally, the bats-core function bats_load_library
is now supported by code completion and quick documentation in your editor.
Editor Support
Navigate → Test is now available for shell script files.
It navigates to a .bats
sibling of your shell script file and helps you to create it if it doesn’t exist.
For example, invoking Navigate → Test will create and open my-file.bats
if you’re editing file my-file.bash
.
Quick documentation and code completion are now available for bats-core’s builtin variables and functions. Please refer to supported bats-core functions and supported bats-core variables for an overview of all supported elements.
Highlighting of Duplicate Tests
Duplicate names of bats-core tests are now highlighted.
Support of #@test
bats-core recently added support for #@test
as an alternative to mark functions as tests.
These two functions are both bats-core tests:
|
|
Our new version supports the new style and also offers intentions to switch between both styles.
System Requirements and Supported Plugins
Supported Operating Systems
As previous versions, BashSupport Pro is compatible with Linux, macOS, and Windows.
BashSupport Pro 3.0 now also supports Windows ARM64. Please refer to the system requirements page to learn more about it.
Supported IDEs and Plugins
Versions 2021.1 and later are supported by BashSupport Pro 3.0.
Support for 2020.1 to 2020.3 was dropped.
Please use BashSupport 2.1 if you’re still using a JetBrains IDE 2020.1, 2020.2 or 2020.3.
The integration with the 3rd-party plugin Markdown Navigator was removed. The plugin is not maintained anymore and unavailable on the JetBrains Marketplace.
The integration with Explain Shell was removed because usage was low, and it wasn’t obvious in the IDE that code snippets were sent to a 3rd party.
Markdown Plugin
The latest versions of the JetBrains Markdown plugin allow to execute code blocks. BashSupport Pro 3.0 adds the ability to execute Bash and shell script code snippets directly from your editor.
Docker Plugin
BashSupport Pro is now highlighting content of RUN
elements only if the SHELL
is declared as bash
.
PowerShell code and other languages won’t be highlighted anymore.
Website Updates
Last but not least, the website has been updated.
- Quickstart is a step-by-step tutorial and shows how to use the basic features of BashSupport Pro.
- The features page now provides a comparison of BashSupport Pro with VSCode.
- The page about inspections now always displays all available inspections of the latest release.
- Similarly, the page about intentions is now always up-to-date, too.
- There’s a new page about remote development.
- There’s a new page about call and callee hierarchy.
- There’s a new page about structure view.
- There’s a new section about the supported refactorings of BashSupport Pro.
- The section of supported Bash features now also displays the supported bats-core functions.
- Screenshots are zoomable now. Click or tap on a screenshot to open a larger version of higher quality.
Subscribe to our newsletter to receive updates about important developments, tips, and special offers.