VS Codeで " { " を改行させない
きっかけ
MacBookProのOSをCatalinaからMojaveにダウングレードさせる際、アップデート時にバックアップを取っていなかったためMBPを出荷時の状態に戻す作業が必要であり、当然VSCodeの設定もやり直さねばならなかた。 宗教的に様々な流儀があるが、私はC言語系の波括弧は関数やif文の ()の後ろに改行なしで書きたい。
VSCodeでは()の後ろに改行を挟んで { を記述することがデフォルトのフォーマット様式になっている。
というわけで、今後もPCの買い替えなどでVSCodeの再設定の機会があるだろうし備忘録として書き残しておく。
1 : Clang-FormatをVSCodeへインストール
まず、VSCodeの拡張機能からClang-Formatをインストールする。
これによってVSCodeでClang-Formatを使用できるようになった。
2 : clang-formatをMacへインストール
次にMac本体へclang-formatをインストールする。
これをターミナルに入力。
これにより 1 でVSCodeにインストールした拡張機能を使用できるようになったが、後もう1ステップだけ必要になる。
3 : .clang-formatファイルを作成する
1 の拡張はカレントディレクトリ or ルートディレクトリに置かれている.clang-formatというファイルに書かれているフォーマット設定をコードの整形に反映させる。
以下をターミナルに入力して、その.clang-formatファイルを作成する。
$ clang-format -dump-config -style="@@@" > .clang-format
@@@の箇所には自分の好みのフォーマットスタイルを指定する。 使えるのは以下の通り。
・Visual Studio
・LLVM
・Google
・Chromium
・Mozilla
・Webkit
どれを使用するかは完全に好みだがWebkit以外では、コードの一行が長く、そこにコメントがついている箇所では、気持ち悪い改行が自動で挟まれる。
GoogleやLLVMを使用すれば、それだけで主題の { 問題は解決されるのだが、上に示したコードの折り返し問題が新たに発生する。
Googleなどをスタイルに適用して折り返し問題に対応するより、Webkitを適用して { 問題を処理する方がシンプルで簡単であると踏んで私はWebkitを採用した。
4 : .clang-formatを編集する
上記の手順でルートディレクトリに.clang-formatファイルが作成できたので、次はこれを編集していく。
ターミナルに
$ vi .clang-format
と入力し編集していく。 今回は波括弧をどうにかしたいのでBreakBeforeBracesの項目を編集する。
上の図のようにこの項目をAttachにすることで波括弧を全て ) と同じ行に表示することが可能になった。
快適なプログラミングライフを!
その他の項目についてはこのページに丁寧にまとめられている。
参考ページ
https://blog.takuchalle.dev/post/2018/04/26/setup_clang_format/