Jak otworzyć plik w edytorze Tracy (integracja z IDE)?
Gdy pojawi się strona z błędami, możesz kliknąć na nazwy plików i otworzą się one w Twoim edytorze
z kursorem na odpowiedniej linii. Możesz także tworzyć pliki (akcja create file
) lub poprawiać w nich błędy
(akcja fix it
). Aby to zrobić, musisz skonfigurować przeglądarkę i system.
Tracy otwiera pliki za pośrednictwem adresów URL o postaci editor://open/?file=%file&line=%line
, czyli za
pomocą protokołu editor://
. Rejestrujemy niestandardowy handler dla tego jednego. Może to być dowolny plik
wykonywalny, który “przeżuwa” parametry i uruchamia nasz ulubiony edytor.
Możesz zmienić adres URL w zmiennej Tracy\Debugger::$editor
, lub wyłączyć kliknięcie ustawiając
Tracy\Debugger::$editor = null
.
Windows
- Pobranie na dysk odpowiednich plików z repozytorium Tracy.
2. Edytuj plik open-editor.js
i odkomentuj pole settings
i w razie potrzeby edytuj ś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%"',
...
}
...
Uważaj, aby zostawić podwójne ukośniki w ścieżkach.
3. Zarejestruj w systemie obsługę dziennika editor://
.
Robisz to uruchamiając plik install.cmd
. Musisz uruchomić go jako Administrator. Skrypt
open-editor.js
będzie teraz obsługiwał protokół editor://
.
Aby otworzyć linki wygenerowane na innych serwerach, takich jak serwer produkcyjny lub Docker, należy dodać mapowanie
zdalnego adresu URL na lokalny do open-editor.js
:
mappings: {
// remote path: local path
'/var/www/nette.app': 'W:\\Nette.web\\_web',
}
Linux
- pobrać odpowiednie pliki z repozytorium
Tracy do katalogu
~/bin
. - Edytuj plik
open-editor.sh
i odkomentuj i ewentualnie edytuj ś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"'
...
Spraw, by plik był wykonywalny:
chmod +x ~/bin/open-editor.sh
Jeśli edytor, którego używasz, nie jest zainstalowany z pakietu, binarny prawdopodobnie nie będzie miał
ścieżki w $PATH. Można to łatwo naprawić. Tworzy symlink do binarki edytora w katalogu ~/bin
.
3. Zarejestruj w systemie obsługę dziennika editor://
.
Dokonuje się tego poprzez uruchomienie pliku install.sh
Skrypt open-editor.sh
będzie teraz
obsługiwał protokół editor://
.
macOS
Edytory takie jak PhpStorm, TextMate itp. pozwalają na otwieranie plików poprzez specjalny adres 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 samodzielnych Tracy, umieść linię przed Tracy\Debugger::enable()
, jeśli Nette, przed
$configurator->enableTracy()
w Bootstrap.php
.
Niestety, akcje create file
lub fix it
nie działają na macOS.
Przykłady
Naprawa błędów:
Tworzenie plików:
Rozwiązywanie problemów
- W Firefoksie może być konieczne włączenie protokołu poprzez ustawienie
network.protocol-handler.expose.editor
nafalse
oraznetwork.protocol-handler.expose-all
natrue
w about:config. - Jeśli to nie zadziała od razu, nie panikuj i spróbuj odświeżyć stronę kilka razy przed kliknięciem na link. To zadziała!
- Tutaj jest link, aby
naprawić wszelkie błędy:
Input Error: There is no script engine for file extension “.js” Być może skojarzyłeś plik “.js” z inną aplikacją, a nie z silnikiem JScript.
W Google Chrome od wersji 77 nie będzie już widoczne pole wyboru “Zawsze otwieraj ten typ linku w powiązanej
aplikacji”, gdy edytor jest uruchamiany przez link. Rozwiązanie dla systemu Windows: utwórz plik fix.reg
:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\URLWhitelist]
"123"="editor://*"
Kliknij dwukrotnie, aby go zaimportować i ponownie uruchom Chrome.
Wszelkie pytania i uwagi proszę kierować na forum.