Wie öffnet man eine Datei aus Tracy im Editor? (Integration mit IDE)
Bei der Anzeige der Fehlerseite können Sie auf Dateinamen klicken, und diese öffnen sich in Ihrem Editor mit
dem Cursor in der entsprechenden Zeile. Es ist auch möglich, Dateien zu erstellen (Aktion create file
) oder Fehler
darin zu korrigieren (Aktion fix it
). Dazu müssen Browser und System konfiguriert werden.
Tracy öffnet Dateien über URLs der Form editor://open/?file=%file&line=%line
, d.h. mit dem Protokoll
editor://
. Dafür registrieren wir einen eigenen Handler. Dies kann jede ausführbare Datei sein, die die Parameter
verarbeitet und unseren bevorzugten Editor startet.
Die URL können Sie in der Variablen Tracy\Debugger::$editor
ändern oder das Durchklicken durch Setzen von
Tracy\Debugger::$editor = null
deaktivieren.
Windows
- Laden Sie die entsprechenden Dateien aus dem Tracy-Repository auf Ihre Festplatte herunter.
- Bearbeiten Sie die Datei
open-editor.js
und kommentieren Sie im Arraysettings
den Pfad zu Ihrem Editor aus und passen Sie ihn gegebenenfalls an:
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%"',
...
}
...
Achtung, behalten Sie die doppelten Schrägstriche in den Pfaden bei.
3. Registrieren Sie den Handler für das editor://
Protokoll im System.
Dies tun Sie durch Ausführen der Datei install.cmd
. Es muss als Administrator ausgeführt werden. Das
Skript open-editor.js
wird nun das Protokoll editor://
behandeln.
Um Links öffnen zu können, die auf anderen Servern generiert wurden, wie z.B. auf einem Live-Server oder in Docker, fügen
Sie in open-editor.js
noch das Mapping von Remote-URLs zu lokalen URLs hinzu:
mappings: {
// Remote-Pfad: lokaler Pfad
'/var/www/nette.app': 'W:\\Nette.web\\_web',
}
Linux
- Laden Sie die entsprechenden Dateien aus dem Tracy-Repository in das Verzeichnis
~/bin
herunter. - Bearbeiten Sie die Datei
open-editor.sh
und kommentieren Sie den Pfad zu Ihrem Editor in der Variableneditor
aus und passen Sie ihn gegebenenfalls an.
#!/bin/bash
# Emacs
#editor='emacs +$LINE "$FILE"'
# gVim
#editor='gvim +$LINE "$FILE"'
# gEdit
#editor='gedit +$LINE "$FILE"'
# Pluma
#editor='pluma +$LINE "$FILE"'
...
Machen Sie die Datei ausführbar:
chmod +x ~/bin/open-editor.sh
Wenn der verwendete Editor nicht aus einem Paket installiert wurde, hat die Binärdatei wahrscheinlich keinen Pfad
in $PATH. Das lässt sich leicht beheben. Erstellen Sie im Verzeichnis ~/bin
einen Symlink zur
Editor-Binärdatei.
3. Registrieren Sie den Handler für das editor://
Protokoll im System.
Dies tun Sie durch Ausführen der Datei install.sh
. Das Skript open-editor.sh
wird nun das Protokoll
editor://
behandeln.
macOS
Editoren wie PhpStorm, TextMate usw. ermöglichen das Öffnen von Dateien über eine spezielle URL, die nur eingestellt werden muss:
// 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';
Wenn Sie Tracy eigenständig verwenden, fügen Sie die Zeile vor Tracy\Debugger::enable()
ein, wenn Sie Nette
verwenden, dann vor $configurator->enableTracy()
in Bootstrap.php
.
Die Aktionen create file
oder fix it
funktionieren leider unter macOS nicht.
Beispiele
Fehlerbehebung:
Dateierstellung:
Fehlerbehebung
- In Firefox muss das Protokoll möglicherweise durch Einstellung von
network.protocol-handler.expose.editor
auffalse
undnetwork.protocol-handler.expose-all
auftrue
in about:config aktiviert werden. - Wenn es nicht sofort funktioniert, keine Panik und versuchen Sie, die Seite ein paar Mal zu aktualisieren, bevor Sie auf den Link klicken. Es wird losgehen!
- Hier ist ein Link zur
Behebung eines möglichen Fehlers:
Input Error: There is no script engine for file extension ".js"
,Maybe you associated ".js" file to another app, not JScript engine.
bzw.für die Dateiendung .js ist keine Skript-Engine verfügbar
.
In Google Chrome ab Version 77 sehen Sie das Kontrollkästchen „Diesen Linktyp immer in der zugehörigen Anwendung
öffnen“ nicht mehr, wenn der Editor über einen Link gestartet wird. Lösung für Windows: Erstellen Sie eine Datei
fix.reg
:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\URLWhitelist]
"123"="editor://*"
Importieren Sie sie durch Doppelklick und starten Sie Chrome neu.
Bei Fragen oder Anmerkungen wenden Sie sich bitte an das Forum.