PhpStorm (IntelliJ IDEA系全般) の Ctrl+Shift+J
(Mac) の話です。
エディタの自動インデント機能、改行一発でコードが整って便利ですよね。
ただ... 改行じゃんじゃん入れて整形してる最中は気持ちいいんですが、うまいこと名前短くするリファクタがキマったりして、やっぱりここは同じ行にまとめたスタイルに戻したい、ってなることもあります。
IntelliJ系のバックスペースは賢くて、まさにこれの逆順で、勝手にインデント取っ払ってもとに戻る感じです。すばらしい。
delete
キーだけで
でもね、でもね... あっち行ってバックスペース、こっちいってバックスペース... と、ちまちまカーソルを動かすのがつらい。しょうもないかもしれませんが、この程度のことが面倒くさいと思うのがプログラマーなんですよね。
そんなときはこれ:
IntelliJ IDEA 2016.2 Help :: Joining Lines and Literals
PhpStorm 2016.2 Help :: Joining Lines and Literals
こうして
Ctrl+Shift+J
じゃーん
こういうふうにしても
Ctrl+Shift+J
じゃーん
こういうのも
Ctrl+Shift+J
このとおり。
あ、ちなみにバックスペースだとこのありさま... 文字列は構文じゃないので賢いバックスペースでもだめですね。
さーて、ほんとにやりたいのはここからですよ。
まとめてどーんと結合じゃなくて、どこを結合したいかを丁寧に考えたいとき、ありますよね。範囲選択せずに使うのがこいつの本来の機能です。
この行は次の行と合体したいなーと思う行にカーソルがいる状態で、
Ctrl+Shift+J
合体
そのままカーソル移動操作せず、さらに連打
閉じカッコのほうも合体 (ここはバックスペースでもいいけど)
選択範囲を Alt+↑
の連打で (構文構造的にきっちり) 広げて
いじったとこだけ Reformat Code (Cmd+Alt+L
)
こういうカッコがネストしたコードの整形、PHPでは (もしかしたらJSのほうが...まあどっちにしろそのへんのWeb開発で) よくある操作パターンだと思います。カーソル移動ちまちまやっててイラッと来たときにどうぞ。