Kako odpreti datoteko v urejevalniku iz Tracy? (Integracija z IDE)

Pri prikazu strani z napako lahko kliknete na imena datotek in te se bodo odprle v vašem urejevalniku s kazalcem na ustrezni vrstici. Prav tako lahko datoteke ustvarjate (akcija create file) ali v njih popravljate napake (akcija fix it). Da bi se to zgodilo, je treba konfigurirati brskalnik in sistem.

Tracy odpira datoteke prek URL v obliki editor://open/?file=%file&line=%line, tj. s protokolom editor://. Zanj registriramo lastnega upravljalca. To je lahko katera koli izvedljiva datoteka, ki “prežveči” parametre in zažene naš priljubljeni urejevalnik.

URL lahko spremenite v spremenljivki Tracy\Debugger::$editor ali pa klikanje onemogočite z nastavitvijo Tracy\Debugger::$editor = null.

Windows

  1. Prenesite ustrezne datoteke iz repostorija Tracy na disk.
  2. Uredite datoteko open-editor.js in v polju settings odkomentirajte ter po potrebi prilagodite pot do vašega urejevalnika:
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%"',

	...
}

...

Pozor, ohranite dvojne poševnice v poteh.

3. Registrirajte upravljalca protokola editor:// v sistemu.

To storite z zagonom datoteke install.cmd. Treba jo je zagnati kot skrbnik. Skript open-editor.js bo zdaj upravljal protokol editor://.

Da bi bilo mogoče odpirati povezave, generirane na drugih strežnikih, kot na primer na produkcijskem strežniku ali v Dockerju, v open-editor.js dodajte še preslikavo oddaljenega URL-ja na lokalnega:

	mappings: {
		// oddaljena pot: lokalna pot
		'/var/www/nette.app': 'W:\\Nette.web\\_web',
	}

Linux

  1. Prenesite ustrezne datoteke iz repostorija Tracy v imenik ~/bin.
  2. Uredite datoteko open-editor.sh in odkomentirajte ter po potrebi prilagodite pot do vašega urejevalnika v spremenljivki editor.
#!/bin/bash

# Emacs
#editor='emacs +$LINE "$FILE"'

# gVim
#editor='gvim +$LINE "$FILE"'

# gEdit
#editor='gedit +$LINE "$FILE"'

# Pluma
#editor='pluma +$LINE "$FILE"'

...

Naredite datoteko izvedljivo:

chmod +x ~/bin/open-editor.sh

Če uporabljenega urejevalnika nimate nameščenega iz paketa, verjetno binarna datoteka ne bo imela poti v $PATH. To lahko enostavno popravite. V imeniku ~/bin ustvarite simbolično povezavo do binarne datoteke urejevalnika.

3. Registrirajte upravljalca protokola editor:// v sistemu.

To storite z zagonom datoteke install.sh. Skript open-editor.sh bo zdaj upravljal protokol editor://.

macOS

Urejevalniki, kot so PhpStorm, TextMate itd., omogočajo odpiranje datotek prek posebnega URL-ja, ki ga je treba samo nastaviti:

// 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';

Če uporabljate samostojno Tracy, vstavite vrstico pred Tracy\Debugger::enable(), če uporabljate Nette, pa pred $configurator->enableTracy() v Bootstrap.php.

Akciji create file ali fix it na žalost na macOS ne delujeta.

Primeri

Popravek napake:

Ustvarjanje datoteke:

Reševanje težav

  • V Firefoxu bo morda treba protokol omogočiti z nastavitvijo network.protocol-handler.expose.editor na false in network.protocol-handler.expose-all na true v about:config.
  • Če vam takoj ne uspe, ne paničarite in poskusite nekajkrat osvežiti stran, preden kliknete na to povezavo. Začelo bo delovati!
  • Tukaj je povezava za popravek morebitne napake: Input Error: There is no script engine for file extension ".js", Maybe you associated ".js" file to another app, not JScript engine. oziroma za končnico .js ni na voljo nobenega skriptnega pogona.

V Google Chrome od različice 77 ne boste več videli potrditvenega polja »Vedno odpri te vrste povezav v povezani aplikaciji«, ko se urejevalnik zažene prek povezave. Rešitev za Windows: ustvarite datoteko fix.reg:

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

Uvozite jo z dvojnim klikom in ponovno zaženite brskalnik Chrome.

Z morebitnimi vprašanji ali pripombami se obrnite na forum.