2010年6月9日水曜日

ExtendScript TextMate Bundle を公開しました。

TextMateからショートカットでExtendScriptの.jsxを直接走らせるバンドルです。
元々は自分の上司の@tyama氏が作成し、それを自分が使いやすいように少しずつ直していたものです。このたび@tyama氏の許可が取れたので公開します。
興味のある方は、使ってみて感想下さい。

GitHubに置きました。
kanemu / extendscript.tmbundle - GitHub

使い方:
GitHubから落としてきたフォルダ名を[ExtendScript.tmbundle]として、 ~/Library/Application Support/TextMate/Bundles に入れて下さい。
$ cd ~/Library/Application\ Support/TextMate/Bundles/
$ git clone git://github.com/kanemu/extendscript-tmbundle.git ExtendScript.tmbundle

インストールしたバンドルは、TextMateの「Bundles」メニューの、「Bundle Editor -> Show Bundle Editor」から編集、カスタマイズすることができます。

.jsxファイルを判別するための、Scope Selector の「source.js」は JavaScript.tmbundle に依存しています。なので JavaScript.tmbundle が入ってなければ入れて下さい。
JavaScript.tmbundle の Language JavaScript の 3行目
fileTypes = ( 'js', 'htc' );

fileTypes = ( 'jsx', 'js', 'jsxinc', 'htc' );
に変更して下さい。

コードを拡張子.jsxで保存し、ショートカットキーを叩くと実行されます。
#target が設定してある場合、そのアプリが立ち上がって実行します。
なければデフォルトで、InDesign上で実行されます。

デフォルトのショートカットは、以下のように設定してあります。
  • Command + 4 -> CS4で実行
  • Command + 3 -> CS3で実行
  • Command + 2 -> CS2で実行
  • Command + option + 4 -> ExtendScript Toolkit CS4 で開く
  • Command + option + 3 -> ExtendScript Toolkit 2 で開く
このキーはぶっちゃけ結構間違えるので(CS4で走らせたい場合にCS3をキックしてしまい、よけいなアプリが立ち上がったり……)、自分で適当に直して下さい。

2010.06.16追記:
TextMateは、標準では和文の入力と、2バイトフォントの表示ができません。
※現時点で、Version 1.5.9 (1510)です。
日本語入力プラグインと見た目をまともにするためのフォントを入れる必要があります。
詳しくは下記ページにて。
TextMate で日本語をわりとまともに表示する - d.hetima

4 件のコメント:

mg さんのコメント...

ちまちますいません

InDesign CS2_Jでalert("Hello");に対して実行

122:187: execution error: Adobe InDesign CS2_J got an error: イベント 'do script' の必須パラメータ 'script' が見つかりません。 (30479)

って出てしまいます。

kanemu1117nc さんのコメント...

mgさん、こちらで再現しないです。
スクリプトのファイル名と、そこまでのパスを教えてもらえますか?

kanemu1117nc さんのコメント...

> ~/Desktop/hello.jsx

で、再現しません。
可能性としては、アプリケーションの場所を絶対パスで定義してあるので、デフォルトの場所にインストールされていないと動かないかもしれません。
Show Bundle Editor で、
#targetの検索結果から条件分岐して、実行するアプリを選択(CS2_JP)
以下のコードに入っているパスを確認してみて下さい。

mg さんのコメント...

やっと試したのですが、うちのiMac 10.6.4, InDesign CS2環境でも全く同じメッセージが出てしまいました。

ちなみに前半(000:000:)と後半((00000))のコードの意味って何か教えてもらえますか?行数ともちがいますよね?