Tracy'den dosyayı düzenleyicide nasıl açarım? (IDE ile Entegrasyon)

Hata sayfası görüntülendiğinde, dosya adlarına tıklayabilirsiniz ve bunlar düzenleyicinizde ilgili satırda imleçle açılır. Ayrıca dosyalar oluşturabilir (eylem create file) veya içlerindeki hataları düzeltebilirsiniz (eylem fix it). Bunun gerçekleşmesi için tarayıcıyı ve sistemi yapılandırmanız gerekir.

Tracy, dosyaları editor://open/?file=%file&line=%line biçimindeki URL'ler aracılığıyla açar, yani editor:// protokolü ile. Bunun için kendi işleyicimizi kaydedeceğiz. Bu, parametreleri “çiğneyen” ve favori düzenleyicimizi başlatan herhangi bir yürütülebilir dosya olabilir.

URL'yi Tracy\Debugger::$editor değişkeninde değiştirebilir veya Tracy\Debugger::$editor = null ayarlayarak tıklamayı devre dışı bırakabilirsiniz.

Windows

  1. İlgili dosyaları Tracy deposundan diske indirin.
  2. open-editor.js dosyasını düzenleyin ve settings dizisinde düzenleyicinizin yolunu yorumdan çıkarın ve gerekirse değiştirin:
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%"',

	...
}

...

Dikkat, yollarda çift ters eğik çizgi bırakın.

3. Sistemde editor:// protokolü için işleyiciyi kaydedin.

Bunu install.cmd dosyasını çalıştırarak yaparsınız. Yönetici olarak çalıştırılması gerekir. open-editor.js betiği artık editor:// protokolünü işleyecektir.

Canlı sunucu veya Docker gibi başka sunucularda oluşturulan bağlantıları açabilmek için, open-editor.js dosyasına uzak URL'nin yerel URL'ye eşlemesini de ekleyin:

	mappings: {
		// uzak yol: yerel yol
		'/var/www/nette.app': 'W:\\Nette.web\\_web',
	}

Linux

  1. İlgili dosyaları Tracy deposundan ~/bin dizinine indirin.
  2. open-editor.sh dosyasını düzenleyin ve editor değişkeninde düzenleyicinizin yolunu yorumdan çıkarın ve gerekirse değiştirin.
#!/bin/bash

# Emacs
#editor='emacs +$LINE "$FILE"'

# gVim
#editor='gvim +$LINE "$FILE"'

# gEdit
#editor='gedit +$LINE "$FILE"'

# Pluma
#editor='pluma +$LINE "$FILE"'

...

Dosyayı yürütülebilir yapın:

chmod +x ~/bin/open-editor.sh

Kullanılan düzenleyici bir paketten yüklenmemişse, ikili dosyanın muhtemelen $PATH içinde bir yolu olmayacaktır. Bu kolayca düzeltilebilir. ~/bin dizininde, düzenleyicinin ikili dosyasına bir sembolik bağlantı oluşturun.

3. Sistemde editor:// protokolü için işleyiciyi kaydedin.

Bunu install.sh dosyasını çalıştırarak yaparsınız. open-editor.sh betiği artık editor:// protokolünü işleyecektir.

macOS

PhpStorm, TextMate vb. düzenleyiciler, dosyaları özel URL'ler aracılığıyla açmaya izin verir, bu URL'yi ayarlamak yeterlidir:

// 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';

Bağımsız Tracy kullanıyorsanız, satırı Tracy\Debugger::enable()'dan önce, Nette kullanıyorsanız Bootstrap.php'deki $configurator->enableTracy()'den önce ekleyin.

create file veya fix it eylemleri maalesef macOS'ta çalışmaz.

Örnekler

Hata düzeltme:

Dosya oluşturma:

Sorun Giderme

  • Firefox'ta, about:config içinde network.protocol-handler.expose.editor öğesini false ve network.protocol-handler.expose-all öğesini true olarak ayarlayarak protokolü etkinleştirmeniz gerekebilir.
  • Hemen çalışmazsa panik yapmayın ve bağlantıya tıklamadan önce sayfayı birkaç kez yenilemeyi deneyin. Çalışacaktır!
  • İşte olası bir hatayı düzeltmek için bir bağlantı: Input Error: There is no script engine for file extension ".js", Maybe you associated ".js" file to another app, not Jscript engine. veya ".js" uzantısı için komut dosyası motoru yok.

Google Chrome sürüm 77'den itibaren, düzenleyici bir bağlantı aracılığıyla başlatıldığında “Bu tür bağlantıları her zaman ilişkili uygulamada aç” onay kutusunu görmezsiniz. Windows için çözüm: fix.reg adlı bir dosya oluşturun:

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

Çift tıklayarak içe aktarın ve Chrome tarayıcısını yeniden başlatın.

Herhangi bir sorunuz veya yorumunuz varsa, lütfen foruma başvurun.