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 .[#toc-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, добавьте сопоставление удаленных и локальных URL-адресов на `open-editor.js`:

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


Linux .[#toc-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
```

Если используемый вами редактор не установлен из пакета, в бинарном файле, скорее всего, не будет пути в `$PATH`. Это можно легко исправить. В каталоге `~/bin` создайте симлинк на двоичный файл редактора. .[note]


3. Зарегистрируйте в системе обработчик для протокола `editor://`.

Это делается путем запуска скрипта `install.sh`. Теперь скрипт `open-editor.js` будет обслуживать протокол `editor://`.


macOS .[#toc-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.


Демонстрации .[#toc-demos]
==========================

Исправление ошибки:

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


Устранение неполадок .[#toc-troubleshooting]
============================================

- В Firefox вам может потребоваться [разрешить |http://kb.mozillazine.org/Register_protocol#Firefox_3.5_and_above] выполнение пользовательского протокола в about:config, установив `network.protocol-handler.expose.editor` на `false` и `network.protocol-handler.expose-all` на `true`. Однако это должно быть разрешено по умолчанию.
- Если не все работает сразу, не паникуйте. Попробуйте обновить страницу, перезагрузить браузер или компьютер. Это должно помочь.
- Смотрите [здесь |https://www.winhelponline.com/blog/error-there-is-no-script-engine-for-file-extension-when-running-js-files/], чтобы исправить:
 Ошибка ввода: Нет механизма сценариев для расширения файла ".js" Возможно, вы связали файл ".js" с другим приложением, а не с механизмом JScript.

Начиная с версии 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, добавьте сопоставление удаленных и локальных URL-адресов на open-editor.js:

	mappings: {
		// remote path: local path
		'/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.js будет обслуживать протокол 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 вам может потребоваться разрешить выполнение пользовательского протокола в about:config, установив network.protocol-handler.expose.editor на false и network.protocol-handler.expose-all на true. Однако это должно быть разрешено по умолчанию.
  • Если не все работает сразу, не паникуйте. Попробуйте обновить страницу, перезагрузить браузер или компьютер. Это должно помочь.
  • Смотрите здесь, чтобы исправить:

    Ошибка ввода: Нет механизма сценариев для расширения файла „.js“ Возможно, вы связали файл „.js“ с другим приложением, а не с механизмом JScript.

Начиная с версии Google Chrome 77, вы больше не увидите флажок „Всегда открывать эти типы ссылок в связанном приложении“, когда редактор открывается по ссылке. Обходной путь для Windows: создайте файл fix.reg:

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

Импортируйте его двойным щелчком и перезапустите Chrome.

Если у вас возникнут дополнительные проблемы или вопросы, задавайте их на форуме.