Chrome 创建一个Web浏览器链接,在Intellij中打开一个文件,可能吗?

gg0vcinb  于 2023-11-14  发布在  Go
关注(0)|答案(3)|浏览(121)

例如,qbittorent可以打开种子文件的链接。
电子邮件客户mailto:
是否可以在浏览器中创建链接,以在Intellij中打开给定的文件?(不是完整的路径,但可能是整个包)。
这将是为Bitbucket创建的。

yrefmtwq

yrefmtwq1#

有一个open feature request来添加idea://协议处理程序。
目前,它只能在macOS上开箱即用。对于其他平台,您可以尝试third-party solution或其他解决方案,从工单评论。
还有一个内置的Web服务器,提供REST API来打开文件。
只有当IDE已经在运行并且项目已打开时,它才能处理相对路径:http://localhost:63342/api/file/relative/to/module/root/path/to/file.kt
安装了JetBrains Toolbox App后,用户将能够使用jetbrains://协议进行导航,这是正在进行中,应该在2019.2可用。
参考JBProtocolNavigateCommand.kt

// handles URLs of the following types:

// jetbrains://idea/navigate/reference?project=IDEA
// [&reference[X]=com.intellij.navigation.JBProtocolNavigateCommand[.perform][#perform]]+
// [&path[X]=com/intellij/openapi/project/impl/JBProtocolNavigateCommand.kt[:23[:1]]]+
// [&selection[X]=25:5-26:6]+

字符串
示例URL:
jetbrains://idea/navigate/reference?project=IDEA&fqn=com.intellij.openapi.application.JetBrainsProtocolHandler#getParameters
URL匹配regexp:
"${JetBrainsProtocolHandler.PROTOCOL}([\\w\\-]+)/navigate/reference\\?project=(?<project>[\\w]+)(&fqn[\\d]*=(?<fqn>[\\w.\\-#]+))*(&path[\\d]*=(?<path>[\\w-_/\\\\.]+)(:(?<location1>[\\d]+))?(:(?<location2>[\\d]+))?)*(&selection[\\d]*=(?<line1>[\\d]+):(?<column1>[\\d]+)-(?<line2>[\\d]+):(?<column2>[\\d]+))*"
还会有直接从编辑器中复制TBX协议URL的UI,类似于上下文菜单中的复制引用操作。IDE设置导航也是如此。

db2dz4w8

db2dz4w82#

作为@CrazyCoder的回答的更新
目前在Mac上运行 *。(无法亲自在其他任何设备上测试)

  • 有一些问题:
  • 没有上下文菜单选项用于通过单击一行代码生成此链接
  • 键绑定(见下文)生成了错误的路径,需要通过临时更改源根目录或手动键入缺少的路径部分来手动修改。

在首选项> Keymap >复制路径/引用>复制URL下,有一个可以用来生成URL的键绑定。请注意,使用键绑定时光标的位置很重要。据我所知,如果光标在一行的开头或结尾,它会生成一个带有&path=...的URL,fqn选项通常会链接到错误的代码区域,特别是当接口、库、自动连接或任何不直接链接到普通类/对象/函数的东西时。
我已经提交了一个问题,详细说明了密钥绑定生成的损坏路径:https://youtrack.jetbrains.com/issue/IDEA-290640

kuuvgm7e

kuuvgm7e3#

我已经创建了我的自定义(非官方的)“jb://”方案,可以从指定的项目打开文件。
我在git-mediawiki项目中使用了它。在克隆了wiki页面之后,我想在Writerside中将其作为项目打开。
这是git-mediawiki实用程序显示的URL示例(为了简化阅读,我将它放在几行中):

jb://localhost?api=v1
&ide=writerside
&project_path=~/Documents/MediaWiki/
&file_path=wiki.blender.org/Building_Blender/Linux/Arch/Arch.mw

字符串
在本例中,~/Documents/MediaWiki/是一个包含.idea文件夹的目录。这是一个多根项目。文件夹~/Documents/MediaWiki/wiki.blender.org/Building_Blender/Linux/Arch/包含一个.git文件夹,而Arch.mw是该存储库中的文件。
因此,在安装jb-url-handler并单击该链接后,Writerside将打开(如果还没有打开),并且带有文件Arch.mw的选项卡将打开。
请参见https://github.com/Ashark/jb-url-handler

相关问题