スクリプトエディタ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/04/26 15:09 UTC 版)
制限事項
Mac OS X 10.2まで、スクリプトエディタはCarbonベースで開発されており、編集可能なスクリプトに32Kバイトの上限が存在していた。Mac OS X 10.3ですべてCocoaベースで書き直されており、この32Kバイトの制限も撤廃された。OS X 10.7で64ビットアプリケーションに書き直され、32ビットOSAXとの互換性が失われた(スクリプトエディタ自体を32ビット起動すれば使えないことはない)。
OSA言語モジュールのインストールや、OSA言語の命令語拡張のためのスクリプティング拡張書類 (OSAX)、Script Librariesなどの管理についてスクリプトエディタは一切関知していない。
スクリプトエディタ上でGUI Scriptingを用いてGUI部品を強制的に操作する記述を行おうとしても、デフォルト時にはスクリプトエディタ自体にその機能にアクセスする許可が出ていない。このため、システム環境設定の「セキュリティとプライバシー」>「プライバシー」の「アクセシビリティ」項目でスクリプトエディタに「コンピュータの制御を許可」する必要がある(初回時のみ)。
拡張方法
スクリプト
スクリプトエディタ自体がOSA言語からコントロール可能な(スクリプタブルな)アプリケーションであり、AppleScriptなどのOSA言語からコントロール可能である。外部スクリプトやOS標準装備のスクリプトメニューからスクリプトを呼び出して、スクリプトエディタ自身を操作できる。
スクリプトアシスタント
スクリプトエディタの編集エリア上でControlキーを押しながらクリック、あるいは複数ボタンが存在しているマウスなどで右クリックすると、コンテクストメニューが表示される。このコンテクストメニューには、特定ディレクトリ (/Library/Scripts) 以下のフォルダ階層構造がそのまま反映され、選択したスクリプトを実行できるようになっている。
スクリプトエディタ上で選択中のテキストに対して処理を行うスクリプトを呼び出せるほか、サードパーティーが提供している強化スクリプトにより、変数名の置換や各種オプションの記述が必要なコマンドの自動記述(choose fileでUTIを指定してファイル選択を行う場合のUTI記述など)を行えるようになる。
プラグイン(macOS 10.14で廃止)
スクリプトエディタ自体にプラグインをインストールすることができるようになっている。過去にいくつかのプラグインが発表されたが、だいたいはのちにmacOSに標準装備されていった。目下、このプラグイン開発用の資料も公開されていないため、ほぼプラグインは存在していない。macOS 10.14のスクリプトエディタでは、環境設定ウィンドウから「プラグイン」のタブが削除された。
各種機能
構文書式設定機能
OSA言語ごとに構文要素に応じた書式(フォント種別、フォントサイズ、色分け)を設定できるようになっている。ユーザーは自分の好みの構文書式を定義することで、スクリプトをより読みやすくすることができる。とくにAppleScriptにおいては「return return」(サブルーチンから返り値として改行コードを返す)といった文字情報だけでは判別しにくい記述もできるため、構文要素ごとに色分けされていないと可読性が著しく低下する(AppleがOS出荷時にデフォルトで設定している構文色分け内容は、お世辞にも見やすいものではない)。
短縮記述の展開機能
AppleScriptにおいては、tellブロックやifブロックを閉じる際に「end」とのみ書いておけば、「コンパイル」(構文確認)時にプログラム内容に合わせ、「end tell」や「end if」と自動認識して展開される。同様に、「tell app」と書いておくと、「tell application」と展開される。
対応アプリケーションの用語辞書のブラウジング機能
OSA言語によるコントロール可能な、いわゆるスクリプタブルなmacOSアプリケーションは、スクリプト用語辞書(sdef)を内蔵している。この内容をブラウズする機能を持っている。対象のアプリケーションのアイコンをスクリプトエディタにドラッグ&ドロップすると、その内容が表示され、アプリケーションがOSA言語に対して利用を許可しているオブジェクトやコマンド、プロパティの一覧を見ることができる。
「実行」機能
スクリプトエディタは、エディタであり、実行環境でもある。スクリプトエディタ上で編集したスクリプトをその場で実行でき、結果も取得できる。macOS上のOSA言語は実行環境が多数あり、それぞれに微妙に実行条件が違っている。スクリプトエディタはmacOS上でもっともセキュリティ上の制限のゆるいOSA言語スクリプトの実行環境である。ただし、他の実行環境との制限のかかりかたの「差」があとで問題になることがままある。
「フォアグラウンドで実行」機能
Controlキーを押しながら「スクリプト」メニューをクリックすると、「実行」コマンドが「フォアグラウンドで実行」コマンドに表示変更される。本機能は、スクリプト内でCocoaの機能を呼び出したときに、NSWindowやWebViewなどのメインスレッドで呼び出す必要のあるクラスの操作に備えたもの。そのため「フォアグラウンド」ではなく、「メインスレッドで実行」と呼ぶのが正しい。これらのCocoaクラスを用いている場合に、普通の「実行」コマンドを操作しただけではエラーになったり、スクリプトエディタがクラッシュしたりする。
「記録」機能
アプリケーションの操作を「記録」(レコーディング)できる機能。ただし、OSA言語による操作に対応していて、そのうえで「記録」に対応しているアプリケーションの動作しか記録できない。対応アプリケーションも少なく、記録されている内容を読んでも理解しやすい内容ではないため、Appleからも非推奨の機能になっている。有名な対応アプリケーションには、FinderやBare Bones SoftwareのBBEditがある。
簡易デバッグ機能
スクリプトエディタには、アプリケーションからの返り値などを確認するために、簡易ログ表示機能が用意されている。アプリケーションからの応答内容などを確認するのが主な用途であるため、変数のリアルタイム監視やブレークポイントの設定などの機能は持たない。AppleScript内蔵のlogコマンドでこのログへの変数や定数の内容を表示でき、簡易的なデバッグ用途にはこちらが利用されている。
スクリプトエディタのデバッグ機能はあくまで簡易版であるため、本格的なデバッガーの機能についてはサードパーティーのアプリケーション「Script Debugger」の導入を検討すべきである(同デバッガはAppleScript専用であり、JXAには非対応)。
「テンプレート」機能
特殊な記述を行う各種プラグインスクリプトを記述するためのテンプレートが数種類用意されている。「Aperture」のインポートアクション記述テンプレート、各種ドロップレット、「メール」アプリケーションのルール処理スクリプト、「メッセージ」アプリケーションのメッセージ受信時の応答処理スクリプト、そしてCocoa-AppleScriptアプレットのテンプレートである。所定のフォルダに格納されたスクリプトをオープンする機能であるため、ユーザーが自分のテンプレートを追加することも可能。
「ウィンドウのデフォルトサイズ記憶」機能
新規書類を作成した際の、ウィンドウの大きさと位置を記憶する機能。最前面の書類ウィンドウの大きさと位置をデフォルトのものとして記録する。
スクリプトメニューのON/OFF機能
メニューバー上から階層式のメニューを表示させ、指定フォルダ以下のスクリプトを実行できる「スクリプトメニュー」のON/OFFを行う機能が、スクリプトエディタに搭載されている(デフォルト時はOFF)。スクリプトエディタの「環境設定」>「一般」にあるスクリプトメニューにチェックを入れることで利用できるようになる。
固有名詞の分類
- スクリプトエディタのページへのリンク