Hogyan nyissunk meg egy fájlt a Tracy szerkesztőben? (IDE integráció)

Amikor a hibaoldal megjelenik, a fájlnevekre kattintva megnyílnak a szerkesztőprogramban, a kurzor a megfelelő soron lesz. A fájlokat létre is lehet hozni (művelet create file) vagy hibát javítani bennük (művelet fix it). Ehhez a böngészőt és a rendszert kell beállítani.

A Tracy a editor://open/?file=%file&line=%line formájú URL-eken keresztül, azaz a editor:// protokollal nyitja meg a fájlokat. Ehhez saját kezelőt fogunk regisztrálni. Ez lehet bármilyen futtatható fájl, amely feldolgozza a paramétereket és elindítja a kedvenc szerkesztőnket.

A Tracy\Debugger::$editor változóban megváltoztathatjuk az URL-t, vagy a Tracy\Debugger::$editor = null beállításával letilthatjuk az átkattintást.

Windows

  1. Töltse le a megfelelő fájlokat a Tracy tárolóból a lemezre.
  2. Szerkessze meg a open-editor.js címet, és vegye ki a settings címen a szerkesztőhöz vezető elérési utat, vagy szerkessze azt:
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%"',

	...
}

...

Legyen óvatos, és tartsa meg a kettős kötőjeleket az elérési utakban.

3. Regisztrálja a editor:// protokoll kezelőjét a rendszerben.

Ez a install.cmd futtatásával történik. Adminisztrátorként kell futtatnia. A open-editor.js szkript mostantól a editor:// protokollt fogja kiszolgálni.

Ahhoz, hogy más szervereken, például egy termelési szerveren vagy Dockerben létrehozott hivatkozásokat nyisson meg, adjon hozzá egy távoli helyi URL-t leképezőt a open-editor.js címhez:

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

Linux

  1. Töltse le a megfelelő fájlokat a Tracy repositoryból a ~/bin könyvtárba.
  2. Szerkessze a open-editor.sh címet, és vegye ki a editor változóból a szerkesztőhöz vezető elérési utat, vagy szerkessze azt:
#!/bin/bash

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

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

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

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

...

Tegye futtathatóvá:

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

Ha az Ön által használt szerkesztő nem a csomagból van telepítve, a bináris verzióban valószínűleg nem lesz elérési útvonal a $PATH címen. Ez könnyen korrigálható. A ~/bin könyvtárban hozzon létre egy szimlinket a szerkesztő binárisára.

3. Regisztrálja a editor:// protokoll kezelőjét a rendszerben.

Ez a install.sh futtatásával történik. A open-editor.js szkript mostantól a editor:// protokollt fogja kiszolgálni.

macOS

Az olyan szerkesztők, mint a PhpStorm, TextMate stb. lehetővé teszik a fájlok megnyitását egy speciális URL-en keresztül, amelyet csak be kell állítanod:

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

Ha önálló Tracy-t használ, akkor a sort a Tracy\Debugger::enable(), ha Nette-t, akkor a $configurator->enableTracy() elé kell tenni a Bootstrap.php.

Sajnos a create file vagy a fix it műveletek nem működnek macOS alatt.

Demók

Hiba javítása:

Új fájl létrehozása:

Hibaelhárítás

  • A Firefoxban előfordulhat, hogy engedélyeznie kell az egyéni protokollok végrehajtását az about:configban a network.protocol-handler.expose.editor beállításával a false és a network.protocol-handler.expose-all beállításával a true címre. Alapértelmezés szerint azonban engedélyezni kell.
  • Ha nem működik minden azonnal, ne ess pánikba. Próbálja meg frissíteni az oldalt, indítsa újra a böngészőt vagy a számítógépet. Ennek segítenie kell.
  • A javításhoz lásd itt:

    Input Error: js" fájlt egy másik alkalmazáshoz társította, nem pedig a JScript motorhoz.

A Google Chrome 77-es verziójától kezdve már nem jelenik meg a “Az ilyen típusú linkeket mindig a társított alkalmazásban nyissa meg” jelölőnégyzet, ha a szerkesztő egy hivatkozáson keresztül nyílik meg. Megoldás Windows esetén: hozzon létre fájlt fix.reg:

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

Importálja azt dupla kattintással, és indítsa újra a Chrome-ot.

További problémák vagy kérdések esetén kérdezzen a fórumon.