VScodeでclang-formatを設定した

投稿者: | 2020年5月31日

エディターをVscodeに変えて2週間ぐらい。最低限の環境は整えましたが、フォーマッタの設定を後回しにしていました。そのためAtCoderの過去問を解きながら、「その整形はしなくていい!!」と騒ぐぐらいストレスフルな環境なので、やっと重い腰を上げてフォーマッタを設定しました。

1.Windowsの場合

1.環境

我が家の環境です。

  • windows10 Pro biuld:18363.836
  • VScode 1.45.1
  • C/C++ 0.28.1
  • C++ Intellisense 0.2.2

2.Vscodeにclang-formatをインストール

拡張機能からclang-formatをインストール。

3.LLVMをインストール

LLVM Download Pageからwindows(64-bit)(.sig)をダウンロードし、インストール。インストーラーがPathを通すかどうか尋ねてくるので、今のユーザか全てのユーザにPathを通しておきます。

4.clang-formatのPathが通ってるかチェック

コマンドプロンプトやPowershellを開いて、

clang-format.exe --version

と打ち、バージョンが表示されたらPathは通っています。

5.setting.jsonを更新

setting.jsonに次の行を追加します。(LLVMインストール先をデフォルトから変えてなければこのまま)

"clang-format.executable": "C:/Program Files/LLVM/bin/clang-format.exe",

最後のカンマは必要です。また、clang-format.exeの場所を検索してルートをコピーしてきた場合、¥でディレクトリが区切られるので、全部スラッシュ"/"に変えないといけません。

あとは.clang-formatを書けばいい感じに動きます。.clang-formatについては後述します。

2.Macの場合

1.環境

  • macOS Catalina ver.10.15.4
  • VScode 1.45.1
  • C/C++ 0.28.1
  • C++ Intellisense 0.2.2

2.VScodeにclang-formatをインストール

拡張機能からclang-formatを検索、インストール。

3.clang-formatをインストール

brew install clang-format

4.clang-formatのPathをチェック

clang-format --version

バージョンが表示されればpathは通ってます。

5.setting.jsonを更新

setting.jsonに次の行を追加します。

"clang-format.executable": "/usr/local/bin/clang-format",

clang-formatの位置は、

which clang-format

で調べられます。

これでmacの場合のVScodeのclang-formatの設定は終わりです。.clang-formatについては後述。

3. .clang-formatの設定

VScodeのプロジェクトのルートに移動して、コマンドプロンプトやターミナルに次のコマンドを打ちます。(windows/Mac共通)

clang-format -dump-config -style=Google > .clang-format

これで設定項目を全て吐き出してくれるので、clang-formatを開くとおびただしい設定項目が出てきます。後は好みに合わせて設定を書き換えていきます。

これでファイルを保存する度にフォーマッタが自動で整形してくれるはずです。

以下は、私の環境でのトラブルシューティングです。

4.タイプする度に整形される

正確にはセミコロンを打つと勝手に整形される場合の対処法です。コードを書いているときに行があっちこっち行くのはイライラします。なので、ファイルを保存したときだけ整形するようにします。

コマンドパレットを開き、"Setting(JSON)を開く"でsetting.jsonを開く。その後、

"editor.formatOnType": false,

を追加します。

5. .clang-formatが見当たらない

macで作業しているときの私のミスです。.clang-formatは隠しファイルとして扱われるらしいので、

ls -a

と打たないと表示されません。

6.参考文献

WindowsのVSCodeでclang-formatが効かない時の確認と対処

Visual Studio CodeでC++ソースを自分好みにフォーマットしたい

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください