Nette Documentation Preview

syntax
Jak otevřít soubor v editoru z Tracy? (Integrace s IDE)
*******************************************************

.[perex]
Při zobrazení chybové stránky lze kliknout na jména souborů a ty se otevřou ve vašem editoru s kurzorem na příslušné řádce. Také lze soubory vytvářet (akce `create file`) nebo v nich opravovat chyby (akce `fix it`). Aby se tak stalo, je potřeba prohlížeč a systém nakonfigurovat.

Tracy otevírá soubory přes URL ve tvaru `editor://open/?file=%file&line=%line`, tj. s protokolem `editor://`. Pro ten si zaregistrujeme vlastní obsluhu. Tou může být libovolný spustitelný soubor, který "přežvýká" parametry a spustí náš oblíbený editor.

URL můžete změnit v proměnné `Tracy\Debugger::$editor`, nebo proklikávání vypnout nastavením `Tracy\Debugger::$editor = null`.


Windows
=======

1. Stáhněte si příslušné soubory "z repozitáře Tracy":https://github.com/nette/tracy/tree/master/tools/open-in-editor/windows na disk.

2. Upravte soubor `open-editor.js` a v poli `settings` odkomentujte a případně upravte cestu k vašemu editoru:

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

	...
}

...
```

Pozor, ponechávejte dvojitá lomítka v cestách.

3. Zaregistrujte handler protokolu `editor://` v systému.

To uděláte spuštěním soubor `install.cmd`. **Je potřeba ho spustit jako Správce.** Skript `open-editor.js` bude nyní obsluhovat protokol `editor://`.

Aby bylo možné otevírat odkazy vygenerované na jiných serverech, jako třeba na ostrém serveru nebo v Dockeru, doplňte do `open-editor.js` ještě mapování vzdálené URL na lokální:

```js
	mappings: {
		// vzdálená cesta: lokální cesta
		'/var/www/nette.app': 'W:\\Nette.web\\_web',
	}
```


Linux
=====

1. Stáhněte si příslušné soubory "z repozitáře Tracy":https://github.com/nette/tracy/tree/master/tools/open-in-editor/linux do adresáře `~/bin`.

2. Upravte soubor `open-editor.sh` a odkomentujte a případně upravte cestu k vašemu editoru v proměnné `editor`.

```shell
#!/bin/bash

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

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

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

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

...
```

Učiňte soubor spustitelným:

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

Pokud používaný editor nemáte nainstalovaný z balíku, pravděpodobně nebude mít binárka cestu v $PATH. To lze jednoduše napravit. V adresáři `~/bin` si vytvořte symlink na binárku editoru. .[note]


3. Zaregistrujte handler protokolu `editor://` v systému.

To uděláte spuštěním souboru `install.sh`. Skript `open-editor.sh` bude nyní obsluhovat protokol `editor://`.


macOS
=====

Editory jako PhpStorm, TextMate apod. umožňují otevírání souborů přes speciální URL, kterou stačí nastavit:

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

Pokud používáte samostatnou Tracy, vložte řádek před `Tracy\Debugger::enable()`, pokud Nette, tak před `$configurator->enableTracy()` v `Bootstrap.php`.

Akce `create file` nebo `fix it` bohužel na macOS nefungují.


Ukázky
======

Oprava chyby:

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

Vytvoření souboru:

<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>


Řešení potíží
=============

