Как открыть файл в редакторе из 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.
С возможными вопросами или замечаниями, пожалуйста, обращайтесь на форум.