jEditにTwigの編集モードを追加する
PHPの開発とか、エディタはjEditを使ってる。
jEdit - Programmer's Text Editor -
さんざん言ってるけど、jEditは本当にいいエディタなんですって*1。
加えて、PHPのテンプレートエンジンはTwigを使ってる。
pythonのdjangoに近いらしい。
ところで、PHPのテンプレートエンジンと言うとsmartyが定番だったり、そもそも、PHPでテンプレートエンジン(笑)みたいな論調もあったりして論争になると泥沼なんだけど、
個人的にはplainなPHPで組むのは選択肢として無く*2、定番のsmartyは…3から結構良さそうな感じはするけれど、何というか泥臭い*3。
そんな訳で、Twigを使うようになった。
構文もシンプルだし動作も軽いし、テンプレート内部から割り当てた変数のプロパティとかメソッドへのアクセス方法も柔軟で使いやすい。
Twig自体のバージョンも1.0を超えて成熟してきた感じがする。
とは言え、日本語ドキュメントは少ないし、メジャーバージョンアップで結構動作が変わっているところがあるので、この辺を参考にするとハマるので注意。
具体的にはdebugが無くなってたり…えーと、他にもいろいろあった気がする。気が向いたらまとめようかな。
今のところは公式の英語ドキュメントかソース読むのが確実。
Twig定義をjEditに追加する
そんな訳で、jEditでTwigのテンプレートを編集したりして快適なwebアプリ開発ライフを送ってるんだけれど、当然のようにjEditにはTwigの定義が無い。
一応、djangoの定義はあるからそれを使うようにすればある程度ハイライトされるようになるけれど、{# #}形式のコメントに対応していなかったりするので、djangoの定義を元にTwigの定義を作るTipsを記す。
参考元:How do I add an edit mode to jEdit?
1:"C:\Program Files\jEdit\modes\django.xml"を"%USERPROFILE%\.jedit\modes\twig.xml"にコピーする
当初、"C:\Program Files\jEdit\modes"に設置って書いてたけど、インストーラーでバージョンアップすると消えたので、やっぱり"%USERPROFILE%\.jedit\modes"に設置するのが適当みたい。
2:twig.xmlを編集
以下の置換をする
コメントの開始タグ(2箇所)
{% comment %} → {#
コメントの終了タグ(2箇所)
{% endcomment %} → #}
定義内の要素名、大文字のみ(約21箇所)
DJANGO → TWIG
これで{# #}形式のコメントがハイライトされるようになる。
その他、Twig特有のキーワードとかあるかも知れないけど面倒なので調べてない。