¿Cómo abrir un archivo en el editor desde Tracy? (Integración con IDE)
Al mostrar la página de error, se puede hacer clic en los nombres de los archivos y estos se abrirán en tu
editor con el cursor en la línea correspondiente. También se pueden crear archivos (acción create file
)
o corregir errores en ellos (acción fix it
). Para que esto suceda, es necesario configurar el navegador y el
sistema.
Tracy abre archivos a través de una URL con la forma editor://open/?file=%file&line=%line
, es decir, con el
protocolo editor://
. Registraremos un manejador personalizado para este protocolo. Este puede ser cualquier archivo
ejecutable que procese los parámetros y ejecute nuestro editor favorito.
Puedes cambiar la URL en la variable Tracy\Debugger::$editor
, o desactivar el clic a través de la configuración
Tracy\Debugger::$editor = null
.
Windows
- Descarga los archivos correspondientes del repositorio de Tracy al disco.
- Edita el archivo
open-editor.js
y en el arraysettings
descomenta y, si es necesario, modifica la ruta a tu 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%"',
...
}
...
Atención, mantén las dobles barras en las rutas.
3. Registra el handler del protocolo editor://
en el sistema.
Esto se hace ejecutando el archivo install.cmd
. Es necesario ejecutarlo como Administrador. El script
open-editor.js
manejará ahora el protocolo editor://
.
Para poder abrir enlaces generados en otros servidores, como en un servidor en vivo o en Docker, añade también el mapeo de
la URL remota a la local en open-editor.js
:
mappings: {
// ruta remota: ruta local
'/var/www/nette.app': 'W:\\Nette.web\\_web',
}
Linux
- Descarga los archivos correspondientes del repositorio de Tracy al directorio
~/bin
. - Edita el archivo
open-editor.sh
y descomenta y, si es necesario, modifica la ruta a tu editor en la variableeditor
.
#!/bin/bash
# Emacs
#editor='emacs +$LINE "$FILE"'
# gVim
#editor='gvim +$LINE "$FILE"'
# gEdit
#editor='gedit +$LINE "$FILE"'
# Pluma
#editor='pluma +$LINE "$FILE"'
...
Haz el archivo ejecutable:
chmod +x ~/bin/open-editor.sh
Si el editor utilizado no está instalado desde un paquete, probablemente el binario no tendrá la ruta en $PATH.
Esto se puede corregir fácilmente. En el directorio ~/bin
, crea un enlace simbólico al binario del editor.
3. Registra el handler del protocolo editor://
en el sistema.
Esto se hace ejecutando el archivo install.sh
. El script open-editor.sh
manejará ahora el protocolo
editor://
.
macOS
Editores como PhpStorm, TextMate, etc., permiten abrir archivos a través de una URL especial, que solo necesitas configurar:
// 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 usas Tracy de forma independiente, inserta la línea antes de Tracy\Debugger::enable()
, si usas Nette, entonces
antes de $configurator->enableTracy()
en Bootstrap.php
.
Las acciones create file
o fix it
desafortunadamente no funcionan en macOS.
Demostraciones
Corrección de errores:
Creación de archivo:
Solución de problemas
- En Firefox, puede ser necesario permitir el protocolo configurando
network.protocol-handler.expose.editor
afalse
ynetwork.protocol-handler.expose-all
atrue
en about:config. - Si no funciona de inmediato, no entres en pánico e intenta refrescar la página unas cuantas veces antes de hacer clic en el enlace. ¡Empezará a funcionar!
- Aquí hay un enlace
para corregir un posible error:
Input Error: There is no script engine for file extension ".js"
,Maybe you associated ".js" file to another app, not JScript engine.
respectivamenteno hay disponible ningún motor de scripting para la extensión .js
.
En Google Chrome desde la versión 77 ya no verás la casilla de verificación „Abrir siempre este tipo de enlaces en la
aplicación asociada“ cuando el editor se ejecuta a través de un enlace. Solución para Windows: crea el archivo
fix.reg
:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\URLWhitelist]
"123"="editor://*"
Impórtalo haciendo doble clic y reinicia el navegador Chrome.
Para cualquier pregunta o comentario, por favor contacta con el foro.