Как открыть файл в редакторе из Tracy? (Интеграция с IDE)
При отображении страницы ошибки можно кликнуть на имена
файлов, и они откроются в вашем редакторе с курсором на
соответствующей строке. Также можно создавать файлы (действие
create file
) или исправлять в них ошибки (действие fix it
). Чтобы
это произошло, необходимо настроить браузер и систему.
Tracy открывает файлы по URL вида editor://open/?file=%file&line=%line
, т.е. с
протоколом editor://
. Для него мы зарегистрируем собственный
обработчик. Им может быть любой исполняемый файл, который “переварит”
параметры и запустит наш любимый редактор.
URL можно изменить в переменной Tracy\Debugger::$editor
или отключить
переход по ссылкам, установив Tracy\Debugger::$editor = null
.
Windows
- Скачайте соответствующие файлы из репозитория Tracy на диск.
- Отредактируйте файл
open-editor.js
и в массивеsettings
раскомментируйте и при необходимости измените путь к вашему редактору:
var settings = {
// PhpStorm
editor: '"C:\\Program Files\\JetBrains\\PhpStorm 2018.1.2\\bin\\phpstorm64.exe" --line %line% "%file%"',
title: 'PhpStorm',
// NetBeans
// editor: '"C:\\Program Files\\NetBeans 8.1\\bin\\netbeans.exe" "%file%:%line%" --console suppress',
// Sublime Text 2
// editor: '"C:\\Program Files\\Sublime Text 2\\sublime_text.exe" "%file%:%line%"',
...
}
...
Внимание, оставляйте двойные слеши в путях.
3. Зарегистрируйте обработчик протокола editor://
в системе.
Это вы сделаете, запустив файл install.cmd
. Его необходимо
запустить от имени Администратора. Скрипт open-editor.js
теперь
будет обрабатывать протокол editor://
.
Чтобы можно было открывать ссылки, сгенерированные на других
серверах, например, на реальном сервере или в Docker, добавьте в
open-editor.js
еще и сопоставление удаленного URL с локальным:
mappings: {
// удаленный путь: локальный путь
'/var/www/nette.app': 'W:\\Nette.web\\_web',
}
Linux
- Скачайте соответствующие файлы из репозитория Tracy в
каталог
~/bin
. - Отредактируйте файл
open-editor.sh
и раскомментируйте и при необходимости измените путь к вашему редактору в переменнойeditor
.
#!/bin/bash
# Emacs
#editor='emacs +$LINE "$FILE"'
# gVim
#editor='gvim +$LINE "$FILE"'
# gEdit
#editor='gedit +$LINE "$FILE"'
# Pluma
#editor='pluma +$LINE "$FILE"'
...
Сделайте файл исполняемым:
chmod +x ~/bin/open-editor.sh
Если используемый редактор не установлен из пакета, вероятно,
исполняемый файл не будет иметь пути в $PATH. Это можно легко исправить. В
каталоге ~/bin
создайте символическую ссылку на исполняемый файл
редактора.
3. Зарегистрируйте обработчик протокола editor://
в системе.
Это вы сделаете, запустив файл install.sh
. Скрипт open-editor.sh
теперь будет обрабатывать протокол editor://
.
macOS
Редакторы, такие как PhpStorm, TextMate и т.д., позволяют открывать файлы по специальным URL, который достаточно установить:
// PhpStorm
Tracy\Debugger::$editor = 'phpstorm://open?file=%file&line=%line';
// TextMate
Tracy\Debugger::$editor = 'txmt://open/?url=file://%file&line=%line';
// MacVim
Tracy\Debugger::$editor = 'mvim://open?url=file:///%file&line=%line';
// Visual Studio Code
Tracy\Debugger::$editor = 'vscode://file/%file:%line';
Если вы используете отдельную Tracy, вставьте строку перед
Tracy\Debugger::enable()
, если Nette, то перед $configurator->enableTracy()
в
Bootstrap.php
.
Действия create file
или fix it
, к сожалению, не работают
на macOS.
Примеры
Исправление ошибки:
Создание файла:
Решение проблем
- В Firefox может потребоваться разрешить протокол, установив
network.protocol-handler.expose.editor
вfalse
иnetwork.protocol-handler.expose-all
вtrue
в about:config. - Если у вас сразу не получится, не паникуйте и попробуйте несколько раз обновить страницу перед кликом по этой ссылке. Заработает!
- Вот ссылка
на исправление возможной ошибки:
Input Error: There is no script engine for file extension ".js"
,Maybe you associated ".js" file to another app, not JScript engine.
соответственнодля расширения .js нет доступного скриптового движка
.
В Google Chrome начиная с версии 77 вы больше не увидите флажок „Всегда
открывать ссылки этого типа в связанном приложении“, когда редактор
запущен по ссылке. Решение для Windows: создайте файл fix.reg
:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\URLWhitelist]
"123"="editor://*"
Импортируйте его двойным кликом и перезапустите браузер Chrome.
С возможными вопросами или замечаниями, пожалуйста, обращайтесь на форум.