Blog

Published on

RSS

CotEditor 多言語一括コメントアウトScript

改良版のv1.1がリリースされています。専用ページを作りましたのでそちらからダウンロードしてください。
CotEditor
CotEditor

以前から自分用にチマチマ使っていたCotEditor用スクリプトにある程度汎用性を持たせたので公開しようと思います。

めずらしくスクリプト。しかもAppleScript、超珍しい。

機能としてはタイトル通り、選択範囲をコメントアウトするスクリプトで、ショートカットキーを用いて、複数文字から成るコメント記号を手軽に入力したり、複数行を一気にコメントアウトすることを目的としています。

スクリプトメニューからCommentスクリプトを実行
スクリプトメニューに登録して使用

さて、で、このスクリプトの特徴は多言語対応。つまり、そのときのシンタックス・カラーリング・モードによって挿入するコメント記法が変わります。便利。これで、現在のシンタックスを気にせず共通の動作でコメントアウトが可能になります。

CotEditor 1.3にデフォルトで同梱されているシンタックスは全てカバーしている他、Apache, XML, HTML5, SVG, SQL, Markdown, AppleScript, Go, Scheme, gnuplot, ImageJ, R および ReVIEWにも対応しています。それ以外もスクリプトを書き足せば簡単に追加できます。

Perlのコメント(#)
ラインコメント: Perl
 
Javaのコメント(//)
ラインコメント: Java
SVGのコメント<!--  -->
ブロックコメント: SVG (XML)
 
CSSのコメント/**/
ブロックコメント: CSS
 
様々な言語のコメント方式に対応

つまりこれは、<!-- -->のようなブロックコメントと#のようなラインコメントの両方を扱えるということで、その辺も空気を読んで使い分けるようになってます。行の途中にカーソルがあるときに実行すれば、そのカーソルの位置にコメント記号が挿入されます。ただそれゆえ、選択範囲の開始/終了が行の途中だったときの動作はヤキモキすることがあるかもしれませんが、「一つのショートカットキーでコメントを何でもカバー」という方針なのでこんなもんかなと思ってます。

また、もう1つ、選択範囲内に既にコメントアウトされている行の方が多かった場合は操作がコメントアウトからコメント解除にトグルされます。ただしこの動作はラインコメント方式でかつ行頭でコメントアウトされいるときに限ります。

before
スクリプトメニューからCommentスクリプトを実行
 
after
スクリプトメニューからCommentスクリプトを実行
選択範囲内にコメント行の方が多い場合はコメント解除 (Perl)

ショートカットキーには "片手をマウスorトラックパッドに置いた状態で入力しやすい" "覚えやすい" という個人的嗜好から command + shift + c が設定されていますが、これはスクリプトのファイル名を変更することで設定可能なので、各々好きなのを割り振ってください。

まぁ、他詳しい仕様は同梱されているREADMEを読んでください。

今回は試しにgithub経由で配布してみます。

ライセンスは Creative Commons Attribution-NonCommercial 3.0 Unported License。まぁなんでもいいだけどね、正直。

このスクリプトは自分でも日頃から使っていて、細かい挙動はまだ不満がないわけではないので、気が向いたら今後も更新する可能性があります。毎度ですが、不具合報告等は歓迎します(必ず対応することを保証するものではありません

特に、現在のバージョンでは改行周りでうさん臭いことを行っており、手元の環境では希望の動作になるのですが、果たして他環境でも同様に振る舞うのか不安があります。「おい、改行おかしーよ!」という方は報告いただけると嬉しいです。

2 Comments

匿名

初めまして。
120行目の「selectionLines」と「minBlockCommentLines」の間に問題が有ったようで、動きませんでした。
CotEditor1.3.1だと半角ウ、github上だと小さい3に見えます。
そこを「and」にした所、とりあえず動きました。

1024jp @webmaster

> 匿名さん
ご指摘ありがとうございます。
>= という比較演算子をAppleScriptエディタが勝手に1文字の≥に書き換えていたようです。
ブロックコメントとラインコメントの切り替えを判断している箇所なので、
ブロックコメントの機構を持たない言語であれば問題はないと思いますが、
修正しましたので、再度ダウンロードいただければと思います。

leave your comment