了解JetBrains URL Scheme
最近在使用click-to-component时发现并没支持JB IDE的集成,因此花了下时间集成支持了下。这里mark下JB的URL Scheme支持情况
JB IDE本身并没有提供直接的URL Scheme支持,调研后发现方案有如下2个。
JetBrains Toolbox
toolbox安装后即会提供JB 各个IDE支持。
支持IDE清单
- IntelliJ IDEA
- AppCode
- CLion
- PyCharm
- PhpStorm
- RubyMine
- WebStorm
- Rider
- GoLand
- RustRover
动作支持如下
- checkout某个仓库,使用对应对应IDE打开
1 | jetbrains://${toolTag}/checkout/git?checkout.repo=${cloneUrl}&idea.required.plugins.id=Git4Idea |
- 打开某仓库,某文件及移动到对应行列位置
1 | jetbrains://${toolTag}/navigate/reference?project=${project}&path=${filePath}:${lineIndex}:${columnIndex} |
具体的URL Scheme规则见仓库jetbrains-url-schemes
该方案的缺点是没有提供直接打开某个文件的功能。
IDE Remote Control
JB官方有提供官方的IDE Remote Control支持,本质即IDE提供了控制Server,通过HTTP API可以操作IDE。
API规范
1 | * @apiExample {curl} Absolute path |
具体详情见JB官方commit
该方案的缺点是IDE需要安装IDE Remote Control
插件。且因为是HTTP服务,可能与本地端口冲突,需要手动修改。
写在最后
上述方案2个均可以实现点击文件跳转,但均存在不足,期待后续JB IDE可以直接提供完善的URL Scheme支持。