結論から先に
settings.jsonに以下を追加する。
"C_Cpp.clang_format_style": "{BasedOnStyle: Google, IndentWidth: 4, BreakBeforeBraces: Stroustrup, TabWidth: 4, UseTab: Always}",
"editor.formatOnSave": true,
背景
最近C言語での開発をするチームのお手伝いを始めました。(人がどんどんいなくなるので)
普段Pythonを書いているときには、blackによるオートフォーマッタで楽をさせてもらっているので、C言語でもオートフォーマッタの設定を行いました。
現状のチームのコーディングスタイル
チームでは以下のようなコーディングスタイルを採用しており、これに合うようなフォーマッタの設定を行いました。
- 関数の後の波かっこ{}は改行する
void Hoge(void)
{
# 処理
}
- if ~ else文はブロックごとに改行
if (a > 0) {
# 処理
}
else if(a < 0) {
# 処理
}
else {
# 処理
}
- インデントはタブを使う
- タブのサイズは4
フォーマッタの設定
BasedOnStyle: Google
基本スタイルの設定。Googleにすると、#includeの部分とかいい感じに整えてくれるので好きです。
特にこだわりが無ければ、
"C_Cpp.clang_format_style": "{BasedOnStyle: Google, IndentWidth: 4}",
とするだけで、十分見た目きれいになります。
IndentWidth: 4
インデントの幅を4に指定
BreakBeforeBraces: Stroustrup
波かっこの改行の設定。Stroustrupにすると、関数の後の改行、if~else文のブロックごとの改行などをやってくれます。
##TabWidth: 4
タブのサイズを4に指定
##UseTab: Always
タブを使うように指定