Comment ouvrir un fichier dans l'éditeur depuis Tracy ? (Intégration avec l'IDE)
Lors de l'affichage de la page d'erreur, il est possible de cliquer sur les noms de fichiers et ceux-ci
s'ouvriront dans votre éditeur avec le curseur sur la ligne correspondante. Il est également possible de créer des fichiers
(action create file
) ou d'y corriger des erreurs (action fix it
). Pour que cela se produise, il est
nécessaire de configurer le navigateur et le système.
Tracy ouvre les fichiers via une URL de la forme editor://open/?file=%file&line=%line
, c'est-à-dire avec le
protocole editor://
. Nous enregistrerons notre propre gestionnaire pour celui-ci. Celui-ci peut être n'importe quel
fichier exécutable qui “mâchera” les paramètres et lancera notre éditeur préféré.
Vous pouvez modifier l'URL dans la variable Tracy\Debugger::$editor
, ou désactiver le clic en définissant
Tracy\Debugger::$editor = null
.
Windows
- Téléchargez les fichiers appropriés depuis le dépôt Tracy sur votre disque.
- Modifiez le fichier
open-editor.js
et dans le tableausettings
, décommentez et éventuellement modifiez le chemin vers votre éditeur :
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%"',
...
}
...
Attention, conservez les doubles barres obliques inversées dans les chemins.
3. Enregistrez le gestionnaire du protocole editor://
dans le système.
Vous le faites en exécutant le fichier install.cmd
. Il faut l'exécuter en tant qu'Administrateur. Le
script open-editor.js
gérera désormais le protocole editor://
.
Pour pouvoir ouvrir les liens générés sur d'autres serveurs, comme sur le serveur de production ou dans Docker, ajoutez
également le mappage de l'URL distante vers le local dans open-editor.js
:
mappings: {
// chemin distant : chemin local
'/var/www/nette.app': 'W:\\Nette.web\\_web',
}
Linux
- Téléchargez les fichiers appropriés depuis le dépôt Tracy dans le répertoire
~/bin
. - Modifiez le fichier
open-editor.sh
et décommentez et éventuellement modifiez le chemin vers votre éditeur dans la variableeditor
.
#!/bin/bash
# Emacs
#editor='emacs +$LINE "$FILE"'
# gVim
#editor='gvim +$LINE "$FILE"'
# gEdit
#editor='gedit +$LINE "$FILE"'
# Pluma
#editor='pluma +$LINE "$FILE"'
...
Rendez le fichier exécutable :
chmod +x ~/bin/open-editor.sh
Si l'éditeur utilisé n'est pas installé à partir d'un paquet, le binaire n'aura probablement pas de chemin
dans $PATH. Cela peut être facilement corrigé. Dans le répertoire ~/bin
, créez un lien symbolique vers le binaire
de l'éditeur.
3. Enregistrez le gestionnaire du protocole editor://
dans le système.
Vous le faites en exécutant le fichier install.sh
. Le script open-editor.sh
gérera désormais le
protocole editor://
.
macOS
Les éditeurs comme PhpStorm, TextMate, etc. permettent d'ouvrir des fichiers via une URL spéciale qu'il suffit de définir :
// 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';
Si vous utilisez Tracy de manière autonome, insérez la ligne avant Tracy\Debugger::enable()
, si vous utilisez
Nette, alors avant $configurator->enableTracy()
dans Bootstrap.php
.
Les actions create file
ou fix it
ne fonctionnent malheureusement pas sur macOS.
Démonstrations
Correction d'une erreur :
Création d'un fichier :
Résolution de problèmes
- Dans Firefox, il peut être nécessaire d'autoriser le protocole en définissant
network.protocol-handler.expose.editor
surfalse
etnetwork.protocol-handler.expose-all
surtrue
dans about:config. - Si cela ne fonctionne pas tout de suite, ne paniquez pas et essayez de rafraîchir la page plusieurs fois avant de cliquer sur ce lien. Ça va démarrer !
- Voici un lien pour
corriger une éventuelle erreur :
Input Error: There is no script engine for file extension ".js"
,Maybe you associated ".js" file to another app, not JScript engine.
respectivementaucun moteur de script n'est disponible pour l'extension .js
.
Dans Google Chrome depuis la version 77, vous ne verrez plus la case à cocher “Toujours ouvrir ce type de liens dans
l'application associée” lorsque l'éditeur est lancé via un lien. Solution pour Windows : créez un fichier
fix.reg
:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\URLWhitelist]
"123"="editor://*"
Importez-le en double-cliquant et redémarrez Chrome.
Pour toute question ou suggestion, veuillez vous adresser au forum.