ぴよまるソフトウェアの宣伝のために配布しているCotEditor PowerPackですが、アプリケーションに現代のAppleScriptのパワーを足すとヤバいことがいろいろできるという実例になっています。
ただし、「アプリケーション内蔵メニューから呼び出す」Scriptにはセキュリティ上の制約やアプリケーション側のポリシーによる制約が大きく、いろいろボツにしたものがあります。
一部のライブラリは呼べない
一応、CotEditor内蔵のScript Menuからバンドル形式のScriptは呼べるのものの、Script Libraryを入れて呼ぶようなことはできません。そのため、Windowの回転Scriptなどはライブラリの三角関数を呼び出していたため、その部分だけ切り出してScript内からサブルーチンとして呼び出せるようにしておきました。地図表示のScript(ぴよまるソフトウェアの最寄駅表示)も、本来はchoose locationライブラリを用いていたものを、ライブラリ化しないでScript内に展開(内容をコピペ)しました。
外部Frameworkを呼び出すものは呼べない
アプレット形式(.app)のScriptの呼び出しが許可されていない(CotEditor側のポリシーの問題)ため、サードパーティのプログラムをCocoa Frameworkとしてビルドした外部Frameworkをバンドル内に入れて呼び出すことができません。この制約は割ときつくて、たいへんよく利用するBridgePlus Script LibraryのようにFrameworkをバンドル内に含むライブラリも呼べません。そのため、BridgePlusに依存している処理をAppleScriptのみで処理できるルーチンに差し替えたりしました(2次元配列のソートなど)。
辞書.appの辞書で慣用句をキーワード検索するなどのScriptや、HTMLを解析してデータを取り出すScriptは強力で役に立つのですが、Applet(.app)形式のScriptの実行が許可されないかぎりCotEditorのScript Menuからは呼べません。
Safari上の表オブジェクトをCSV化してCotEditor上に展開するScriptなどはたいへん実用性もあり、いいと思うものの、HTMLReader.frameworkなしには実現できないので、ボツになりました(個人的には使っています)。
ただし、Frameworkを含んだAppletも、OS標準装備のScript Menu側からは呼べるので、別途そういうものを企画してみてもよいのかもしれません。
REST APIを呼び出すものは配布しにくい
これは、技術的な問題ではなく運用上の問題なのですが……REST APIを呼び出すようなものは収録を見送りました。たいていのREST APIは呼び出し用のキーが必要なわけですが、それをどーやって各ユーザーに取得してもらって、かつプログラムの中に記入してもらうかなど、説明し切れない(もうちょっとスマートに利用できないと説明がつらい)と判断して割愛しました。
文字コード関連のものはボツ
文字コードがらみのものは難しいものがあります。1つは、選択中の文字列の16進ダンプScript。UnicodeのNormalizeの方式の違いにより㍿などの文字のデータの持ちかたが変わってくるので、個人的にはたまに使っていますが、CotEditorの文字コードまわりの命令が動いていないので(GUI側からは機能している)そのあたりをつつきたくなかったということはあります。あと、闇が深そうですし。
仕様を決めにくいものはボツ
「こういうのがあったらデモとしても面白い」と、思ったものはいくつかありましたが、技術的に可能であっても、仕様を決めにくいものや公開しにくいものについてはボツにしました。
たとえば、選択中の文字を画像化してAirDropで近隣のマシンに転送するScriptを企画してみたのですが、文字数に応じてフォントサイズを可変とするなど、いろいろ実現のためのアイデアは持っていました。とはいえ、実際に作ろうとすると「ちょっとしたデモ」の範疇を超えるぐらいの手間がかかるため、ボツにしました。
opensslで選択中のテキストを暗号化するScriptも、かなり昔から使っているものがあるので、実用性で考えるとあったほうがいいものです。ですが、実際にPiyomaru Softwareのアプリケーション内部で利用しているものなので、そのものを単体で配布することはためらわれたため、ボツにしました。
普段使っていないアプリケーション(Google ChromeとかPowerPointとか)をコントロールするものも割愛しました。作ろうと思えば作れるものの、何か問題が起きて書き換えたほうがいいという話になっても、日常的にいじくっていないと問題点が把握しにくいところです(Keynote v9.1で表オブジェクトの作成に問題があるバグとか、日常的に使っていないと見つかりません)。