Come aprire un file nell'editor da Tracy? (Integrazione con IDE)

Quando viene visualizzata la pagina di errore, è possibile fare clic sui nomi dei file e questi si apriranno nel tuo editor con il cursore sulla riga corrispondente. È anche possibile creare file (azione create file) o correggere errori in essi (azione fix it). Affinché ciò accada, è necessario configurare il browser e il sistema.

Tracy apre i file tramite URL nella forma editor://open/?file=%file&line=%line, cioè con il protocollo editor://. Per questo, registreremo un gestore personalizzato. Questo può essere qualsiasi file eseguibile che “mastichi” i parametri e avvii il nostro editor preferito.

Puoi cambiare l'URL nella variabile Tracy\Debugger::$editor, o disattivare il clic impostando Tracy\Debugger::$editor = null.

Windows

  1. Scarica i file appropriati dal repository Tracy sul tuo disco.
  2. Modifica il file open-editor.js e nell'array settings decommenta ed eventualmente modifica il percorso del tuo editor:
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%"',

	...
}

...

Attenzione, mantieni le doppie barre rovesciate nei percorsi.

3. Registra il gestore del protocollo editor:// nel sistema.

Puoi farlo eseguendo il file install.cmd. È necessario eseguirlo come Amministratore. Lo script open-editor.js gestirà ora il protocollo editor://.

Per poter aprire i link generati su altri server, come un server live o in Docker, aggiungi anche la mappatura dell'URL remoto a quello locale in open-editor.js:

	mappings: {
		// percorso remoto: percorso locale
		'/var/www/nette.app': 'W:\\Nette.web\\_web',
	}

Linux

  1. Scarica i file appropriati dal repository Tracy nella directory ~/bin.
  2. Modifica il file open-editor.sh e decommenta ed eventualmente modifica il percorso del tuo editor nella variabile editor.
#!/bin/bash

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

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

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

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

...

Rendi il file eseguibile:

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

Se l'editor utilizzato non è installato da un pacchetto, probabilmente il binario non avrà un percorso in $PATH. Questo può essere facilmente risolto. Nella directory ~/bin, crea un link simbolico al binario dell'editor.

3. Registra il gestore del protocollo editor:// nel sistema.

Puoi farlo eseguendo il file install.sh. Lo script open-editor.sh gestirà ora il protocollo editor://.

macOS

Editor come PhpStorm, TextMate, ecc. consentono l'apertura di file tramite un URL speciale, che è sufficiente impostare:

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

Se usi Tracy standalone, inserisci la riga prima di Tracy\Debugger::enable(), se usi Nette, allora prima di $configurator->enableTracy() in Bootstrap.php.

Purtroppo, le azioni create file o fix it non funzionano su macOS.

Esempi

Correzione di un errore:

Creazione di un file:

Risoluzione dei problemi

  • In Firefox, potrebbe essere necessario abilitare il protocollo impostando network.protocol-handler.expose.editor su false e network.protocol-handler.expose-all su true in about:config.
  • Se non funziona subito, non farti prendere dal panico e prova a ricaricare la pagina alcune volte prima di fare clic sul link. Si avvierà!
  • Ecco un link per correggere un possibile errore: Input Error: There is no script engine for file extension ".js", Maybe you associated ".js" file to another app, not JScript engine. o non è disponibile alcun motore di scripting per l'estensione .js.

In Google Chrome dalla versione 77, non vedrai più la casella di controllo “Apri sempre questo tipo di link nell'applicazione associata” quando l'editor viene avviato tramite un link. Soluzione per Windows: crea un file fix.reg:

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

Importalo facendo doppio clic e riavvia Chrome.

Per eventuali domande o commenti, si prega di contattare il forum.