Nette Documentation Preview

syntax
Jak otworzyć plik w edytorze z Tracy? (Integracja z IDE)
********************************************************

.[perex]
Podczas wyświetlania strony błędu można kliknąć na nazwy plików, a otworzą się one w Twoim edytorze z kursorem na odpowiedniej linii. Można również tworzyć pliki (akcja `create file`) lub naprawiać w nich błędy (akcja `fix it`). Aby to się stało, należy skonfigurować przeglądarkę i system.

Tracy otwiera pliki za pomocą URL w formacie `editor://open/?file=%file&line=%line`, tj. z protokołem `editor://`. Dla niego zarejestrujemy własną obsługę. Może to być dowolny plik wykonywalny, który "przetrawi" parametry i uruchomi nasz ulubiony edytor.

Możesz zmienić URL w zmiennej `Tracy\Debugger::$editor` lub wyłączyć klikanie, ustawiając `Tracy\Debugger::$editor = null`.


Windows
=======

1. Pobierz odpowiednie pliki "z repozytorium Tracy":https://github.com/nette/tracy/tree/master/tools/open-in-editor/windows na dysk.

2. Edytuj plik `open-editor.js` i w tablicy `settings` odkomentuj i ewentualnie zmień ścieżkę do swojego edytora:

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

	...
}

...
```

Uwaga, pozostaw podwójne ukośniki w ścieżkach.

3. Zarejestruj obsługę protokołu `editor://` w systemie.

Zrobisz to, uruchamiając plik `install.cmd`. **Należy go uruchomić jako Administrator.** Skrypt `open-editor.js` będzie teraz obsługiwał protokół `editor://`.

Aby można było otwierać linki wygenerowane na innych serwerach, takich jak serwer produkcyjny lub w Dockerze, dodaj do `open-editor.js` mapowanie zdalnego URL na lokalny:

```js
	mappings: {
		// zdalna ścieżka: lokalna ścieżka
		'/var/www/nette.app': 'W:\\Nette.web\\_web',
	}
```


Linux
=====

1. Pobierz odpowiednie pliki "z repozytorium Tracy":https://github.com/nette/tracy/tree/master/tools/open-in-editor/linux do katalogu `~/bin`.

2. Edytuj plik `open-editor.sh` i odkomentuj oraz ewentualnie zmień ścieżkę do swojego edytora w zmiennej `editor`.

```shell
#!/bin/bash

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

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

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

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

...
```

Nadaj plikowi uprawnienia do wykonywania:

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

.[note]
Jeśli używany edytor nie jest zainstalowany z pakietu, prawdopodobnie jego plik binarny nie będzie miał ścieżki w $PATH. Można to łatwo naprawić. W katalogu `~/bin` utwórz link symboliczny do pliku binarnego edytora.


3. Zarejestruj obsługę protokołu `editor://` w systemie.

Zrobisz to, uruchamiając plik `install.sh`. Skrypt `open-editor.sh` będzie teraz obsługiwał protokół `editor://`.


macOS
=====

Edytory takie jak PhpStorm, TextMate itp. umożliwiają otwieranie plików za pomocą specjalnego URL, który wystarczy ustawić:

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

Jeśli używasz samodzielnej Tracy, wstaw linię przed `Tracy\Debugger::enable()`, jeśli Nette, to przed `$configurator->enableTracy()` w `Bootstrap.php`.

Akcje `create file` lub `fix it` niestety nie działają na macOS.


Przykłady
=========

Naprawa błędu:

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

Tworzenie pliku:

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


Rozwiązywanie problemów
=======================

