Tracy'den Editörde Dosya Nasıl Açılır? (IDE Entegrasyonu)

Hata sayfası görüntülendiğinde, dosya adlarına tıklayabilirsiniz ve imleç ilgili satırda olacak şekilde editörünüzde açılırlar. Dosyalar da oluşturulabilir (eylem create file) veya içlerindeki hatalar düzeltilebilir (eylem fix it). Bunu yapmak 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, yani editor:// protokolü ile açar. Bunun için kendi işleyicimizi kaydedeceğiz. Bu, parametreleri işleyen ve favori editörümüzü başlatan herhangi bir çalıştırılabilir dosya olabilir.

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

Pencereler

  1. Uygun dosyaları Tracy deposundan diske indirin.
  2. open-editor.js adresini düzenleyin ve settings adresindeki düzenleyicinizin yolunu kaldırın veya düzenleyin:
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%"',

	...
}

...

Dikkatli olun ve çift eğik çizgileri yollarda tutun.

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

Bu işlem install.cmd çalıştırılarak yapılır. Yönetici olarak çalıştırmanız gerekir. open-editor.js betiği artık editor:// protokolüne hizmet edecektir.

Üretim sunucusu veya Docker gibi diğer sunucularda oluşturulan bağlantıları açmak için open-editor.js adresine bir uzak-yerel URL eşlemesi ekleyin:

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

Linux

  1. Uygun dosyaları Tracy deposundan ~/bin dizinine indirin.
  2. open-editor.sh adresini düzenleyin ve editor değişkenindeki düzenleyicinizin yolunu kaldırın veya düzenleyin:
#!/bin/bash

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

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

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

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

...

Çalıştırılabilir hale getirin:

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

Kullandığınız editör paketten yüklenmemişse, ikili dosyada muhtemelen $PATH adresinde bir yol bulunmayacaktır. Bu kolayca düzeltilebilir. ~/bin dizininde, düzenleyici ikili dosyasına bir sembolik bağlantı oluşturun.

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

Bu işlem install.sh çalıştırılarak yapılır. open-editor.js betiği artık editor:// protokolüne hizmet edecektir.

macOS

PhpStorm, TextMate vb. editörler, dosyaları sadece ayarlamanız gereken özel bir URL aracılığıyla açmanıza izin verir:

// 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() adresinden önce, Nette kullanıyorsanız Bootstrap.php adresindeki $configurator->enableTracy() adresinden önce koyun.

Ne yazık ki create file veya fix it eylemleri macOS üzerinde çalışmaz.

Demolar

Hata düzeltiliyor:

Yeni bir dosya oluşturuluyor:

Sorun Giderme

  • Firefox'ta about:config'te network.protocol-handler.expose.editor 'u false ve network.protocol-handler.expose-all 'yi true olarak ayarlayarak özel protokol yürütülmesine izin vermeniz gerekebilir. Ancak varsayılan olarak buna izin verilmelidir.
  • Her şey hemen çalışmıyorsa panik yapmayın. Sayfayı yenilemeyi, tarayıcıyı veya bilgisayarı yeniden başlatmayı deneyin. Bu yardımcı olacaktır.
  • Düzeltmek için buraya bakın:

    Giriş Hatası: Dosya uzantısı “.js” için komut dosyası motoru yok Belki de “.js” dosyasını JScript motoruyla değil başka bir uygulamayla ilişkilendirdiniz.

Google Chrome sürüm 77'den itibaren, düzenleyici bir bağlantı aracılığıyla açıldığında artık “Bu tür bağlantıları her zaman ilişkili uygulamada aç” onay kutusunu görmeyeceksiniz. Windows için geçici çözüm: fix.reg dosyasını 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'u yeniden başlatın.

Daha fazla sorun veya soru olması durumunda, forumda sorun.