¿Cómo abrir un archivo en el editor desde Tracy? (Integración IDE)

Cuando se muestra la página de errores, puede hacer clic en los nombres de los archivos y se abrirán en su 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 ello, es necesario configurar el navegador y el sistema.

Tracy abre ficheros a través de URLs de la forma editor://open/?file=%file&line=%line, es decir, con el protocolo editor://. Registraremos nuestro propio manejador para éste. Este puede ser cualquier archivo ejecutable que procese los parámetros e inicie nuestro editor favorito.

Podemos cambiar la URL en la variable Tracy\Debugger::$editor, o desactivar el click-through configurando Tracy\Debugger::$editor = null.

Windows

  1. Descargue los archivos apropiados del repositorio Tracy al disco.
  2. Edite open-editor.js y descomente o edite la ruta a su editor en 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%"',

	...
}

...

Ten cuidado y mantén las barras dobles en las rutas.

3. Registre el manejador para el protocolo editor:// en el sistema.

Esto se hace ejecutando install.cmd. **Necesitas ejecutarlo como Administrador. El script open-editor.js ahora servirá al protocolo editor://.

Linux

  1. Descargue los archivos apropiados del repositorio Tracy al directorio ~/bin.
  2. 2. Edite open-editor.sh y descomente o edite la ruta a su editor en 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"'

...

Hazlo ejecutable:

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

Si el editor que está utilizando no está instalado desde el paquete, el binario probablemente no tendrá una ruta en $PATH. Esto puede corregirse fácilmente. En el directorio ~/bin, crea un enlace simbólico en el binario del editor.

3. Registre el manejador para el protocolo editor:// en el sistema.

Esto se hace ejecutando install.sh. El script open-editor.js servirá ahora el protocolo editor://.

macOS

Editores como PhpStorm, TextMate, etc. te permiten abrir archivos a través de una URL especial, que sólo tienes que 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 está usando Tracy independiente, ponga la línea antes de Tracy\Debugger::enable(), si es Nette, antes de $configurator->enableTracy() en Bootstrap.php.

Lamentablemente, las acciones create file o fix it no funcionan en macOS.

Demostraciones

Corrección de errores:

Creación de un nuevo archivo:

Solución de problemas

  • En Firefox puede que necesite permitir la ejecución de protocolos personalizados en about:config estableciendo network.protocol-handler.expose.editor como false y network.protocol-handler.expose-all como true. Sin embargo, debería estar permitido por defecto.
  • Si no funciona todo inmediatamente, no te asustes. Intenta actualizar la página, reinicia el navegador o el ordenador. Eso debería ayudar.
  • Error de entrada: No hay motor de script para la extensión de archivo “.js” Tal vez has asociado el archivo “.js” a otra aplicación, no al motor JScript. Para solucionarlo, consulta aquí

A partir de la versión 77 de Google Chrome ya no aparecerá la casilla “Abrir siempre este tipo de enlaces en la aplicación asociada” cuando se abra el editor a través de un enlace. Solución para Windows: cree el archivo fix.reg:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\URLWhitelist]
"123"="editor://*"

Imórtelo haciendo doble clic y reinicie Chrome.

En caso de más problemas o preguntas, pregunte en el foro.