JavaScriptを使って、クリップボードのテキストを加工できる、マクロ機能を追加予定

Cocoa, Mac, ソフトウェア Add comments

CLCLで重宝している機能の一つが、クリップボード内のテキストを整形するテキスト処理機能です。正確には、tool_textというプラグインをインストールすることで、利用できるようになるものです。

履歴メニューを右クリックすると、さらにメニューが表示され、様々なテキスト処理を行えます。

  • 日時変換
  • 大文字/小文字変換
  • 日本語文字コード変換
  • 引用符付加/除去
  • テキスト整形
  • テキストの挟み込み
  • 改行の除去
  • テキストの連結
  • テキスト編集

エディタの置き換え機能などを使わずに、定型作業を行えるというのは、大変便利なものです。PTHPasteboardでは、おそらくフィルタがこれに該当するのでしょう。

こういった機能をClipMenuでも実現する方法を、いくつか考えてみました。

  • Objective-Cで実装
  • OgreKitを採用して、正規表現を使用
  • RubyCocoaPyObjCを採用して、RubyやPythonを使用
  • WebKitを採用して、JavaScriptを使用

1番目は、ユーザーの手で自由に追加できないので却下。

2番目は、正規表現だけですべてをこなすというのは難しそうなので、同じく却下。

3番が、本当は望ましかったんですが、二つの理由で残念ながら却下になりました。

まず、ドキュメントをざっと見て、実現可能かどうかが分からなかったこと。RubyやPythonからCocoaを利用する例ばかりで、Objective-Cからオブジェクトをスクリプト言語に渡して、結果をまた受け取る方法を見つけられませんでした。

また、RubyCocoaやPyObjCの両方が標準搭載されているのが、Mac OS X v10.5だけというのもネックでした。両方とも、オープンソースで誰でもダウンロードして入手できますが、わざわざインストールしてもらう訳にもいきません。

そういう理由もあり、WebKitのJavaScriptエンジンを利用してみることにしました。Mac OS v10.3.9以降なら、何の追加インストールも必要ないのも魅力です。

それに、思いのほか便利にできています。Objective-CとJavaScriptの間でオブジェクトをやり取りする際は、自動的に型変換を行ってくれます。さらに、JavaScriptに渡したオブジェクトの、Objective-Cで書かれたメソッドを、JavaScript側から呼び出すこともできるようです。Dashboardのプラグインを思い出しました。

「ユーザーが、自由にテキスト加工コマンドを追加可能」をコンセプトに、今後のバージョンアップで実装する予定です。

Comments are closed.

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン