Features of BashSupport Pro

 

The comparison is between the latest release of BashSupport Pro and the JetBrains Shell plugin coming with JetBrains IDE 2022.3. JetBrains Shell is bundled with most IDEs of JetBrains – in our opinion it works well for occasionally viewing, editing and running of shell scripts.
The comparison is between the latest release of BashSupport Pro and VSCode with extensions BASH extension pack and Bats installed.
BashSupport ProJetBrains ShellVSCode
Debugger → more

bashdb debugger integration to debug shell scripts with the JetBrains debugger UI.

VSCode Bash Debug bundles bashdb. On Windows, it only supports WSL.

×
Test Runner → more

bats–core test runner integration using the JetBrains test framework UI.

VSCode Bats provides syntax highlighting, basic code completion and snippets for bats-core itself and a few extensions. As far as we can tell, it does not provide functionality to execute bats-core files.

× limited
Shareable, Cross‐Platform Run Configurations → more

BashSupport Pro provides powerful run configurations with support for Windows path mapping (WSL, MSYS Git Bash, Cygwin), inline snippets, and a lot more. It offers multiple alternatives to determine the interpreter automatically.

JetBrains Shell configures a specific interpreter in each run configuration, which prevents sharing them with your team across platforms. It only supports WSL path mapping on Windows.

VSCode does not seem to provide an extension to execute shell script and bats-core files.

 limited×
Remote Development → more

Debug and execute your shell scripts on remote machines using SSH, Docker or WSL.

VSCode implements remote development differently. BashSupport Pro with JetBrains Gateway is similar to it.

×
Google Shell Style Guide Support → more

BashSupport Pro supports Google’s Shell Style Guide with inspections, quick fixes, and a formatter preset.

VSCode does not provide support for the Google Shell Style Guide.

××
Code Completion → more

BashSupport Pro suggests functions, variables, Bash and POSIX builtins.

JetBrains Shell only suggests words found in the current file. Function names are suggested for variables, for example.

VSCode Bash IDE provides basic code completion for variables, functions, and commands. But, for example, it does not suggest built-in variables like $HOME. It incorrectly suggests local variables outside their scope and also does not follow the source command. Snippets and commands are suggested at places, where they’re invalid.

× limited
Rename Variable Refactoring → more

BashSupport Pro renames your variable definitions and all references across multiple files.

VSCode Bash IDE does not support renaming of variables.

××
Rename Function Refactoring → more

BashSupport Pro renames your function definition and all references across multiple files.

JetBrains Shell only supports the current file.

VSCode Bash IDE does not support renaming of functions.

 limited×
Inline Variable Refactoring → more

BashSupport Pro allows to inline variable definitions and references in your scripts.

VSCode Bash IDE does not support inlining of variables.

××
Go to Declaration for Variables → more

BashSupport Pro finds your variable definitions across files. It follows source commands, ShellCheck directives and looks into user-defined shell script libraries.

VSCode Bash IDE provides basic navigation for variables. But it does not handle local variables and the source command, for example.

× limited
Go to Declaration for Functions → more

BashSupport Pro finds your function definitions across multiple files. It follows source commands, ShellCheck directives and looks into user-defined shell script libraries.

JetBrains Shell only considers the current file.

VSCode Bash IDE provides basic navigation for functions. But it does not support the source command, for example.

 limited limited
Highlight Usages → more

BashSupport Pro highlights identifiers that refer to the same entities.

JetBrains Shell highlights by text occurrence, so that variables, functions, keywords, and string literals can all be highlighted at once.

VSCode Bash IDE provides basic support for usages. But it does not handle local variables and the source command, for example.

× limited
Multi-File Support → more

BashSupport Pro follows source commands, supports ShellCheck’s source directive, project-wide variables and user-defined shell script libraries. In bats-core files, the load command is also supported.

As far as we understand, VSCode Bash IDE does not follow the source or bats-core’s load commands, but searches all files of the workspace at once.

××
Structure View → more

VSCode provides an outline of the file structure.

Call and Callee Hierarchy → more

VSCode does not provide call or callee hierarchy.

××
Documentation Lookup → more

BashSupport Pro supports info, help, and comments in the source. It also provides documentation for all Bash and POSIX variables.

JetBrains Shell only supports info.

VSCode Bash IDE provides tooltips for Bash syntax elements. It does not seem to provide content of info or man pages.

 limited limited
ShellCheck Support → more

BashSupport Pro bundles signed ShellCheck 0.8.0 binaries and provides a user-friendly integration to apply fixes and to suppress warnings. For macOS, a universal binary is bundled.

JetBrains Shell downloads unsigned 0.7.1 binaries from JetBrains’ servers.

VSCode ShellCheck v0.26.3 bundles unsigned binaries of ShellCheck 0.8.0 for Linux, macOS, and Windows. By default, it does not analyze sourced files.

 limited
Formatter → more

BashSupport Pro bundles signed binaries of shfmt 3.5.1 and supports formatting of remote and bats-core files.

JetBrains Shell offers to download unsigned binaries of shfmt 3.3.1 from GitHub project and only supports local files.

VSCode shell-format uses shfmt to format shell scripts and bats-core files. It does not bundle shfmt with the extension.

 limited
Inspections → more

BashSupport Pro provides 20+ additional inspections on top of the ShellCheck integration.

JetBrains Shell relies solely on ShellCheck.

VSCode Bash IDE relies solely on ShellCheck, as far as we understand.

 limited limited
Intentions → more

BashSupport Pro provides 10+ additional intentions

JetBrains Shell provides 2 intentions

VSCode works differently, but it does not provide additional fixes in addition to ShellCheck, as far as we understand.

 limited×
Language Injection → more

Code injection into Bash skript files is available for strings and here documents, including smart escape and substitution handling.
Injection of Bash into other languages is also supported: it automatically injects into Markdown code fences, Travis CI YAML, Codefresh YAML, and anywhere you request it to.

VSCode does not provide language injection for shell scripts, as far as we understand.

××
Code Folding → more

BashSupport Pro comes with powerful code folding and also supports Vim-style custom code folding.

JetBrains Shell does not fold subshells, conditional commands, arithmetic commands, case commands, and compound bodies of functions other than {} blocks.

 limited
Here Document Support

BashSupport Pro can highlight and refactor all substitutions nested in here documents.

JetBrains Shell does not recognize variables or other substitutions in here documents.

VSCode Bash IDE does not recognize variables or other substitutions in here documents.

 limited limited
To Do Highlighting

BashSupport Pro supports multi-line TODO comments.

JetBrains Shell does not support multi-line TODO comments.

VSCode Bash IDE does not support TODO or fixme comments.

 limited limited
Spellchecker Support → more

BashSupport Pro bundles dictionaries with common command names to avoid spamming your editor with warnings. It also integrates with the Grazie plugin for advanced spell checking.

JetBrains Shell provides basic spell checking of quoted strings. It does not provide dictionaries and does not integrate with Grazie.

VSCode Bash IDE does not seem to support spell checking in shell scripts.

 limited×
Indent Lines
Syntax Highlighting
Brace Matching
Live Templates → more

VSCode Bats provides snippets for bats-core files.

Scripts Without File Extension → more
Highlight URLs in Strings
© 2020–2022 Joachim Ansorg
Imprint
Privacy Policy
Legal