Nette Documentation Preview

syntax
Como abrir um arquivo no editor a partir do Tracy? (Integração com IDE)
***********************************************************************

.[perex]
Ao visualizar a página de erro, você pode clicar nos nomes dos arquivos, e eles serão abertos em seu editor com o cursor na linha apropriada. Também é possível criar arquivos (ação `create file`) ou corrigir erros neles (ação `fix it`). Para que isso aconteça, é necessário configurar o navegador e o sistema.

O Tracy abre arquivos através de uma URL no formato `editor://open/?file=%file&line=%line`, ou seja, com o protocolo `editor://`. Registraremos nosso próprio manipulador para isso. Este pode ser qualquer arquivo executável que "processe" os parâmetros e execute nosso editor favorito.

Você pode alterar a URL na variável `Tracy\Debugger::$editor`, ou desativar o clique definindo `Tracy\Debugger::$editor = null`.


Windows
=======

1. Baixe os arquivos relevantes do "repositório do Tracy":https://github.com/nette/tracy/tree/master/tools/open-in-editor/windows para o seu disco.

2. Edite o arquivo `open-editor.js` e, no array `settings`, descomente e, se necessário, ajuste o caminho para o seu editor:

```js
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%"',

	...
}

...
```

Atenção, mantenha as barras duplas invertidas nos caminhos.

3. Registre o manipulador do protocolo `editor://` no sistema.

Você faz isso executando o arquivo `install.cmd`. **É necessário executá-lo como Administrador.** O script `open-editor.js` agora manipulará o protocolo `editor://`.

Para poder abrir links gerados em outros servidores, como um servidor ativo ou no Docker, adicione o mapeamento de URL remota para local em `open-editor.js`:

```js
	mappings: {
		// caminho remoto: caminho local
		'/var/www/nette.app': 'W:\\Nette.web\\_web',
	}
```


Linux
=====

1. Baixe os arquivos relevantes do "repositório do Tracy":https://github.com/nette/tracy/tree/master/tools/open-in-editor/linux para o diretório `~/bin`.

2. Edite o arquivo `open-editor.sh` e descomente e, se necessário, ajuste o caminho para o seu editor na variável `editor`.

```shell
#!/bin/bash

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

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

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

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

...
```

Torne o arquivo executável:

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

.[note]
Se o editor que você usa não foi instalado a partir de um pacote, o binário provavelmente não estará no $PATH. Isso pode ser corrigido facilmente. No diretório `~/bin`, crie um link simbólico para o binário do editor.


3. Registre o manipulador do protocolo `editor://` no sistema.

Você faz isso executando o arquivo `install.sh`. O script `open-editor.sh` agora manipulará o protocolo `editor://`.


macOS
=====

Editores como PhpStorm, TextMate, etc., permitem abrir arquivos através de uma URL especial, que só precisa ser definida:

```php
// 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';
```

Se você estiver usando o Tracy autônomo, insira a linha antes de `Tracy\Debugger::enable()`; se estiver usando o Nette, insira-a antes de `$configurator->enableTracy()` em `Bootstrap.php`.

Infelizmente, as ações `create file` ou `fix it` não funcionam no macOS.


Exemplos
========

Correção de erro:

<iframe width="560" height="315" src="https://www.youtube.com/embed/3ITT4mC0Eq4?rel=0&amp;showinfo=0" frameborder="0" allow="encrypted-media" allowfullscreen></iframe>

Criação de arquivo:

<iframe width="560" height="315" src="https://www.youtube.com/embed/AJ_FUivAGZQ?rel=0&amp;showinfo=0" frameborder="0" allow="encrypted-media" allowfullscreen></iframe>


Solução de problemas
====================

