意外と知られていない?

今日後輩のソースコード見ながらあれこれいじってたら(ペアプロとよべるような代物ではないけど)、「おっなんすか その機能??」という指摘?質問?を受けたので、意外と知られていないのかと思い、はてなプッシュ。

まず

  while (condition) {
    if (con != null) {
      a();
      b();
      //hoge
      c();
    }
  }

みたいなコードがあるとする。で、リファクタリング(では、あまりフローをいじらないかもしれないが)なんかでこの if() {} の中身を、ifを外して外に出したいときがある。

まず、ifブロックの中の適当な位置にカーソルを持っていって、Alt+Shift+[←]とすると、ちょうどこのブロックをまるまる選択した状態になる。ここで Ctrl+1 (QuickFix)すると、"Remove Surrounding if.."とかいうのがあると思うので、これを選ぶと

  while (condition) {
    a();
    b();
    //hoge
    c();
  }

という風にインデントを直して ifが消えてしまう。

そんなに利用シーンが思い浮かばないかもしれないけど、こういう上下2行消して、Shiftでカコってuntabifyという作業はなんだか疲労ばかりが溜まるので、覚えておくと意外と便利。