スクリプトエディタ

スクリプトエディタとは



スクリプトエディタは、macOSに標準搭載されている、AppleScriptなどのOSA (Open Scripting Architecture) 言語を記述、実行、保存、簡易デバッグするためのApple製GUIアプリケーションです。OSA言語は、macOS上のGUIアプリケーションの自動化や機能拡張のために用意された機構です。このエディタは、Classic Mac OS時代から存在し、macOSのバージョンアップに伴い、名称や機能が若干変更されてきました。

歴史



Classic Mac OS時代には「スクリプト編集プログラム」と呼ばれていました。その後、Mac OS X 10.1〜10.6では「スクリプトエディタ」、OS X 10.7〜10.9では「AppleScriptエディタ」、そしてOS X 10.10以降は再び「スクリプトエディタ」という名称で提供されています。

所在



アプリケーションの所在も変更されており、OS X 10.6までは「アプリケーション」フォルダに、OS X 10.7以降は「ユーティリティ」フォルダに格納されています。

ファイル保存形式



スクリプトエディタで保存可能なファイル形式は以下の通りです。

プレーンテキスト形式 (.applescript)
コンパイル済みスクリプト (.scpt)
スクリプトバンドル (.scptd)
アプレット (.app)

OS X 10.8からはAuto Saveに対応したため、構文未確認のスクリプトでも保存できるようになりました。バンドル形式のスクリプトを保存すると、バンドル内の編集ペインが表示され、スクリプトライブラリやCocoa Frameworkの追加・削除が可能になります。また、バンドルIDやバージョン番号も編集できます。

記述OSA言語の切り替え



macOSのOSA機構は、複数のOSA言語を切り替えて使用できる機能を提供しています。初期にはAppleScriptが主流でしたが、現在ではJavaScriptベースのJXA (JavaScript for Automation) が標準搭載されています。これらの言語は、スクリプトエディタのOSA言語ポップアップメニューで切り替えることができます。

かつてはShell OSA, Tcl OSA, Ruby OSA, PythonOSA, Perl OSA, JavaScript OSAなどの言語も存在しましたが、OS X 10.7での64ビット化に対応できずに開発が終了しました。これらの言語も、当時のスクリプトエディタで切り替えが可能でした。

ただし、OSA言語を切り替えても、記述中のスクリプトが自動的に他の言語に翻訳されることはありません。

コード署名



スクリプトエディタでは、スクリプトをアプリケーションとして書き出す際に、コード署名を行うことができます。macOS開発者プログラムに登録し、証明書をインストールすることで、アプリケーション開発者ID (Developer ID) を使用してコード署名できます。

制限事項



Mac OS X 10.2以前のスクリプトエディタはCarbonベースで開発されており、編集可能なスクリプトサイズに32KBの上限がありました。Mac OS X 10.3以降はCocoaベースに移行し、この制限は撤廃されました。
OS X 10.7で64ビットアプリケーションになり、32ビットOSAXとの互換性がなくなりました。ただし、スクリプトエディタ自体を32ビット起動すれば、32ビットOSAXも利用可能です。
スクリプトエディタは、OSA言語モジュールのインストールやOSAX、Script Librariesなどの管理には関与しません。
GUI Scriptingを利用してGUI部品を操作する場合、システム環境設定でスクリプトエディタにアクセシビリティの許可を与える必要があります。

拡張方法



スクリプト



スクリプトエディタ自体もスクリプタブルなアプリケーションであり、AppleScriptなどのOSA言語でコントロールできます。外部スクリプトやスクリプトメニューからスクリプトエディタを操作できます。

スクリプトアシスタント



スクリプトエディタの編集エリアで右クリックすると、コンテクストメニューが表示されます。このメニューには、指定ディレクトリ以下のスクリプトが一覧表示され、選択したスクリプトを実行できます。また、テキスト選択に対して処理を行うスクリプトや、変数名の置換などを行うサードパーティ製スクリプトも利用可能です。

プラグイン



過去にはスクリプトエディタにプラグインをインストールできましたが、macOS 10.14で廃止されました。過去のプラグイン機能は、macOSに標準装備されることが多くなりました。

各種機能



構文書式設定機能



OSA言語の構文要素に応じて、フォントや色をカスタマイズできます。これにより、スクリプトの可読性を向上させることができます。特にAppleScriptでは、構文の可読性が低い場合があるため、この機能は重要です。

短縮記述の展開機能



AppleScriptでは、`end` と書くだけで `end tell` や `end if` に自動展開されたり、`tell app` を `tell application` と展開する機能があります。

対応アプリケーションの用語辞書のブラウジング機能



スクリプタブルなmacOSアプリケーションは、スクリプト用語辞書を内蔵しています。スクリプトエディタにアプリケーションのアイコンをドラッグ&ドロップすると、その内容が表示され、利用可能なオブジェクトやコマンドを確認できます。

「実行」機能



スクリプトエディタはエディタ兼実行環境です。編集したスクリプトをその場で実行し、結果を取得できます。ただし、他の実行環境とは制限のかかり方が異なるため、注意が必要です。

「フォアグラウンドで実行」機能



Controlキーを押しながら「スクリプト」メニューをクリックすると、「実行」が「フォアグラウンドで実行」に変わります。この機能は、Cocoaの機能を呼び出す際にメインスレッドで実行する必要がある場合に使用します。通常実行でエラーが発生する場合に有効です。

「記録」機能



アプリケーションの操作を記録する機能ですが、対応アプリケーションが少なく、記録された内容も理解しにくいため、非推奨となっています。

簡易デバッグ機能



スクリプトエディタには、簡易的なログ表示機能があります。`log`コマンドを使って変数や定数の内容を表示できます。本格的なデバッグには、サードパーティ製の「Script Debugger」の使用が推奨されます。

「テンプレート」機能



スクリプト作成を支援するテンプレート機能があります。Apertureのインポートアクション記述や、ドロップレット、メールのルール処理スクリプト、Cocoa-AppleScriptアプレットなど、様々なテンプレートが用意されています。

「ウィンドウのデフォルトサイズ記憶」機能



新規書類作成時のウィンドウサイズと位置を記憶する機能があります。

スクリプトメニューのON/OFF機能



メニューバーからスクリプトを実行できる「スクリプトメニュー」のON/OFFを切り替えることができます。

バグ



macOS 13 Ventura以降、スクリプトエディタ上のテンプレート「Cocoa-AppleScript Applet」が実行できなくなっています。また、.scpt形式のAppleScript書類の説明欄が白地に白色で表示されるバグがあります。ただし、文字情報は存在しており、選択したり色を変更できます。

脚注

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。