- No Firefox, pode ser necessário habilitar o protocolo [definindo |http://kb.mozillazine.org/Register_protocol#Firefox_3.5_and_above] `network.protocol-handler.expose.editor` como `false` e `network.protocol-handler.expose-all` como `true` em about:config.
- Se não funcionar imediatamente, não entre em pânico e tente atualizar a página algumas vezes antes de clicar no link. Vai funcionar!
- Aqui está um [link|https://www.winhelponline.com/blog/error-there-is-no-script-engine-for-file-extension-when-running-js-files/] para corrigir um possível erro: `Input Error: There is no script engine for file extension ".js"`, `Maybe you associated ".js" file to another app, not JScript engine.` ou `nenhum mecanismo de script está disponível para a extensão .js`.

No Google Chrome a partir da versão 77, você não verá mais a caixa de seleção „Sempre abrir este tipo de link no aplicativo associado“ quando o editor for iniciado através de um link. Solução para Windows: crie um arquivo `fix.reg`:

```
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\URLWhitelist]
"123"="editor://*"
```
Importe-o clicando duas vezes e reinicie o Chrome.


Para quaisquer perguntas ou comentários, entre em contato com o [fórum |https://forum.nette.org].

Como abrir um arquivo no editor a partir do Tracy? (Integração com IDE)

Ao visualizar a página de erro, você pode clicar nos nomes dos arquivos, e eles serão abertos em seu editor com o cursor na linha apropriada. Também é possível criar arquivos (ação create file) ou corrigir erros neles (ação fix it). Para que isso aconteça, é necessário configurar o navegador e o sistema.

O Tracy abre arquivos através de uma URL no formato editor://open/?file=%file&line=%line, ou seja, com o protocolo editor://. Registraremos nosso próprio manipulador para isso. Este pode ser qualquer arquivo executável que „processe“ os parâmetros e execute nosso editor favorito.

Você pode alterar a URL na variável Tracy\Debugger::$editor, ou desativar o clique definindo Tracy\Debugger::$editor = null.

Windows

  1. Baixe os arquivos relevantes do repositório do Tracy para o seu disco.
  2. Edite o arquivo open-editor.js e, no array settings, descomente e, se necessário, ajuste o caminho para o seu 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%"',

	...
}

...

Atenção, mantenha as barras duplas invertidas nos caminhos.

3. Registre o manipulador do protocolo editor:// no sistema.

Você faz isso executando o arquivo install.cmd. É necessário executá-lo como Administrador. O script open-editor.js agora manipulará o protocolo editor://.

Para poder abrir links gerados em outros servidores, como um servidor ativo ou no Docker, adicione o mapeamento de URL remota para local em open-editor.js:

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

Linux

  1. Baixe os arquivos relevantes do repositório do Tracy para o diretório ~/bin.
  2. Edite o arquivo open-editor.sh e descomente e, se necessário, ajuste o caminho para o seu editor na variável editor.
#!/bin/bash

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

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

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

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

...

Torne o arquivo executável:

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

Se o editor que você usa não foi instalado a partir de um pacote, o binário provavelmente não estará no $PATH. Isso pode ser corrigido facilmente. No diretório ~/bin, crie um link simbólico para o binário do editor.

3. Registre o manipulador do protocolo editor:// no sistema.

Você faz isso executando o arquivo install.sh. O script open-editor.sh agora manipulará o protocolo editor://.

macOS

Editores como PhpStorm, TextMate, etc., permitem abrir arquivos através de uma URL especial, que só precisa ser definida:

// 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';

Se você estiver usando o Tracy autônomo, insira a linha antes de Tracy\Debugger::enable(); se estiver usando o Nette, insira-a antes de $configurator->enableTracy() em Bootstrap.php.

Infelizmente, as ações create file ou fix it não funcionam no macOS.

Exemplos

Correção de erro:

Criação de arquivo:

Solução de problemas

  • No Firefox, pode ser necessário habilitar o protocolo definindo network.protocol-handler.expose.editor como false e network.protocol-handler.expose-all como true em about:config.
  • Se não funcionar imediatamente, não entre em pânico e tente atualizar a página algumas vezes antes de clicar no link. Vai funcionar!
  • Aqui está um link para corrigir um possível erro: Input Error: There is no script engine for file extension ".js", Maybe you associated ".js" file to another app, not JScript engine. ou nenhum mecanismo de script está disponível para a extensão .js.

No Google Chrome a partir da versão 77, você não verá mais a caixa de seleção „Sempre abrir este tipo de link no aplicativo associado“ quando o editor for iniciado através de um link. Solução para Windows: crie um arquivo fix.reg:

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

Importe-o clicando duas vezes e reinicie o Chrome.

Para quaisquer perguntas ou comentários, entre em contato com o fórum.