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.js
i w tablicysettings
odkomentuj 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.sh
i 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.editor
nafalse
inetwork.protocol-handler.expose-all
natrue
w 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.