Nette Documentation Preview

syntax
Как да отворите файл в редактора от Tracy? (Интеграция с IDE)
*************************************************************

.[perex]
При показване на страницата с грешка можете да кликнете върху имената на файловете и те ще се отворят във вашия редактор с курсора на съответния ред. Също така можете да създавате файлове (действие `create file`) или да коригирате грешки в тях (действие `fix it`). За да се случи това, е необходимо да конфигурирате браузъра и системата.

Tracy отваря файлове чрез URL във формата `editor://open/?file=%file&line=%line`, т.е. с протокол `editor://`. За него ще регистрираме собствен handler. Това може да бъде произволен изпълним файл, който ще "сдъвче" параметрите и ще стартира любимия ни редактор.

Можете да промените 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. Регистрирайте handler за протокола `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` създайте символна връзка (symlink) към изпълнимия файл на редактора.


3. Регистрирайте handler за протокола `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://. За него ще регистрираме собствен handler. Това може да бъде произволен изпълним файл, който ще „сдъвче“ параметрите и ще стартира любимия ни редактор.

Можете да промените 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. Регистрирайте handler за протокола 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 създайте символна връзка (symlink) към изпълнимия файл на редактора.

3. Регистрирайте handler за протокола 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.

С евентуални въпроси или коментари, моля, обърнете се към форума.