Существует запрос открытой функции для добавления idea://
обработчика протокола.
На данный момент работает на macOS только из коробки. Для других платформ вы можете попробовать стороннее решение или другие обходные пути из комментариев к заявке.
Существует также встроенный веб-сервер, обеспечивающий REST API для открытия файлов .
Он будет работать с относительными путями, только если IDE уже запущена и проект открыт: http://localhost:63342/api/file/relative/to/module/root/path/to/file.kt
.
С установленным приложением JetBrains Toolbox можно будет использовать 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 панели инструментов соответствует регулярному выражению:
"${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]+))*"
Будет также пользовательский интерфейс для копирования URL-адресов протокола TBX непосредственно из редактора, аналогично действию Копировать ссылку в контекстном меню. То же самое будет работать для навигации по настройкам IDE.