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

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

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

Можете да промените 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. Регистриране на обслужващото устройство за протокола editor:// в системата.

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

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

	mappings: {
		// remote path: local path
		'/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 създайте симлинк към двоичния файл на редактора.

3. Регистриране на обработващ за протокола editor:// в системата.

Това става, като се стартира скриптът install.sh. Скриптът open-editor.js вече ще обслужва протокола 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 може да се наложи да разрешите изпълнението на потребителския протокол в about:config, като зададете network.protocol-handler.expose.editor на false и network.protocol-handler.expose-all на true. Това обаче трябва да е разрешено по подразбиране.
  • Ако нещата не се получат веднага, не изпадайте в паника. Опитайте да опресните страницата, да рестартирате браузъра или компютъра. Това би трябвало да помогне.
  • Вижте тук, за да поправите:

    Входна грешка: Може би сте свързали файла “.js” с друго приложение, а не с JScript енджина.

От версия 77 на Google Chrome вече няма да се показва квадратчето “Винаги отваряй този тип връзка в свързаното приложение”, когато редакторът се отваря чрез връзка. Обходно решение за Windows: Създайте файл fix.reg:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\URLWhitelist]
"123"="editor://*"

Импортирайте го с двукратно щракване и рестартирайте Chrome.

Ако имате допълнителни проблеми или въпроси, задайте ги във форума.