New Features and Changes of BashSupport Pro 3.0

Published

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 2022-10-04 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 2022-10-04.

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.

Run target settings of a BashSupport Pro run configuration
Run target settings of a BashSupport Pro run configuration

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.

Inline variables in shell scripts
Inline variables in shell scripts

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.

Reordering functions by using 'Move Statement Up'
Reordering functions by using 'Move Statement Up'
Reordered functions after using 'Move Statement Up'
Reordered functions after using 'Move Statement Up'

Move Elements Left or Right

The helpful actions Code → Move Element Left and Code → Move Element Right are now available in shell scripts.

Switching conditions with 'Move Element Left'
Switching conditions with 'Move Element Left'
Switched conditions after using 'Move Element Left'
Switched conditions after using 'Move Element Left'

Miscellaneous Improvements

The name of heredoc markers can now be renamed.

Changing the name of a heredoc marker
Changing the name of a heredoc marker

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.

Caller hierarchy of a shell script function
Caller hierarchy of a shell script function

Improved structure view

The structure view now displays variable declarations. Previously, only function declarations were shown in the outline.

Structure view with variable declarations
Structure view with variable declarations

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.

Joining two statements
Joining two statements

Highlighting of Exit Points

You can now highlight all statements, which terminate a function or script, at once.

Highlighting of function exit points
Highlighting of function exit points

Highlighting of Read/Write Status

Read-access and write-access to variable declarations is now highlighted differently.

Highlighting of reading and writing variable use
Highlighting of reading and writing variable use

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 of Google style documentation
Quick documentation of Google style documentation

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.

Code completion of bats-core library names
Code completion of bats-core library names
Code completion of bats-core library functions
Code completion of bats-core library functions

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.

Highlighting of duplicate bats-core test names
Highlighting of duplicate bats-core test names

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:

1
2
3
4
5
6
7
@test my_test() { 
  :
}

my_test() { #@test
  :
}

Our new version supports the new style and also offers intentions to switch between both styles.

Support for the alternative test marker
Support for the alternative test marker

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.

Integration with Markdown code snippets
Integration with Markdown code snippets

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.

Highlighting of shell commands in a Docker file
Highlighting of shell commands in a Docker file

Website Updates

Last but not least, the website has been updated.

BashSupport Pro Newsletter

Subscribe to our newsletter to receive updates about important developments, tips, and special offers.


© 2020–2022 Joachim Ansorg
Imprint
Privacy Policy
Legal