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

La afișarea paginii de eroare, se poate face clic pe numele fișierelor și acestea se vor deschide în editorul dvs. cu cursorul pe linia corespunzătoare. De asemenea, se pot crea fișiere (acțiunea create file) sau corecta erori în ele (acțiunea fix it). Pentru ca acest lucru să se întâmple, este necesar să configurați browserul și sistemul.

Tracy deschide fișierele prin URL în formatul editor://open/?file=%file&line=%line, adică cu protocolul editor://. Pentru acesta vom înregistra un handler personalizat. Acesta poate fi orice fișier executabil care “mestecă” parametrii și lansează editorul nostru preferat.

Puteți schimba URL-ul în variabila Tracy\Debugger::$editor sau puteți dezactiva clicarea setând Tracy\Debugger::$editor = null.

Windows

  1. Descărcați fișierele corespunzătoare din repozitoriul Tracy pe disc.
  2. Editați fișierul open-editor.js și în array-ul settings decomentați și, eventual, modificați calea către editorul dvs.:
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%"',

	...
}

...

Atenție, păstrați slash-urile duble în căi.

3. Înregistrați handlerul protocolului editor:// în sistem.

Acest lucru se face rulând fișierul install.cmd. Trebuie să îl rulați ca Administrator. Scriptul open-editor.js va gestiona acum protocolul editor://.

Pentru a putea deschide linkuri generate pe alte servere, cum ar fi pe serverul live sau în Docker, adăugați în open-editor.js și maparea URL-ului la distanță la cel local:

	mappings: {
		// cale la distanță: cale locală
		'/var/www/nette.app': 'W:\\Nette.web\\_web',
	}

Linux

  1. Descărcați fișierele corespunzătoare din repozitoriul Tracy în directorul ~/bin.
  2. Editați fișierul open-editor.sh și decomentați și, eventual, modificaț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 fișierul executabil:

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

Dacă editorul utilizat nu este instalat dintr-un pachet, probabil că binarul nu va avea calea în $PATH. Acest lucru poate fi remediat simplu. În directorul ~/bin creați un symlink către binarul editorului.

3. Înregistrați handlerul protocolului editor:// în sistem.

Acest lucru se face rulând fișierul install.sh. Scriptul open-editor.sh va gestiona acum protocolul editor://.

macOS

Editoarele precum PhpStorm, TextMate etc. permit deschiderea fișierelor prin URL-uri speciale, care trebuie doar setate:

// 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 independent, inserați linia înainte de Tracy\Debugger::enable(), dacă utilizați Nette, atunci înainte de $configurator->enableTracy() în Bootstrap.php.

Acțiunile create file sau fix it din păcate nu funcționează pe macOS.

Exemple

Corectarea unei erori:

Crearea unui fișier:

Depanarea problemelor

  • În Firefox, poate fi necesar să permiteți protocolul setând network.protocol-handler.expose.editor la false și network.protocol-handler.expose-all la true în about:config.
  • Dacă nu funcționează imediat, nu intrați în panică și încercați să reîmprospătați pagina de câteva ori înainte de a face clic pe link. Va porni!
  • Aici este un link pentru a repara eventuala eroare: Input Error: There is no script engine for file extension ".js", Maybe you associated ".js" file to another app, not JScript engine. respectiv nu există un motor de scripting disponibil pentru extensia .js.

În Google Chrome, începând cu versiunea 77, nu veți mai vedea caseta de bifat „Deschideți întotdeauna acest tip de linkuri în aplicația asociată” atunci când editorul este lansat printr-un link. Soluție pentru Windows: creați un fișier fix.reg:

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

Importați-l făcând dublu clic și reporniți browserul Chrome.

Pentru eventuale întrebări sau comentarii, vă rugăm să vă adresați forumului.