Nette Documentation Preview

syntax
Як відкрити файл у редакторі з Tracy? (Інтеграція з IDE)
********************************************************

.[perex]
При відображенні сторінки помилки можна натиснути на імена файлів, і вони відкриються у вашому редакторі з курсором на відповідному рядку. Також можна створювати файли (дія `create file`) або виправляти в них помилки (дія `fix it`). Щоб це сталося, необхідно налаштувати браузер та систему.

Tracy відкриває файли через URL у форматі `editor://open/?file=%file&line=%line`, тобто з протоколом `editor://`. Для нього ми зареєструємо власний обробник. Ним може бути будь-який виконуваний файл, який "перетравить" параметри та запустить наш улюблений редактор.

URL можна змінити у змінній `Tracy\Debugger::$editor`, або вимкнути перехід за посиланням, встановивши `Tracy\Debugger::$editor = null`.


Windows
=======

1. Завантажте відповідні файли з "репозиторію Tracy":https://github.com/nette/tracy/tree/master/tools/open-in-editor/windows на диск.

2. Відредагуйте файл `open-editor.js` і в масиві `settings` розкоментуйте та, за потреби, змініть шлях до вашого редактора:

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

	...
}

...
```

Увага, залишайте подвійні зворотні скісні риски у шляхах.

3. Зареєструйте обробник протоколу `editor://` в системі.

Це робиться запуском файлу `install.cmd`. **Його потрібно запустити від імені адміністратора.** Скрипт `open-editor.js` тепер оброблятиме протокол `editor://`.

Щоб можна було відкривати посилання, згенеровані на інших серверах, наприклад, на робочому сервері або в Docker, додайте до `open-editor.js` ще й зіставлення віддаленої URL з локальною:

```js
	mappings: {
		// віддалений шлях: локальний шлях
		'/var/www/nette.app': 'W:\\Nette.web\\_web',
	}
```


Linux
=====

1. Завантажте відповідні файли з "репозиторію Tracy":https://github.com/nette/tracy/tree/master/tools/open-in-editor/linux до каталогу `~/bin`.

2. Відредагуйте файл `open-editor.sh` і розкоментуйте та, за потреби, змініть шлях до вашого редактора у змінній `editor`.

```shell
#!/bin/bash

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

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

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

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

...
```

Зробіть файл виконуваним:

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

.[note]
Якщо використовуваний редактор не встановлено з пакета, ймовірно, його бінарний файл не матиме шляху в $PATH. Це легко виправити. У каталозі `~/bin` створіть символічне посилання на бінарний файл редактора.


3. Зареєструйте обробник протоколу `editor://` в системі.

Це робиться запуском файлу `install.sh`. Скрипт `open-editor.sh` тепер оброблятиме протокол `editor://`.


macOS
=====

Редактори, такі як PhpStorm, TextMate тощо, дозволяють відкривати файли через спеціальну URL-адресу, яку достатньо встановити:

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

Якщо ви використовуєте окрему Tracy, вставте рядок перед `Tracy\Debugger::enable()`, якщо Nette, то перед `$configurator->enableTracy()` у `Bootstrap.php`.

Дії `create file` або `fix it`, на жаль, не працюють на macOS.


Приклади
========

Виправлення помилки:

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

Створення файлу:

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


Вирішення проблем
=================

