Tracy'den Bir Dosya Düzenleyicide Nasıl Açılır? (IDE Tümleştirmesi)
Hata sayfası görüntülendiğinde dosya adlarına tıklayabilirsiniz; dosyalar düzenleyicinizde, imleç ilgili
satırda olacak şekilde açılır. Dosyalar oluşturulabilir (create file eylemi) ya da içlerindeki hatalar
düzeltilebilir (fix it eylemi). Bunun için tarayıcıyı ve sistemi yapılandırmanız gerekir.
Tracy, dosyaları editor://open/?file=%file&line=%line biçimindeki URL'lerle, yani editor://
protokolüyle açar. Bu protokol için özel bir işleyici kaydetmemiz gerekir. Bu işleyici, parametreleri işleyen ve
yeğlediğiniz düzenleyiciyi başlatan herhangi bir çalıştırılabilir dosya olabilir.
URL'yi Tracy\Debugger::$editor değişkeninde değiştirebilir ya da Tracy\Debugger::$editor = null
yaparak tıklamayı kapatabilirsiniz.
Windows
- Uygun dosyaları Tracy deposundan diske indirin.
open-editor.jsdosyasını düzenleyin vesettingsnesnesinde, düzenleyicinize giden yolu yorumdan çıkarıp gerekiyorsa 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%"',
...
}
...
Dikkatli olun ve yollardaki çift ters eğik çizgileri koruyun.
3. editor:// protokolünün işleyicisini sistemde kaydedin.
Bu, install.cmd çalıştırılarak yapılır. Onu Yönetici olarak çalıştırmanız gerekir.
open-editor.js betiği artık editor:// protokolüne hizmet edecek.
Başka sunucularda, örneğin üretim sunucusunda ya da Docker'da üretilen bağlantıları açmak için
open-editor.js dosyasına uzaktan yerele bir URL eşlemesi ekleyin:
mappings: {
// uzak yol: yerel yol
'/var/www/nette.app': 'W:\\Nette.web\\_web',
'/var/www/second.app': 'W:\\Second.web'
}
Windows'ta open-editor.js, JScript motoru yalnızca ECMA-262 3. Sürümü (1999) anlayan Windows
Script Host altında çalışır. Betiği düzenlerken eski usul JavaScript'e bağlı kalın: let ya da
const yerine var kullanın, ok fonksiyonlarından kaçının ve bir nesnenin son öğesinden sonra
virgül bırakmayın. Modern söz dizimi betik hatasına yol açar ve editor:// protokolü düzenleyiciyi sessizce
açamaz.
Uzaktan yerele eşlemeyi, düzenleyici işleyicisinden ve platformdan bağımsız çalışan Debugger::$editorMapping ile PHP tarafında da tanımlayabilirsiniz.
Linux
- Uygun dosyaları Tracy deposundan
~/bindizinine indirin. open-editor.shdosyasını düzenleyin veeditordeğişkenindeki düzenleyici yolunu yorumdan çıkarıp gerekiyorsa 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"'
...
Onu çalıştırılabilir yapın:
chmod +x ~/bin/open-editor.sh
Kullandığınız düzenleyici bir paketten kurulmadıysa, ikili dosyası sistemin $PATH
değişkeninde olmayabilir. Bu kolayca düzeltilir. ~/bin dizininde düzenleyicinin ikili dosyasına bir sembolik
bağ oluşturun.
3. editor:// protokolünün işleyicisini sistemde kaydedin.
Bu, install.sh dosyası çalıştırılarak yapılır. open-editor.sh betiği artık
editor:// protokolünü üstlenecek.
macOS
PhpStorm, TextMate gibi düzenleyiciler, dosyaları yalnızca ayarlamanız gereken özel bir URL ile açmanıza olanak tanır:
// 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';
Tracy'yi bağımsız kullanıyorsanız satırı Tracy\Debugger::enable() çağrısından önce koyun. Nette
kullanıyorsanız Bootstrap.php içinde $configurator->enableTracy() çağrısından
önce koyun.
Ne yazık ki create file ve fix it eylemleri macOS'ta çalışmıyor.
Tanıtımlar
Bir hatanın düzeltilmesi:
Yeni bir dosya oluşturulması:
Sorun Giderme
- Firefox'ta,
about:configiçindenetwork.protocol-handler.expose.editordeğerinifalse,network.protocol-handler.expose-alldeğerini isetrueyaparak özel protokol çalıştırmaya izin vermeniz gerekebilir. Yine de varsayılan olarak izinli olmalıdır. - Hemen çalışmazsa paniğe kapılmayın. Bağlantıya tıklamadan önce sayfayı birkaç kez yenilemeyi ya da tarayıcınızı veya bilgisayarınızı yeniden başlatmayı deneyin. Bu işe yaramalıdır.
- Şu türden olası hataları düzeltmek için bir bağlantı:
Input Error: There is no script engine for file extension ".js"ya daMaybe you associated ".js" file to another app, not JScript engine.
Google Chrome'un 77. sürümünden itibaren, düzenleyici bir bağlantıyla başlatıldığında „Bu tür bağlantıları
her zaman ilişkili uygulamada aç“ onay kutusunu artık görmeyeceksiniz. Windows için geçici çözüm: fix.reg
dosyası oluşturun:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome]
"AutoLaunchProtocolsFromOrigins"="[{\"allowed_origins\": [\"*\"],\"protocol\": \"editor\"}]"
Çift tıklayarak içe aktarın ve Chrome'u yeniden başlatın. AutoLaunchProtocolsFromOrigins ilkesi,
tarayıcının onay iletişim kutusunu tümüyle bastırır. install.cmd betiği bunu, Vivaldi için yorum satırı
hâlinde bir satırla birlikte (aynı ilke HKLM\SOFTWARE\Policies\Vivaldi altında) otomatik olarak ayarlar.
Başka sorularınız ya da önerileriniz için lütfen foruma uğrayın.