DWIM (Do what I mean)
Atomに乗り換えて一番不便だったのがコメントの挿入ですよね。
まぁ他にもいろいろあるのですが、凝ったことをしなければなんとかなるかな?
Emacsでは comment-dwim
というコマンドがあり、どこにカーソルがあっても同じ操作で空気を読んで良い感じにコメントを入れることが出来たのですが、Atomだと書いたRegionをコメントアウトするくらいしか方法が無さそうのでこれでコードを編集する気がなかなかおきませんでした。
(command-dwim
についてのナイスな説明はこちらをどうぞ。)
もしかしてパッケージにあるかなと思って探してみたんですが、パッケージにも無さそう。
ということでオリジナルに比べると機能が足り無さそうな劣化版ですが、自分が利用している範囲内でパッケージをでっち上げてみました。
comment-dwim-light package for Atom
FEATURE
機能的には
- 複数行の選択範囲があればその行のコメントアウトの切り替えを行う
- 新規の行(空文字のみの行含む)の場合にはインデントを考慮してコメントを挿入
- すでにコードがある場合は指定したカラム以降にコメントを挿入
- すでにコメントがある場合はコメントの最後までジャンプ
というところまで実装しています。
KEYMAP
キーバインドはEmacsで個人的に設定している ctrl-;
に設定してあります。
OSXの場合はそのまま利用できますが、Windowsの場合はChromiumのキーバインドが優先されるようで文字の拡大になってしまうようです。
もし挙動がおかしい場合は keyboard-localization パッケージを入れるかキーマップを変更してみてください。
SETTINGS
設定項目は
-
commentColum
: インラインコメントの始まるカラム数 -
commentFillColum
: コメントの長さ確保数
があり、どちらも初期設定で40となっています。
初期設定のままだと、既にコードがある行のコメントは40桁目から始まりますが、もし editor.preferredLineLength
が80以下の場合はコードの最後に追記されるようになります( editor.preferredLineLength
< commentColum
+ commentFillColumn
の場合)。
ですので、 commentColumn
か commentFillColumn
をあり得ないくらい大きな数字にすればいつでもコードの最後に追記されるようになります。
UNIMPLEMENTED
さて、機能が足り無さそうとしたのは、comment-dwim
コマンドで何が出来るのか全て把握していないからです。
ちなみに、個人的に余り使わない実装していないものとしては
- コメントアウトマーク?の数指定
- 空気を読んだコメントマーク?の数
がありますが、Lisp限定っぽいので実装しなくてもいいでしょう :p
SUMMARY
これで簡単にコメントを挿入できるようになって、Atomでコードを書くことも苦ではなくなりました。
ちなみにAtomのハックもCoffeeスクリプトも初めてだったんですが、数時間で作ることが出来ました。
elispでの実装だったらはなから諦める感じなんですけど、流石「21世紀のハッカブルテキストエディタ」ですね。調子にのってたくさんパッケージ作っちゃいいそうな気分にさせてくれますね。
それではよいコメントライフを!!
ps. 楽にコメントを挿入できるようになったとはいえ、相変わらずソースにコメントがないことは内緒です :p