Features of BashSupport Pro
BashSupport Pro | JetBrains Shell | VSCode | |
---|---|---|---|
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 |
Z Shell Support
→ more Support for Zsh and its advanced features. | ✓ | × | × |
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 | ✓ | × | ✓ 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 | ✓ | × | ✓ 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 | ✓ | ✓ 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 | ✓ | × | ✓ limited |
Multi-File Support
→ more BashSupport Pro follows As far as we understand, VSCode Bash IDE does not follow the | ✓ | × | × |
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 JetBrains Shell only supports VSCode Bash IDE provides tooltips for Bash syntax elements.
It does not seem to provide content of | ✓ | ✓ limited | ✓ limited |
ShellCheck Support
→ more BashSupport Pro bundles signed ShellCheck 0.10.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.8.0 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. 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 | ✓ | ✓ 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 JetBrains Shell does not support multi-line VSCode Bash IDE does not support | ✓ | ✓ 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 | ✓ | ✓ | ✓ |