Создайте ссылку на веб-браузер, которая открывает файл в Intellij. Возможный?
Например, qbittorent может быть открыт для ссылок, которые имеют торрент-файлы.
Почтовые клиенты mailto:
Можно ли создать ссылки в браузере, который откроет данный файл в Intellij? (Не полный путь, но возможно весь пакет).
Идея в том, что это будет создано для bitbucket.
2 ответа
Есть открытый запрос на добавление функции 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.
В качестве обновления ответа @CrazyCoder
В настоящее время это работает * на Mac. (невозможно проверить на чем-либо еще лично)
* Есть некоторые проблемы:
- В контекстном меню нет опции для создания этой ссылки при нажатии на строку кода.
- Привязка клавиш (см. ниже) создает неверный путь, и его необходимо изменить вручную, либо временно изменив корневую папку исходного кода, либо вручную набрав недостающие части пути.
Существует привязка клавиш, которую вы можете использовать для создания URL-адреса в разделе «Настройки»> «Раскладка клавиш»> «Копировать путь/ссылка»> «URL-адрес панели инструментов». Обратите внимание, что расположение курсора при использовании привязки клавиш имеет значение. Из того, что я могу сказать, если курсор находится в начале или конце строки, он генерирует URL-адрес с
&path=...
, иначе он генерирует с
&fqn=...
. В
fqn
option будет часто ссылаться на неправильную область кода, особенно когда делается попытка сослаться на интерфейсы, библиотеки, автоматическое подключение или что-то еще, кроме прямого ванильного класса/объекта/функции.
Я зарегистрировал проблему с более подробной информацией о сломанном пути, сгенерированном привязкой клавиш: https://youtrack.jetbrains.com/issue/IDEA-290640