スクリプトエディタで構文に対する色の指定状況を把握

初期設定ファイルにアクセスして各構文に対する色情報を取得するのは、Mac OS X 10.5以降ではできなくなった。従来は、初期設定ファイルがテキストベースで書かれており、解析しやすかったのだが、10.5ではどうやらオブジェクトをシリアライズした形式でファイルに書き込まれており、そのままではAppleScript側からは解析できない。Objective-Cからは比較的簡単に解析できるはずだが、ちょっと手が出ない。

AppleScriptの構文要素をScript Editor上で判別できないと困る。AppleScript自体の自動記述や、解析して書き換えるといったソフトウェアを動かすために、どーーしても構文要素を区別できないと困るのだ。「全部手で書く」とかいう原始時代に戻るわけには行かない。自動記述や自動書き換えは近代的なAppleScript記述環境の最低条件だ。

だが、このたび考案した方法を使用すると、10.5以降であろうと10.6になろうと、何の問題もなく構文に対する色情報を取得できる。

新規にScriptのウィンドウを作成し、そこに各構文要素が入ったAppleScriptのテキストをScript側から突っ込み、AppleScript側からコンパイルを行う。その結果をRich Textとして取得し、色情報を得る。テキストはいつも同じものを固定で使用するため、プログラム側からは同じ位置の文字の色情報を取り出せば、それで構文要素に対する色情報を取得できることになる。

この処理はAppleScript側から全自動で行うため、スクリプトのウィンドウも一瞬だけ表示される程度であり、スピードのロスも少ない。初期設定から取得する方法は10.5で使えなくなってしまったが、今後はこの方法を用いることで色情報を取得していけばよいだろう。

実際に処理を書いてみると……一瞬だけウィンドウが表示されるぐらいで、きわめて迅速に書式情報を取得できるではないか。実にうまく動いている。構文要素のうち色書式が重複している要素がある場合に警告を発するなど、必要な機能は実装できてしまった。


…………で、構文要素のうち「参照式」っていうやつが、どーーしてもスクリプトエディタ上で再現できないのだが(汗) これって、具体的に何をかけばこの要素として認識されるものなのだろーか(ーー;;;

Copyright By Piyomaru Software. All Rights Reserved