- W Firefoksie może być konieczne zezwolenie na protokół przez [ustawienie |http://kb.mozillazine.org/Register_protocol#Firefox_3.5_and_above] `network.protocol-handler.expose.editor` na `false` i `network.protocol-handler.expose-all` na `true` w about:config.
- Jeśli od razu nie zadziała, nie panikuj i spróbuj kilka razy odświeżyć stronę przed kliknięciem linku. Ruszy!
- Tutaj jest [link|https://www.winhelponline.com/blog/error-there-is-no-script-engine-for-file-extension-when-running-js-files/] do naprawy ewentualnego błędu: `Input Error: There is no script engine for file extension ".js"`, `Maybe you associated ".js" file to another app, not JScript engine.` lub `dla rozszerzenia .js nie jest dostępny żaden silnik skryptowy`.

W Google Chrome od wersji 77 nie zobaczysz już pola wyboru „Zawsze otwieraj tego typu linki w skojarzonej aplikacji”, gdy edytor jest uruchamiany za pomocą linku. Rozwiązanie dla Windows: utwórz plik `fix.reg`:

```
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\URLWhitelist]
"123"="editor://*"
```
Zaimportuj go podwójnym kliknięciem i ponownie uruchom przeglądarkę Chrome.


W przypadku pytań lub uwag prosimy o kontakt na [forum |https://forum.nette.org].

Jak otworzyć plik w edytorze z Tracy? (Integracja z IDE)

Podczas wyświetlania strony błędu można kliknąć na nazwy plików, a otworzą się one w Twoim edytorze z kursorem na odpowiedniej linii. Można również tworzyć pliki (akcja create file) lub naprawiać w nich błędy (akcja fix it). Aby to się stało, należy skonfigurować przeglądarkę i system.

Tracy otwiera pliki za pomocą URL w formacie editor://open/?file=%file&line=%line, tj. z protokołem editor://. Dla niego zarejestrujemy własną obsługę. Może to być dowolny plik wykonywalny, który „przetrawi“ parametry i uruchomi nasz ulubiony edytor.

Możesz zmienić URL w zmiennej Tracy\Debugger::$editor lub wyłączyć klikanie, ustawiając Tracy\Debugger::$editor = null.

Windows

  1. Pobierz odpowiednie pliki z repozytorium Tracy na dysk.
  2. Edytuj plik open-editor.js i w tablicy settings odkomentuj i ewentualnie zmień ścieżkę do swojego edytora:
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%"',

	...
}

...

Uwaga, pozostaw podwójne ukośniki w ścieżkach.

3. Zarejestruj obsługę protokołu editor:// w systemie.

Zrobisz to, uruchamiając plik install.cmd. Należy go uruchomić jako Administrator. Skrypt open-editor.js będzie teraz obsługiwał protokół editor://.

Aby można było otwierać linki wygenerowane na innych serwerach, takich jak serwer produkcyjny lub w Dockerze, dodaj do open-editor.js mapowanie zdalnego URL na lokalny:

	mappings: {
		// zdalna ścieżka: lokalna ścieżka
		'/var/www/nette.app': 'W:\\Nette.web\\_web',
	}

Linux

  1. Pobierz odpowiednie pliki z repozytorium Tracy do katalogu ~/bin.
  2. Edytuj plik open-editor.sh i odkomentuj oraz ewentualnie zmień ścieżkę do swojego edytora w zmiennej editor.
#!/bin/bash

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

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

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

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

...

Nadaj plikowi uprawnienia do wykonywania:

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

Jeśli używany edytor nie jest zainstalowany z pakietu, prawdopodobnie jego plik binarny nie będzie miał ścieżki w $PATH. Można to łatwo naprawić. W katalogu ~/bin utwórz link symboliczny do pliku binarnego edytora.

3. Zarejestruj obsługę protokołu editor:// w systemie.

Zrobisz to, uruchamiając plik install.sh. Skrypt open-editor.sh będzie teraz obsługiwał protokół editor://.

macOS

Edytory takie jak PhpStorm, TextMate itp. umożliwiają otwieranie plików za pomocą specjalnego URL, który wystarczy ustawić:

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

Jeśli używasz samodzielnej Tracy, wstaw linię przed Tracy\Debugger::enable(), jeśli Nette, to przed $configurator->enableTracy() w Bootstrap.php.

Akcje create file lub fix it niestety nie działają na macOS.

Przykłady

Naprawa błędu:

Tworzenie pliku:

Rozwiązywanie problemów

  • W Firefoksie może być konieczne zezwolenie na protokół przez ustawienie network.protocol-handler.expose.editor na false i network.protocol-handler.expose-all na true w about:config.
  • Jeśli od razu nie zadziała, nie panikuj i spróbuj kilka razy odświeżyć stronę przed kliknięciem linku. Ruszy!
  • Tutaj jest link do naprawy ewentualnego błędu: Input Error: There is no script engine for file extension ".js", Maybe you associated ".js" file to another app, not JScript engine. lub dla rozszerzenia .js nie jest dostępny żaden silnik skryptowy.

W Google Chrome od wersji 77 nie zobaczysz już pola wyboru „Zawsze otwieraj tego typu linki w skojarzonej aplikacji”, gdy edytor jest uruchamiany za pomocą linku. Rozwiązanie dla Windows: utwórz plik fix.reg:

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

Zaimportuj go podwójnym kliknięciem i ponownie uruchom przeglądarkę Chrome.

W przypadku pytań lub uwag prosimy o kontakt na forum.