#24703
redakt55
参加者

コメント化/非コメント化のショートカットがあるとは知りませんでした。

少し不便なのが,①二段階であること,②コメント化と非コメント化でショートカットが違うこと,ですが,現状でもかなりありがたい機能です。

質問です。
Ctrl + K, C および Ctrl + K, U は,[編集]→[選択範囲の変換]→[コメント挿入]/[コメント削除]と同じものでしょうか。
であれば,メニューの横にショートカットも表示していただけないでしょうか。

ところで,「コメント挿入」「コメント削除」は適切な表現でないように思います。
というのは,これは選択したものをコメント化するのであって,そこにコメントを挿入するわけではないし,コメント記号を取り除いて非コメント化するのであって,コメント自体を削除してしまうわけではないからです。
「コメント化」「非コメント化」ではダメでしょうか。

次に要望です。

Ruby で,範囲選択した状態でコメント化すると,選択範囲の先頭・末尾にそれぞれ「=begin」「=end」が挿入されます。
これは,Ruby のプロパティーの「強調(2)」の「コメント」の「開始」「終了」の値をそのまま入れているのだと思います。
しかし,Ruby の =begin/=end は,C などの「/*」「*/」などとは違って,行中に使うことができません。

=begin
x = 3
=end

のように,「=begin」だけの行と「=end」だけの行で囲まなくてはならないのです。
(正確に言うと,「=begin hoge」のようにスペースなどを挟んで何かを書くことはできます。しかし「=」の前にはスペースも置けません)

よって,Ruby の場合,選択範囲の先頭行の前に「=begin」の行を挿入し,選択範囲の最終行の後に「=end」の行を挿入してほしいです。

もっとも,Ruby の =begin/=end はコーディング規約で避けられることが多いうえ,本来は一時的にコードをコメント化するためのものではなく,コード中に機械処理可能なフォーマットのドキュメントを埋め込むためのものです。
なので,範囲選択の場合でも =begin/=end のコメントではなく「#」のコメントにしてほしいですが。

それから,Ruby の「#」や C の「//」のような行コメントについて。
現状では,コメント記号しか入れてくれませんが,コメント記号のあとにスペースを一つ入れてほしいんです。
それがふつうの(?)書き方だからです。
Atom のコメント機能はそうなっています。
設定で切り替えるのでもかまいません。

また,現状ではコメント記号を挿入する位置は行の先頭ですが,これをインデント位置に変えてほしいんです。
例えば

3.times do |i|
puts i
end

の第 2 行をコメント化した場合は

3.times do |i|
# puts i
end

ではなく

3.times do |i|
# puts i
end

にしてほしい,ということです。
言語にもよるのでしょうが,少なくとも Ruby ではこれが望ましいスタイルとなっているようです。
たとえコメントでもインデントのコーディング規約に従うべき,ということでしょう。

複数行が選択されていて,インデントのレベルが同じではない場合は,最もインデントの浅いものに合わせます。

Atom はそうなっています。
こちらも,設定で切り替えるのでかまいません。