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.
Please note, that this comparision is meant for users, who edit scripts most of the time.
Compatible with BashSupport Pro
BashSupport Pro requires an IDE version 2019.3 or later.
JetBrains Shell renames all variables of the same name, even if it’s a different variable.
For example, local variables are not renamed correctly.
JetBrains Shell renames all functions of the same name, even if it’s a different function.
This is used for ‘Go to definition’, ‘Show Definition’ and other features.
Rename, go to definition, and others for elements in sourced files.
JetBrains Shell highlights by text occurrence.
Variables, functions, and string content are hightlighted at the same time.
JetBrains Shell isn’t supporting heredocs without parameter substitution.
BashSupport supports ‘man’, ‘info’, and comments in the source.
Shell only supports ‘info’.
Shell is suggesting word–based.
Function names are suggested for variables, for example.
JetBrains Shell uses shfmt.
Highlight URLs in strings
BashSupport creates a new tool window.
JetBrains Shell executes in a Terminal tool window.
Both have different inspections.
JetBrains Shell uses shellcheck and thus provides more inspections.
Both plugins bundle a different set of live templates.
Support Bash scripts without file extensions