Comment ouvrir un fichier dans l'éditeur à partir de Tracy ? (Intégration IDE)

Lorsque la page d'erreur est affichée, vous pouvez cliquer sur les noms de fichiers et ils 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 ce faire, vous devez configurer le navigateur et le système.

Tracy ouvre les fichiers via des URL de la forme editor://open/?file=%file&line=%line, c'est-à-dire avec le protocole editor://. Nous allons enregistrer notre propre gestionnaire pour celui-ci. Il peut s'agir de n'importe quel fichier exécutable qui traite les paramètres et lance 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

  1. Téléchargez les fichiers appropriés du dépôt Tracy sur le disque.
  2. Editez open-editor.js et décommentez ou modifiez le chemin d'accès à votre éditeur dans settings:
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%"',

	...
}

...

Faites attention et gardez les doubles slashs dans les chemins.

3. Enregistrez le gestionnaire pour le protocole editor:// dans le système.

Ceci est fait en exécutant install.cmd. **Vous devez l'exécuter en tant qu'administrateur. Le script open-editor.js servira désormais le protocole editor://.

Afin d'ouvrir les liens générés sur d'autres serveurs, tels qu'un serveur de production ou Docker, ajoutez un mappage d'URL distant à local à open-editor.js:

	mappings: {
		// remote path: local path
		'/var/www/nette.app': 'W:\\Nette.web\\_web',
	}

Linux

  1. Téléchargez les fichiers appropriés à partir du référentiel Tracy dans le répertoire ~/bin.
  2. Editez open-editor.sh et décommentez ou modifiez le chemin d'accès à votre éditeur dans la variable editor:
#!/bin/bash

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

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

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

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

...

Rendez-le exécutable :

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

Si l'éditeur que vous utilisez n'est pas installé à partir du paquet, le binaire n'aura probablement pas de chemin dans $PATH. Ceci peut être facilement corrigé. Dans le répertoire ~/bin, créez un lien symbolique sur le binaire de l'éditeur.

3. Enregistrez le gestionnaire pour le protocole editor:// dans le système.

Pour ce faire, exécutez install.sh. Le script open-editor.js servira désormais le protocole editor://.

macOS

Les éditeurs comme PhpStorm, TextMate, etc. vous permettent d'ouvrir des fichiers via une URL spéciale, qu'il vous 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 en mode autonome, mettez la ligne avant Tracy\Debugger::enable(), si vous utilisez Nette, avant le $configurator->enableTracy() dans Bootstrap.php.

Malheureusement, les actions create file ou fix it ne fonctionnent pas sur macOS.

Démonstrations

Correction d'un bogue :

Création d'un nouveau fichier :

Dépannage

  • Dans Firefox, il se peut que vous deviez autoriser l' exécution de protocoles personnalisés dans about:config en définissant network.protocol-handler.expose.editor comme false et network.protocol-handler.expose-all comme true. Cela devrait toutefois être autorisé par défaut.
  • Si tout ne fonctionne pas immédiatement, ne paniquez pas. Essayez d'actualiser la page, de redémarrer le navigateur ou l'ordinateur. Cela devrait vous aider.
  • Voir ici pour corriger :

    Erreur d'entrée : There is no script engine for file extension “.js” Peut-être avez-vous associé le fichier “.js” à une autre application, et non au moteur JScript.

À partir de la version 77 de Google Chrome, vous ne verrez plus la case à cocher “Toujours ouvrir ces types de liens dans l'application associée” lorsque l'éditeur est ouvert par un lien. Solution pour Windows : créer 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.

En cas d'autres problèmes ou questions, posez-les sur le forum.