Layout/EmptyCommentの実装を再開しておいた

ある実装者のアクティビティがなくてクローズされていた Layout/EmptyComment への実装を再開しておいた。着手し始めていた (元イシューとクローズされていた PR でのやり取りの理解が主) のは今週の木曜くらいで週末に PR まで持って行こうと思っていたところで今日の夕方が終わるくらいに実装の本腰を入れて、そのまま日曜日が残り30分で終わるあたりで PR できて一応予定どおり。

github.com

この Cop が取り締まることについて自分が困ったことは最近はないけれど、イシューを見た感じまあありそうだということと、ソースコードコメントまわりのノードの処理について興味があったことから着手していた。

この実装で一番時間が掛かった気がするのが以下 autocorrect の実装で、コメント行を一行まるっと消すにはどうしたものかというあたり RangeHelp#range_by_whole_lines を見つけるまでの時間だった気がする。

def autocorrect(node)
  lambda do |corrector|
    range = range_by_whole_lines(node.loc.expression,
                                 include_final_newline: true)

    corrector.remove(range)
  end
end

こういったありがちなのを地味に実装したくないと思っていたので、見つけられて良かった。