Wie öffnet man eine Datei im Editor von Tracy aus? (IDE-Integration)
Wenn die Fehlerseite angezeigt wird, können Sie auf Dateinamen klicken und sie werden in Ihrem Editor geöffnet,
wobei der Cursor auf der entsprechenden Zeile steht. Es können auch Dateien erstellt werden (Aktion create file
)
oder Fehler in ihnen behoben werden (Aktion fix it
). Hierfür müssen Sie den Browser und das System
konfigurieren.
Tracy öffnet Dateien über URLs der Form editor://open/?file=%file&line=%line
, d.h. mit dem Protokoll
editor://
. Hierfür werden wir einen eigenen Handler registrieren. Dies kann eine beliebige ausführbare Datei sein,
die die Parameter verarbeitet und unseren Lieblingseditor startet.
Sie können die URL in der Variablen Tracy\Debugger::$editor
ändern oder den Click-through durch Setzen von
Tracy\Debugger::$editor = null
deaktivieren.
Windows
- Laden Sie die entsprechenden Dateien aus dem Tracy-Repository auf die Festplatte herunter.
- Bearbeiten Sie
open-editor.js
und entfernen Sie die Kommentare oder bearbeiten Sie den Pfad zu Ihrem Editor insettings
:
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%"',
...
}
...
Seien Sie vorsichtig und behalten Sie die doppelten Schrägstriche in den Pfaden bei.
3. Registrieren Sie den Handler für das editor://
Protokoll im System.
Dazu führen Sie install.cmd
aus. Sie müssen es als Administrator ausführen. Das Skript
open-editor.js
bedient nun das Protokoll editor://
.
Um Links zu öffnen, die auf anderen Servern generiert wurden, z. B. auf einem Produktionsserver oder Docker, fügen Sie eine
Remote-zu-Local-URL-Zuordnung zu open-editor.js
hinzu:
mappings: {
// remote path: local path
'/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
open-editor.sh
und entfernen Sie die Kommentare oder ändern Sie den Pfad zu Ihrem Editor in der Variableneditor
:
#!/bin/bash
# Emacs
#editor='emacs +$LINE "$FILE"'
# gVim
#editor='gvim +$LINE "$FILE"'
# gEdit
#editor='gedit +$LINE "$FILE"'
# Pluma
#editor='pluma +$LINE "$FILE"'
...
Machen Sie ihn ausführbar:
chmod +x ~/bin/open-editor.sh
Wenn der Editor, den Sie verwenden, nicht aus dem Paket installiert ist, hat die Binärdatei wahrscheinlich keinen
Pfad in $PATH
. Dies kann leicht korrigiert werden. Erstellen Sie im Verzeichnis ~/bin
einen Symlink auf
die Editor-Binärdatei.
3. Registrieren Sie den Handler für das editor://
Protokoll im System.
Dazu führen Sie install.sh
aus. Das Skript open-editor.js
wird nun das Protokoll
editor://
bedienen.
macOS
Editoren wie PhpStorm, TextMate usw. ermöglichen es Ihnen, Dateien über eine spezielle URL zu öffnen, die Sie nur angeben müssen:
// 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 den Standalone-Editor Tracy verwenden, fügen Sie die Zeile vor Tracy\Debugger::enable()
ein, wenn Sie
Nette verwenden, vor $configurator->enableTracy()
in Bootstrap.php
.
Leider funktionieren die Aktionen create file
oder fix it
nicht unter macOS.
Demos
Fehler behoben:
Erstellen einer neuen Datei:
Fehlersuche
- In Firefox müssen Sie möglicherweise die Ausführung von benutzerdefinierten Protokollen in about:config zulassen, indem Sie
network.protocol-handler.expose.editor
auffalse
undnetwork.protocol-handler.expose-all
auftrue
setzen. Es sollte jedoch standardmäßig zugelassen sein. - Wenn nicht sofort alles funktioniert, geraten Sie nicht in Panik. Versuchen Sie, die Seite zu aktualisieren, den Browser oder den Computer neu zu starten. Das sollte helfen.
- Siehe hier zur
Behebung:
Eingabefehler: Es gibt keine Skript-Engine für die Dateierweiterung “.js” Vielleicht haben Sie die “.js”-Datei mit einer anderen Anwendung verknüpft, nicht mit der JScript-Engine.
Ab Google Chrome Version 77 wird das Kontrollkästchen “Diese Art von Links immer in der zugehörigen App öffnen” nicht
mehr angezeigt, wenn der Editor über einen Link geöffnet wird. Abhilfe für Windows: Erstellen Sie die Datei
fix.reg
:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\URLWhitelist]
"123"="editor://*"
Importieren Sie sie per Doppelklick und starten Sie Chrome neu.
Falls Sie weitere Probleme oder Fragen haben, fragen Sie im Forum.