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