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
- Pobierz odpowiednie pliki z repozytorium Tracy na dysk.
- Edytuj plik
open-editor.jsi w tablicysettingsodkomentuj 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
- Pobierz odpowiednie pliki z repozytorium
Tracy do katalogu
~/bin. - Edytuj plik
open-editor.shi odkomentuj oraz ewentualnie zmień ścieżkę do swojego edytora w zmiennejeditor.
#!/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.editornafalseinetwork.protocol-handler.expose-allnatruew 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.lubdla 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.