Cum să deschideți un fișier în editor din Tracy? (Integrare IDE)

Când este afișată pagina de erori, puteți face clic pe numele fișierelor și acestea se vor deschide în editorul dvs. cu cursorul pe linia corespunzătoare. De asemenea, pot fi create fișiere (acțiunea create file) sau pot fi corectate erori în acestea (acțiunea fix it). Pentru a face acest lucru, trebuie să configurați browserul și sistemul.

Tracy deschide fișiere prin intermediul URL-urilor de forma editor://open/?file=%file&line=%line, adică cu protocolul editor://. Pentru acesta vom înregistra propriul nostru handler. Acesta poate fi orice fișier executabil care procesează parametrii și pornește editorul nostru preferat.

Puteți modifica URL-ul în variabila Tracy\Debugger::$editor sau puteți dezactiva click-through prin setarea Tracy\Debugger::$editor = null.

Windows

  1. Descărcați fișierele corespunzătoare din depozitul Tracy pe disc.
  2. Editați open-editor.js și decomentați sau editați calea către editorul dvs. în 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%"',

	...
}

...

Fiți atenți și păstrați barierele duble în căile de acces.

3. Înregistrați în sistem gestionarul pentru protocolul editor://.

Acest lucru se face prin rularea install.cmd. Trebuie să îl rulați ca administrator. Scriptul open-editor.js va servi acum protocolul editor://.

Pentru a deschide linkuri generate pe alte servere, cum ar fi un server de producție sau Docker, adăugați o corespondență URL de la distanță la local la open-editor.js:

	mappings: {
		// remote path: local path
		'/var/www/nette.app': 'W:\\Nette.web\\_web',
	}

Linux

  1. Descărcați fișierele corespunzătoare din depozitul Tracy în directorul ~/bin.
  2. Editați open-editor.sh și decomentați sau editați calea către editorul dvs. în variabila editor:
#!/bin/bash

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

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

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

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

...

Faceți-o executabilă:

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

Dacă editorul pe care îl folosiți nu este instalat din pachet, probabil că binarul nu va avea o cale în $PATH. Acest lucru poate fi corectat cu ușurință. În directorul ~/bin, creați o legătură simbolică pe binarul editorului.

3. Înregistrați în sistem gestionarul pentru protocolul editor://.

Acest lucru se face prin rularea install.sh. Scriptul open-editor.js va servi acum protocolul editor://.

macOS

Editorii precum PhpStorm, TextMate etc. vă permit să deschideți fișiere prin intermediul unui URL special, pe care trebuie doar să îl setați:

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

Dacă utilizați Tracy standalone, puneți linia înainte de Tracy\Debugger::enable(), dacă Nette, înainte de $configurator->enableTracy() în Bootstrap.php.

Din păcate, acțiunile create file sau fix it nu funcționează pe macOS.

Demonstrații

Corectarea unui bug:

Crearea unui nou fișier:

Rezolvarea problemelor

  • În Firefox, este posibil să fie necesar să permiteți executarea protocolului personalizat în about:config prin setarea network.protocol-handler.expose.editor la false și network.protocol-handler.expose-all la true. Cu toate acestea, ar trebui să fie permisă în mod implicit.
  • Dacă nu funcționează totul imediat, nu intrați în panică. Încercați să reîmprospătați pagina, reporniți browserul sau calculatorul. Asta ar trebui să ajute.
  • Vedeți aici pentru a remedia problema:

    Eroare de intrare: There is no script engine for file extension “.js” Poate ați asociat fișierul “.js” unei alte aplicații, nu motorului JScript.

Începând cu versiunea 77 a Google Chrome, nu veți mai vedea caseta de selectare “Deschideți întotdeauna aceste tipuri de linkuri în aplicația asociată” atunci când editorul este deschis printr-un link. Soluție de rezolvare pentru Windows: creați fișierul fix.reg:

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

Importați-l prin dublu clic și reporniți Chrome.

În cazul în care aveți mai multe probleme sau întrebări, întrebați pe forum.