Comparision of BashSupport and JetBrains Shell

The foundation for BashSupport Pro is provided by either open–source BashSupport or JetBrains Shell. You need to choose which plugin you’d like to use. Only one of the two plugins must be enabled.

Personal recommendation
At this time, I recommend to use BashSupport Pro together with the open–source BashSupport plugin. Editing experience is best with this combination of plugins.
JetBrains Shell plugin is rapidly improving and soon will be the preferred choice. The support for the open–source BashSupport plugin will be dropped as soon as JetBrains Shell + BashSupport Pro is providing a similar or better editing experience.

JetBrains Shell still has advantages. Internally it has a better implementation than BashSupport. For example, it handles large Bash scripts with less delay in the editor.

Comparision table

Please note, that this comparision is meant for users, who edit scripts most of the time.

BashSupport
for 2019.3
JetBrains Shell
for 2019.3
Compatible with BashSupport Pro
BashSupport Pro requires an IDE version 2019.3 or later.
Rename variables
JetBrains Shell renames all variables of the same name, even if it’s a different variable.
For example, local variables are not renamed correctly.
×
Rename functions
JetBrains Shell renames all functions of the same name, even if it’s a different function.
×
Resolve references
This is used for ‘Go to definition’, ‘Show Definition’ and other features.
×
source command support
Rename, go to definition, and others for elements in sourced files.
×
Language injection
×
Code folding
×
Highlight usages
JetBrains Shell highlights by text occurrence.
Variables, functions, and string content are hightlighted at the same time.
 limited
Heredoc support
JetBrains Shell isn’t supporting heredocs without parameter substitution.
 limited
Documentation lookup
BashSupport supports ‘man’, ‘info’, and comments in the source.
Shell only supports ‘info’.
 limited
Code completion
Shell is suggesting word–based.
Function names are suggested for variables, for example.
 limited
Formatter
JetBrains Shell uses shfmt.
×
Indent lines
×
Highlight URLs in strings
×
explainshell integration
×
Syntax Highlighting
Brace Matching
Structure view
Execute scripts
BashSupport creates a new tool window.
JetBrains Shell executes in a Terminal tool window.
ToDo highlighting
Spellcheck support
Inspections
Both have different inspections.
JetBrains Shell uses shellcheck and thus provides more inspections.
Live templates
Both plugins bundle a different set of live templates.
Support Bash scripts without file extensions