Reply to comment
Coder modul coder_format eszközének integrálása
A Drupal forráskódokra vonatkozik egy, úgy nevezett Kódolási irányelv, melyet mindenképpen érdemes betartani, a verzió követő rendszerek és a csapat munka miatt is. Normálisabb szövegszerkesztők sok beállítási lehetőséget kínálnak a kód automatikus formázására, de lehet hogy nem eleget. Itt jön a képbe a coder modul.
A coder modul meglepően sok kódolási hibát képes felderíteni, és a formai hibákat ki is lehet javítani, a modul scripts könyvtárában található coder_format eszközzel. Alapvetően ez egy parancssoros script, de egy kis trükk segítségével, be lehet építeni a fejlettebb szövegszerkesztőkbe. Rendeltetésszerű használat esetén egy fájl formázását vagy rekurzívan egy teljes könyvtárszerkezetben található összes fájl formázását elvégzi egy pillanat alatt. De most nem erről lesz szó.
A célom az volt, hogy egy szövegszerkesztőben gombnyomásra formázza meg az aktuális fájlt.
jEdit
jEdit-ben az alábbi módon sikerült ezt elérnem. Azt tudni kell, hogy a jEdit pluginok nélkül olyan, mint a Dallas Jocky nélkül. Tehát kezdésnek telepíteni kell a TextFilter plugint. Több módja is van, de a legegyszerűbb a beépített Plugin manager-rel.
Ennek a pluginnak a legtöbbel ellentétben nincsenek különösebb beállítási lehetőségei. Új filter létrehozásához a képen látható módon kell cselekedni.
A megjelenő ablakban a beállításokat a kép alapján érdemes elvégezni. Bővebb információval a jEdit beépített súgója szolgál. Arra a pathto/drupal_coding_standards_text_filter.php nevezetű dologra még visszatérek.
Komodo Edit
A Komodo Edit-et is rá lehet venni az együttműködésre, bár egy kicsit korlátozottabbak a lehetőségek mint a jEdit-ben. Nem kell más hozzá csak egy új Command aminek átadásra kerül egy azonosító és az éppen aktuális fájl teljes útvonala.
Mint említettem a coder_format nem pont erre van kitalálva, ezért kell egy program ami a coder_format és a szövegszerkesztők közötti kommunikációt tolmácsolja. Ezt a feladatot végzi el a drupal_coding_standards_text_filter.php. Próbáltam ezt úgy megoldani, hogy több szövegszerkesztővel is lehessen használni ugyanezt a fájlt, de nem egyszerű a dolog mert mindegyik másképpen tudja átadni a paramétereket. jEdit esetében a legsimább az ügy, mert nem igényli a fájl elmentését, de a Komodo viszont igen. Az Eclipse-ben is kerestem lehetőséget, de az External Tools menüpontban sem sikerült megoldanom a dolgot. Inkább hiszem azt hogy nem találtam, mint azt, hogy ez a monstrum nem tud ilyet, vagy valamelyik hozzávaló plugin. (Amiket nem néztem át) De egyébként sem lét szükséglet egy ilyen külső eszköz az Eclipse esetén.
Ez lenne a tolmács. drupal_coding_standards_text_filter.php
#!/usr/bin/php <?php // /path_to/drupal_coding_standards_text_filter.php // A coder_format.php teljes elérési útvonala. $filepath = '/path_to/drupal/6/3th_part/modules/coder/scripts/coder_format/coder_format.php'; //A coder_format-ot egy kicsit át kell verni $_SERVER['PHP_SELF'] = $filepath; //Ez fogja beazonosítani hogy a kapott adatokat hogyan kell feldolgozni. $editor = 'pipe'; if ($_SERVER['argc'] > 1) { //A Komodo 2 argumentumot ad át $editor = $_SERVER['argv'][1]; //Az elsőt ki kell gyomlálni, mert az nem kell a coder_format-nak $_SERVER['argc']--; unset($_SERVER['argv'][1]); } switch ($editor) { case 'pipe' : //jEdit require_once $filepath; echo coder_format_string_all(file_get_contents('php://stdin')); break; case 'komodo' : $file = $_SERVER['argv'][2]; $_SERVER['argv'] = array(); $_SERVER['argc'] = 0; require_once $filepath; echo coder_format_string_all(file_get_contents($file)); break; } ?>
