Visual Studio CodeでC言語を行頭かっこじゃないようにオートフォーマットする

やりたいこと

Cのコードをこのスタイルにフォーマットしたい。開始かっこの改行なし、タブサイズは4。

#include <stdio.h>

int main(void) {
    printf("hello, world\n");
    return 0;
}

結論

settings.jsonに以下を追記して解決。

"C_Cpp.clang_format_style": "{BasedOnStyle: Google, IndentWidth: 4}"

参考:https://stackoverflow.com/questions/45823734/vs-code-formatting-for

Visual Studio Codeの自動整形について

C/C++用のextension(C/C++)を入れると、「Shift+Option+F(Mac)」で自動整形されるようになる。
またはテキストエリア上で「右クリック」→「Format Document」でも可能。

試行錯誤のログ

C/C++のデフォルトでは、自動フォーマットは開始かっこ { が新しい行に来る。
でも{ の前は改行されないスタイルの方が好みなんだ…!
Googleのスタイルガイドだとこの形式らしい。C++用っぽいけれど。
https://google.github.io/styleguide/cppguide.html

settings.jsonに以下を書けば適用される。
Cmd+,で環境設定を開いてから、画面右上の スクリーンショット 2020-03-01 17.35.14.png (Open Settings (JSON))をクリックして開く。

"C_Cpp.clang_format_style": "Google"

ただしこれだとタブサイズが2。タブは4がいい…。

ので、ここだけ上書きする設定をする。
失敗:言語ごとの設定として、以下のように書いてもtabSize: 4は全然効かなかった。ずっと2でフォーマットされた。

{
    "C_Cpp.clang_format_style": "Google",
    "[c]": {
        "editor.tabSize": 4
    }
}

こちらが正解。(再掲)

"C_Cpp.clang_format_style": "{BasedOnStyle: Google, IndentWidth: 4}"

ついでに

ファイル保存時に自動でフォーマッタが動くように設定追加。

{
    "editor.formatOnType": true,
    "editor.formatOnSave": true,
    "C_Cpp.clang_format_style": "{BasedOnStyle: Google, IndentWidth: 4}"
}
myy
ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
コメント
この記事にコメントはありません。
あなたもコメントしてみませんか :)
すでにアカウントを持っている方は
ユーザーは見つかりませんでした