Jedit X で ZenCoding
愛用のテキストエディタ「Jedit X」でZen Codingができないものかと探ってみました。
Zen Codingとは?
Zen Codingについては、以下が参考になります。
ライブラリ探し
Jedit Xのマクロは AppleScriptでつくることができるのですが、さすがにAppleScript実装のZenCodingというものは無さそう。でも、AppleScriptは「do shell script」でコマンドを実行できるので、Perl やら Rubyで実装されたものがあれば、なんとかなるか、と思って見つけたのが以下です。
Zen Coding の Perl 実装書きました – OTCHY.NET
全ての機能に対応している訳ではないそうですが、よく使う記述には対応しているので、これで十分に満足できそうです。使わせていただきます。
実装してみる
上記サイトから SSSCoding.pm をダウンロードして、Perlのライブラリディレクトリ(Snow Leopardだと、/Library/perl/5.10.0/SSSCoding.pm 辺り)に保存します。で、以下のようにAppleScriptを書いてみました。
tell document 1 of application "Jedit X" set range to selected paragraph range set startP to loc of range set endP to startP + (len of range) - 1 repeat with i from startP to endP set str to paragraph i set res to do shell script "perl -MSSSCoding -e 'chomp($ARGV[0]);print SSSCoding::expand($ARGV[0]);'" & " " & quoted form of str set paragraph i to res & (ASCII character 10) end repeat end tell
#なんだか改行の処理がややこしくて美しくないですが・・・。
これをスクリプトファイル(.scpt)で保存して、Jedit Xの「スクリプトウィンドウ」に放りこめば完成です。好きなショートカットを割り振っておくと、より便利です。