Как да отворите файл в редактора от Tracy? (Интеграция с IDE)

При показване на страницата с грешка можете да кликнете върху имената на файловете и те ще се отворят във вашия редактор с курсора на съответния ред. Също така можете да създавате файлове (действие create file) или да коригирате грешки в тях (действие fix it). За да се случи това, е необходимо да конфигурирате браузъра и системата.

Tracy отваря файлове чрез URL във формата editor://open/?file=%file&line=%line, т.е. с протокол editor://. За него ще регистрираме собствен handler. Това може да бъде произволен изпълним файл, който ще “сдъвче” параметрите и ще стартира любимия ни редактор.

Можете да промените URL адреса в променливата Tracy\Debugger::$editor или да изключите кликването, като зададете Tracy\Debugger::$editor = null.

Windows

  1. Изтеглете съответните файлове от хранилището на Tracy на диска.
  2. Редактирайте файла 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. Регистрирайте handler за протокола editor:// в системата.

Това става чрез стартиране на файла install.cmd. Трябва да го стартирате като Администратор. Скриптът open-editor.js вече ще обслужва протокола editor://.

За да можете да отваряте връзки, генерирани на други сървъри, като например на реален сървър или в Docker, добавете в open-editor.js и съпоставяне на отдалечен URL към локален:

	mappings: {
		// отдалечен път: локален път
		'/var/www/nette.app': 'W:\\Nette.web\\_web',
	}

Linux

  1. Изтеглете съответните файлове от хранилището на Tracy в директорията ~/bin.
  2. Редактирайте файла 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 създайте символна връзка (symlink) към изпълнимия файл на редактора.

3. Регистрирайте handler за протокола 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.

С евентуални въпроси или коментари, моля, обърнете се към форума.