TextMate で快適ひきこもり生活 – WebKit プレビュー

こんにちは。sou_sk です。
以前流した ActionScript へのコンパイルからプレビューまで TextMate 上で完結させるスクリーンキャストとエントリについて、
「quick_compile.rb で何やってるの?」的なツッコミがあったので公開します。
簡単ながら解説も付けました。

まずコンパイルを行うコマンドから。
前回のエントリでうっかり ActionScript と書いてしまいましたが、ActionScript ではなく haXe から swf(AS3) へのコンパイルを行っています。
ASで使いたい場合は適宜書き換えてください。

tm-previewcmd.png

Key Equivalent を Command + S に設定してセーブのショートカットにフックしています。

次に quick_compile.rb の中身です。

    #!/usr/bin/env ruby
    FILENAME = ENV['TM_FILENAME']
    FILEPATH = ENV['TM_FILEPATH']
    # SUPPORT  = ENV['TM_BUNDLE_SUPPORT']
    BINARY   = ENV['TM_HAXE_PATH']
    PROJECT = ENV['TM_PROJECT_DIRECTORY']
    HXML = ENV['TM_HAXE_HXMLNAME'] || 'build.hxml'
 
    hxml = File.join(PROJECT, HXML);
 
    output = case
      when !BINARY:
        "TM_HAXE_PATH is needed but empty"
      when !HXML:
        "TM_HAXE_COMPILING_HXML needed but empty"
      else
        Dir.chdir(PROJECT) {
          `"#{BINARY}" "#{HXML}"`
        }
    end
 
    puts (output.empty?) ? "compiled" : output

qucik_compile.rb でやっている事は環境変数から

        /usr/bin/haxe build.hxml

に相当するコマンドを組み立てての実行です。
quick っていうか普通です、。
TextMate 全体の環境変数は
TextMate > Preference > Advanced > Shell Variables で設定します。
プロジェクト単位の環境変数設定は Project Drawer の右下にある (i) ボタンから行えます。
変数 output には組み立てたコマンドの実行結果、即ちコンパイルエラーがあればそのメッセージが入ります。最終行では output にメッセージがあればそれを、空ならコンパイル成功と見なして compiled のメッセージをツールチップに渡しています。

次にプレビューコマンドです。

tm-compilecmd.png

バンドルコマンドの設定で Output を「Show as HTML」にする事で、コマンド実行後に WebKit を TextMate 内で立ち上げ出力結果を HTML として処理&表示できます。
WebKit のセキュリティポリシにより直接 swf ファイルを出力結果の HTML に読み込めないため、リダイレクトを行っています。
バンドルに関する解説は以上です。

最後に、WebKit をナイトリビルドに入れ替えるために(Drosera を使うために) KitMate を使っています。

最近はますます TextMate が手放せません。
作業も DRY に、繰り返し記述するコードはオレオレバンドルを作って登録するようにしています。
Ruby で柔軟に変えられる作業環境の上でコードを書く悦楽、、TextMate はオススメです。
最近は Snipplr のような web アプリケーションとの連携や RubyCocoa による Cocoa との連携が面白そうかな〜などと思っています。

コメント / トラックバックはありません

コメントする