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;
  }
?>

Reply

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • You can enable syntax highlighting of source code with the following tags: [code], [blockcode]. PHP source code can also be enclosed in <?php ... ?> or <% ... %>.

More information about formatting options

Type the characters you see in this picture. (verify using audio)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.