// 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]+
3条答案
按热度按时间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:
字符串
示例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设置导航也是如此。
db2dz4w82#
作为@CrazyCoder的回答的更新
目前在Mac上运行 *。(无法亲自在其他任何设备上测试)
在首选项> Keymap >复制路径/引用>复制URL下,有一个可以用来生成URL的键绑定。请注意,使用键绑定时光标的位置很重要。据我所知,如果光标在一行的开头或结尾,它会生成一个带有
&path=...
的URL,fqn
选项通常会链接到错误的代码区域,特别是当接口、库、自动连接或任何不直接链接到普通类/对象/函数的东西时。我已经提交了一个问题,详细说明了密钥绑定生成的损坏路径:https://youtrack.jetbrains.com/issue/IDEA-290640
kuuvgm7e3#
我已经创建了我的自定义(非官方的)“jb://”方案,可以从指定的项目打开文件。
我在git-mediawiki项目中使用了它。在克隆了wiki页面之后,我想在Writerside中将其作为项目打开。
这是
git-mediawiki
实用程序显示的URL示例(为了简化阅读,我将它放在几行中):字符串
在本例中,
~/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。