以前から自分用にチマチマ使っていたCotEditor用スクリプトにある程度汎用性を持たせたので公開しようと思います。
めずらしくスクリプト。しかもAppleScript、超珍しい。
機能としてはタイトル通り、選択範囲をコメントアウトするスクリプトで、ショートカットキーを用いて、複数文字から成るコメント記号を手軽に入力したり、複数行を一気にコメントアウトすることを目的としています。
さて、で、このスクリプトの特徴は多言語対応。つまり、そのときのシンタックス・カラーリング・モードによって挿入するコメント記法が変わります。便利。これで、現在のシンタックスを気にせず共通の動作でコメントアウトが可能になります。
CotEditor 1.3にデフォルトで同梱されているシンタックスは全てカバーしている他、Apache, XML, HTML5, SVG, SQL, Markdown, AppleScript, Go, Scheme, gnuplot, ImageJ, R および ReVIEWにも対応しています。それ以外もスクリプトを書き足せば簡単に追加できます。
つまりこれは、<!-- -->のようなブロックコメントと#のようなラインコメントの両方を扱えるということで、その辺も空気を読んで使い分けるようになってます。行の途中にカーソルがあるときに実行すれば、そのカーソルの位置にコメント記号が挿入されます。ただそれゆえ、選択範囲の開始/終了が行の途中だったときの動作はヤキモキすることがあるかもしれませんが、「一つのショートカットキーでコメントを何でもカバー」という方針なのでこんなもんかなと思ってます。
また、もう1つ、選択範囲内に既にコメントアウトされている行の方が多かった場合は操作がコメントアウトからコメント解除にトグルされます。ただしこの動作はラインコメント方式でかつ行頭でコメントアウトされいるときに限ります。
ショートカットキーには "片手をマウスorトラックパッドに置いた状態で入力しやすい" "覚えやすい" という個人的嗜好から command + shift + c が設定されていますが、これはスクリプトのファイル名を変更することで設定可能なので、各々好きなのを割り振ってください。
まぁ、他詳しい仕様は同梱されているREADMEを読んでください。
今回は試しにgithub経由で配布してみます。
ライセンスは Creative Commons Attribution-NonCommercial 3.0 Unported License。まぁなんでもいいだけどね、正直。
このスクリプトは自分でも日頃から使っていて、細かい挙動はまだ不満がないわけではないので、気が向いたら今後も更新する可能性があります。毎度ですが、不具合報告等は歓迎します(必ず対応することを保証するものではありません。
特に、現在のバージョンでは改行周りでうさん臭いことを行っており、手元の環境では希望の動作になるのですが、果たして他環境でも同様に振る舞うのか不安があります。「おい、改行おかしーよ!」という方は報告いただけると嬉しいです。