- Ve Firefoxu může být potřeba protokol povolit [nastavením |http://kb.mozillazine.org/Register_protocol#Firefox_3.5_and_above] `network.protocol-handler.expose.editor` na `false` a `network.protocol-handler.expose-all` na `true` v about:config.
- Pokud vám to hned nepůjde, nepanikařte a zkuste párkrát refreshnout stránku před klikem na onen odkaz. Rozjede se to!
- Zde je [link|https://www.winhelponline.com/blog/error-there-is-no-script-engine-for-file-extension-when-running-js-files/]
 na opravu případné chyby: `Input Error: There is no script engine for file extension ".js"`, `Maybe you associated ".js" file to another app, not JScript engine.` respektive `pro příponu .js není k dispozici žádný skriptovací stroj`.

V Google Chrome od verze 77 již neuvidíte zatržítko „Tento typ odkazů vždy otevírat v přidružené aplikaci“, když je editor spuštěný prostřednictvím odkazu. Řešení pro Windows: vytvořte soubor `fix.reg`:

```
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\URLWhitelist]
"123"="editor://*"
```
Importujte jej dvojitým kliknutím a restartujte prohlížeč Chrome.


S případnými dotazy nebo připomínkami se prosím obraťte na [fórum |https://forum.nette.org].

Jak otevřít soubor v editoru z Tracy? (Integrace s IDE)

Při zobrazení chybové stránky lze kliknout na jména souborů a ty se otevřou ve vašem editoru s kurzorem na příslušné řádce. Také lze soubory vytvářet (akce create file) nebo v nich opravovat chyby (akce fix it). Aby se tak stalo, je potřeba prohlížeč a systém nakonfigurovat.

Tracy otevírá soubory přes URL ve tvaru editor://open/?file=%file&line=%line, tj. s protokolem editor://. Pro ten si zaregistrujeme vlastní obsluhu. Tou může být libovolný spustitelný soubor, který „přežvýká“ parametry a spustí náš oblíbený editor.

URL můžete změnit v proměnné Tracy\Debugger::$editor, nebo proklikávání vypnout nastavením Tracy\Debugger::$editor = null.

Windows

  1. Stáhněte si příslušné soubory z repozitáře Tracy na disk.
  2. Upravte soubor open-editor.js a v poli settings odkomentujte a případně upravte cestu k vašemu editoru:
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%"',

	...
}

...

Pozor, ponechávejte dvojitá lomítka v cestách.

3. Zaregistrujte handler protokolu editor:// v systému.

To uděláte spuštěním soubor install.cmd. Je potřeba ho spustit jako Správce. Skript open-editor.js bude nyní obsluhovat protokol editor://.

Aby bylo možné otevírat odkazy vygenerované na jiných serverech, jako třeba na ostrém serveru nebo v Dockeru, doplňte do open-editor.js ještě mapování vzdálené URL na lokální:

	mappings: {
		// vzdálená cesta: lokální cesta
		'/var/www/nette.app': 'W:\\Nette.web\\_web',
	}

Linux

  1. Stáhněte si příslušné soubory z repozitáře Tracy do adresáře ~/bin.
  2. Upravte soubor open-editor.sh a odkomentujte a případně upravte cestu k vašemu editoru v proměnné editor.
#!/bin/bash

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

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

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

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

...

Učiňte soubor spustitelným:

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

Pokud používaný editor nemáte nainstalovaný z balíku, pravděpodobně nebude mít binárka cestu v $PATH. To lze jednoduše napravit. V adresáři ~/bin si vytvořte symlink na binárku editoru.

3. Zaregistrujte handler protokolu editor:// v systému.

To uděláte spuštěním souboru install.sh. Skript open-editor.sh bude nyní obsluhovat protokol editor://.

macOS

Editory jako PhpStorm, TextMate apod. umožňují otevírání souborů přes speciální URL, kterou stačí nastavit:

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

Pokud používáte samostatnou Tracy, vložte řádek před Tracy\Debugger::enable(), pokud Nette, tak před $configurator->enableTracy() v Bootstrap.php.

Akce create file nebo fix it bohužel na macOS nefungují.

Ukázky

Oprava chyby:

Vytvoření souboru:

Řešení potíží

  • Ve Firefoxu může být potřeba protokol povolit nastavením network.protocol-handler.expose.editor na false a network.protocol-handler.expose-all na true v about:config.
  • Pokud vám to hned nepůjde, nepanikařte a zkuste párkrát refreshnout stránku před klikem na onen odkaz. Rozjede se to!
  • Zde je link

    na opravu případné chyby: Input Error: There is no script engine for file extension ".js", Maybe you associated ".js" file to another app, not JScript engine. respektive pro příponu .js není k dispozici žádný skriptovací stroj.

V Google Chrome od verze 77 již neuvidíte zatržítko „Tento typ odkazů vždy otevírat v přidružené aplikaci“, když je editor spuštěný prostřednictvím odkazu. Řešení pro Windows: vytvořte soubor fix.reg:

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

Importujte jej dvojitým kliknutím a restartujte prohlížeč Chrome.

S případnými dotazy nebo připomínkami se prosím obraťte na fórum.