- У Firefox може знадобитися дозволити протокол, [встановивши |http://kb.mozillazine.org/Register_protocol#Firefox_3.5_and_above] `network.protocol-handler.expose.editor` на `false` та `network.protocol-handler.expose-all` на `true` в about:config.
- Якщо це не спрацює одразу, не панікуйте і спробуйте кілька разів оновити сторінку перед тим, як натиснути на це посилання. Воно запрацює!
- Ось [посилання |https://www.winhelponline.com/blog/error-there-is-no-script-engine-for-file-extension-when-running-js-files/] для виправлення можливої помилки: `Input Error: There is no script engine for file extension ".js"`, `Maybe you associated ".js" file to another app, not JScript engine.` відповідно `для розширення .js немає доступного скриптового рушія`.

У Google Chrome, починаючи з версії 77, ви більше не побачите прапорець «Завжди відкривати посилання цього типу у пов'язаному застосунку», коли редактор запускається через посилання. Рішення для Windows: створіть файл `fix.reg`:

```
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\URLWhitelist]
"123"="editor://*"
```
Імпортуйте його подвійним клацанням миші та перезапустіть браузер Chrome.


З будь-якими питаннями чи зауваженнями, будь ласка, звертайтеся на [форум |https://forum.nette.org].

Як відкрити файл у редакторі з Tracy? (Інтеграція з IDE)

При відображенні сторінки помилки можна натиснути на імена файлів, і вони відкриються у вашому редакторі з курсором на відповідному рядку. Також можна створювати файли (дія create file) або виправляти в них помилки (дія fix it). Щоб це сталося, необхідно налаштувати браузер та систему.

Tracy відкриває файли через URL у форматі editor://open/?file=%file&line=%line, тобто з протоколом editor://. Для нього ми зареєструємо власний обробник. Ним може бути будь-який виконуваний файл, який „перетравить“ параметри та запустить наш улюблений редактор.

URL можна змінити у змінній Tracy\Debugger::$editor, або вимкнути перехід за посиланням, встановивши Tracy\Debugger::$editor = null.

Windows

  1. Завантажте відповідні файли з репозиторію Tracy на диск.
  2. Відредагуйте файл open-editor.js і в масиві 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%"',

	...
}

...

Увага, залишайте подвійні зворотні скісні риски у шляхах.

3. Зареєструйте обробник протоколу editor:// в системі.

Це робиться запуском файлу install.cmd. Його потрібно запустити від імені адміністратора. Скрипт open-editor.js тепер оброблятиме протокол editor://.

Щоб можна було відкривати посилання, згенеровані на інших серверах, наприклад, на робочому сервері або в Docker, додайте до open-editor.js ще й зіставлення віддаленої URL з локальною:

	mappings: {
		// віддалений шлях: локальний шлях
		'/var/www/nette.app': 'W:\\Nette.web\\_web',
	}

Linux

  1. Завантажте відповідні файли з репозиторію Tracy до каталогу ~/bin.
  2. Відредагуйте файл open-editor.sh і розкоментуйте та, за потреби, змініть шлях до вашого редактора у змінній editor.
#!/bin/bash

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

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

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

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

...

Зробіть файл виконуваним:

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

Якщо використовуваний редактор не встановлено з пакета, ймовірно, його бінарний файл не матиме шляху в $PATH. Це легко виправити. У каталозі ~/bin створіть символічне посилання на бінарний файл редактора.

3. Зареєструйте обробник протоколу editor:// в системі.

Це робиться запуском файлу install.sh. Скрипт open-editor.sh тепер оброблятиме протокол editor://.

macOS

Редактори, такі як PhpStorm, TextMate тощо, дозволяють відкривати файли через спеціальну URL-адресу, яку достатньо встановити:

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

Якщо ви використовуєте окрему Tracy, вставте рядок перед Tracy\Debugger::enable(), якщо Nette, то перед $configurator->enableTracy() у Bootstrap.php.

Дії create file або fix it, на жаль, не працюють на macOS.

Приклади

Виправлення помилки:

Створення файлу:

Вирішення проблем

  • У Firefox може знадобитися дозволити протокол, встановивши network.protocol-handler.expose.editor на false та network.protocol-handler.expose-all на true в about:config.
  • Якщо це не спрацює одразу, не панікуйте і спробуйте кілька разів оновити сторінку перед тим, як натиснути на це посилання. Воно запрацює!
  • Ось посилання для виправлення можливої помилки: Input Error: There is no script engine for file extension ".js", Maybe you associated ".js" file to another app, not JScript engine. відповідно для розширення .js немає доступного скриптового рушія.

У Google Chrome, починаючи з версії 77, ви більше не побачите прапорець «Завжди відкривати посилання цього типу у пов'язаному застосунку», коли редактор запускається через посилання. Рішення для Windows: створіть файл fix.reg:

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

Імпортуйте його подвійним клацанням миші та перезапустіть браузер Chrome.

З будь-якими питаннями чи зауваженнями, будь ласка, звертайтеся на форум.