BashSupport Pro 功能特性
BashSupport Pro | JetBrains Shell | VS Code | |
---|---|---|---|
调试器
→ 更多内容 可直接在 JetBrains 调试界面使用的 bashdb 调试器。 VSCode Bash Debug 内置了bashdb。在Windows上,它仅支持WSL。 | ✓ | × | ✓ |
运行测试
→ 更多内容 可直接在 JetBrains 测试界面使用的 bats-core 测试器。 VSCode Bats 提供了语法高亮,基本的代码补全和代码片段,仅支持bats-core自身和若干扩展。 就现状而言我们可以说,它并不支持执行bats-core文件的功能。 | ✓ | × | ✓ 部分支持 |
Z Shell 支持
→ 更多内容 支持 Zsh 及其高级功能。 | ✓ | × | × |
跨平台分享运行配置
→ 更多内容 BashSupport Pro 提供强大的运行配置,支持Windows路径映射( WSL, MSYS Git Bash, Cygwin),内联片段,以及更多。 它提供了多个代替功能来自动确定解释器。 由于 JetBrains Shell 需要在每个运行配置中配置一个特定的解释器,您无法与您的团队跨平台共享这些配置。 它只在Windows上支持WLS路径映射。 VSCode 似乎并不提供支持shell脚本和bats-core文件的扩展。 | ✓ | ✓ 部分支持 | × |
远程开发
→ 更多内容 在远程机器上通过SSH, Docker 或WSL调试和执行您的shell脚本。 VSCode 使用不同的方案实现远程开发。BashSupport Pro和JetBrains Gateway和它类似。 | ✓ | × | ✓ |
谷歌 Shell 编程风格支持
→ 更多内容 BashSupport Pro 代码检查、快速修复及预设格式化等功能均支持谷歌 Shell 编程风格。 VSCode并不支持Google Sheel风格指南。 | ✓ | × | × |
代码补全
→ 更多内容 BashSupport Pro 可以为您提供函数名、变量、 Bash 和 POSIX 内置命令的补全建议。 JetBrains Shell 仅提供在当前文件中查找到的单词。 例如,在补全变量名时,它可能会提示函数名。 VSCode Bash IDE 提供基础的变量,函数和命令代码补齐。
但是,它并不支持例如建议内置的变量如 | ✓ | × | ✓ 部分支持 |
变量重命名重构
→ 更多内容 BashSupport Pro 可以跨文件重命名变量及其引用。 VSCode Bash IDE 不支持重命名变量。 | ✓ | × | × |
函数重命名重构
→ 更多内容 BashSupport Pro 可以跨多个文件重命名你的函数定义及所有引用。 JetBrains Shell 仅支持在当前文件中重命名函数。 VSCode Bash IDE 不支持重命名函数。 | ✓ | ✓ 部分支持 | × |
内联变量重构
→ 更多内容 BashSupport Pro允许内联脚本内的变量定义和引用。 VSCode Bash IDE不支持内联变量。 | ✓ | × | × |
转到变量声明处
→ 更多内容 BashSupport Pro 支持跨文件查找变量名定义。 它可以对source命令,ShellCheck 指令及用户定义的 shell 脚本库进行查找。 VSCode Bash IDE 提供基本的变量跳转功能。
但它不会处理如 | ✓ | × | ✓ 部分支持 |
转到函数声明处
→ 更多内容 BashSupport Pro 可以跨文件查找函数定义。 它可以对source命令,ShellCheck 指令及用户定义的 shell 脚本库进行查找。 JetBrains Shell 仅支持在当前文件中查找函数定义。 VSCode Bash IDE 提供基本的函数跳转功能。
但它不支持如 | ✓ | ✓ 部分支持 | ✓ 部分支持 |
代码高亮
→ 更多内容 BashSupport Pro 会对引用同一实体的标识符进行高亮。 JetBrains Shell 通过文本出现频率来进行代码高亮,变量、函数、字符串可能同时被高亮处理。 VSCode Bash IDE 提供基本的用法功能。
但它不会处理如 | ✓ | × | ✓ 部分支持 |
多文件支持
→ 更多内容 BashSupport Pro 遵循 目前据我所知,VSCode Bash IDE 不会跟随 | ✓ | × | × |
结构视图
→ 更多内容 VSCode 提供文件结构的大纲。 | ✓ | ✓ | ✓ |
调用方和被调用方层次结构
→ 更多内容 VSCode不提供调用方和被调用方层次结构。 | ✓ | × | × |
文档查阅
→ 更多内容 BashSupport Pro 支持查阅源代码中的 JetBrains Shell 仅支持查阅 VSCode Bash IDE 提供Bash语法元素的提示。
它似乎并不提示 | ✓ | ✓ 部分支持 | ✓ 部分支持 |
ShellCheck 支持
→ 更多内容 BashSupport Pro 提供了签名的 ShellCheck 0.10.0 二进制程序 同时提供了一个用户友好的集成功能来修复和抑制警告信息。对于 macOS , BashSupport Pro 内嵌了一个通用 的可执行文件。 JetBrains Shell 可以从 JetBrains 服务器上下载未签名的 0.7.1 版 ShellCheck 程序。 VSCode ShellCheck v0.26.3 捆绑了未签名的ShellCheck 0.8.0二进制文件,含Linux, macOS, 和Windows. 默认情况下,它不会分析源代码文件。 | ✓ | ✓ 部分支持 | ✓ |
代码格式化
→ 更多内容 BashSupport Pro 提供了签名的 shfmt 3.8.0 程序, 并支持远程文件及 bats-core 文件的格式化。 JetBrains Shell 可以使用从 Github 下载的 3.3.1 版本的未签名 shfmt,并且仅支持本地文件格式化。 VSCode shell-format 使用shfmt来格式化shell脚本和bats-core文件。 它在扩展中并不捆绑shfmt。 | ✓ | ✓ 部分支持 | ✓ |
代码检查
→ 更多内容 BashSupport Pro 在 ShellCheck 之上额外提供了 20 余项代码检查规则。 JetBrains Shell 的代码检查功能完全依赖于 ShellCheck。 VSCode Bash IDE 完全依赖于ShellCheck,根据目前我们的理解。 | ✓ | ✓ 部分支持 | ✓ 部分支持 |
意图
→ 更多内容 BashSupport Pro提供十多种额外意图 JetBrains Shell 提供2个意图 VSCode的工作不同,单它并不提供ShellCheck之外的额外修正,根据目前我们的理解。 | ✓ | ✓ 部分支持 | × |
语言注入
→ 更多内容 对于字符串和 Here 文档,均可以向Bash Skript文件中进行代码注入,包含智能转义和替换处理。 VSCode并不提供shell脚本语言注入,根据目前我们的理解。 | ✓ | × | × |
代码折叠
→ 更多内容 BashSupport Pro 提供强大的代码折叠功能,同时支持 Vim 风格的自定义代码折叠。 除了 | ✓ | ✓ 部分支持 | ✓ |
Here 文档支持 BashSupport Pro 可以高亮并重构嵌套在 Here 文档中的所有替换。 JetBrains Shell无法识别 Here 文档中的变量或其他替换。 VSCode Bash IDE并不能识别here文档中的变量或者其它替换。 | ✓ | ✓ 部分支持 | ✓ 部分支持 |
待办事项高亮 BashSupport Pro 支持多行 JetBrains Shell 不支持多行 VSCode Bash IDE不支持 | ✓ | ✓ 部分支持 | ✓ 部分支持 |
拼写检查
→ 更多内容 BashSupport Pro 内置了常用命令字典,避免向编辑器发送带有警告的垃圾信息。 它也集成了Grazie 插件来进行高级拼写检查。 JetBrains Shell 提供引号字符串的基础拼写检查。 它并不提供词典也没有和Grazie集成。 VSCode Bash IDE似乎并不支持在shell脚本中进行拼写检查。 | ✓ | ✓ 部分支持 | × |
缩进线 | ✓ | ✓ | ✓ |
语法高亮 | ✓ | ✓ | ✓ |
括号匹配 | ✓ | ✓ | ✓ |
实时模板
→ 更多内容 VSCode Bats提供对bats-core的代码片段支持。 | ✓ | ✓ | ✓ |
无扩展名脚本文件
→ 更多内容 | ✓ | ✓ | ✓ |
高亮字符串中的超链接 | ✓ | ✓ | ✓ |