BashSupport Pro 功能特性

 

以下对比基于最新版本的 BashSupport Pro 和 JetBrains IDE 2024.1 版本中的 JetBrains Shell。 绝大多数 JetBrains IDE 中均集成了 JetBrains Shell —— 在我们看来, JetBrains Shell 非常适合用来偶尔查看、编辑和运行 Shell 脚本。
以下对比基于最新版的 BashSupport Pro 和 VSCode 上安装了扩展 BASH extension packBats
BashSupport ProJetBrains ShellVS Code

可直接在 JetBrains 调试界面使用的 bashdb 调试器。

VSCode Bash Debug 内置了bashdb。在Windows上,它仅支持WSL。

×
运行测试 → 更多内容

可直接在 JetBrains 测试界面使用的 bats-core 测试器。

VSCode Bats 提供了语法高亮,基本的代码补全和代码片段,仅支持bats-core自身和若干扩展。 就现状而言我们可以说,它并不支持执行bats-core文件的功能。

× 部分支持
跨平台分享运行配置 → 更多内容

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 提供基础的变量,函数和命令代码补齐。 但是,它并不支持例如建议内置的变量如 $HOME。 它不正确的建议超出作用域之外的局部变量并且并不遵循 source 命令。 代码片段和命令在无效的位置上被建议。

× 部分支持
变量重命名重构 → 更多内容

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 提供基本的变量跳转功能。 但它不会处理如local 变量和source 命令。

× 部分支持
转到函数声明处 → 更多内容

BashSupport Pro 可以跨文件查找函数定义。 它可以对source命令,ShellCheck 指令及用户定义的 shell 脚本库进行查找。

JetBrains Shell 仅支持在当前文件中查找函数定义。

VSCode Bash IDE 提供基本的函数跳转功能。 但它不支持如source命令。

 部分支持 部分支持
代码高亮 → 更多内容

BashSupport Pro 会对引用同一实体的标识符进行高亮。

JetBrains Shell 通过文本出现频率来进行代码高亮,变量、函数、字符串可能同时被高亮处理。

VSCode Bash IDE 提供基本的用法功能。 但它不会处理如local 变量和source 命令。

× 部分支持
多文件支持 → 更多内容

BashSupport Pro 遵循source命令,ShellCheck source指令,项目范围的变量以及用户自定义的 shell 脚本库中进行代码导航。 在bats-core文件中,也支持load命令。

目前据我所知,VSCode Bash IDE 不会跟随 source 或 bats-core’s load 命令,但是会一次搜索工作区内的所有文件。

××
结构视图 → 更多内容

VSCode 提供文件结构的大纲。

调用方和被调用方层次结构 → 更多内容

VSCode不提供调用方和被调用方层次结构。

××
文档查阅 → 更多内容

BashSupport Pro 支持查阅源代码中的 infohelp 和注释。 它还提供了所有 Bash 及 POSIX 内置变量的文档。

JetBrains Shell 仅支持查阅 info

VSCode Bash IDE 提供Bash语法元素的提示。 它似乎并不提示infoman页面的内容。

 部分支持 部分支持
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文件中进行代码注入,包含智能转义和替换处理。
还支持向其他语言中注入 Bash 片段:它会自动注入到 Markdown 代码栏、 Travis CI YAML 、Codefresh YAML以及其他任何您需要的地方。

VSCode并不提供shell脚本语言注入,根据目前我们的理解。

××
代码折叠 → 更多内容

BashSupport Pro 提供强大的代码折叠功能,同时支持 Vim 风格的自定义代码折叠。

除了 {} 外,JetBrains Shell 不能折叠子 shell、条件命令、算术命令、大小写命令及复合函数体。

 部分支持
Here 文档支持

BashSupport Pro 可以高亮并重构嵌套在 Here 文档中的所有替换。

JetBrains Shell无法识别 Here 文档中的变量或其他替换。

VSCode Bash IDE并不能识别here文档中的变量或者其它替换。

 部分支持 部分支持
待办事项高亮

BashSupport Pro 支持多行 待办事项 注释。

JetBrains Shell 不支持多行TODO注释。

VSCode Bash IDE不支持TODOfixme注释。

 部分支持 部分支持
拼写检查 → 更多内容

BashSupport Pro 内置了常用命令字典,避免向编辑器发送带有警告的垃圾信息。 它也集成了Grazie 插件来进行高级拼写检查。

JetBrains Shell 提供引号字符串的基础拼写检查。 它并不提供词典也没有和Grazie集成。

VSCode Bash IDE似乎并不支持在shell脚本中进行拼写检查。

 部分支持×
缩进线
语法高亮
括号匹配
实时模板 → 更多内容

VSCode Bats提供对bats-core的代码片段支持。

无扩展名脚本文件 → 更多内容
高亮字符串中的超链接
© 2020–2024 Joachim Ansorg
声明
隐私政策
许可条款