Formatter (cm fmt)

Cmにはコードフォーマッターが組み込まれています。一貫したコードスタイルを維持できます。

基本的な使い方

# フォーマット結果を表示
./cm fmt src/main.cm

# ファイルに書き込み
./cm fmt -w src/main.cm

# ディレクトリ内を再帰的にフォーマット
./cm fmt -w src/

フォーマットルール

1. ブレーススタイル(K&Rスタイル)

開き括弧は同じ行に配置されます:

// Before
int main()
{
    if (x > 0)
    {
        return 1;
    }
}

// After
int main() {
    if (x > 0) {
        return 1;
    }
}

2. インデント(4スペース)

インデントは4スペースで統一されます:

// Before
int main() {
  int x = 10;
      int y = 20;
}

// After
int main() {
    int x = 10;
    int y = 20;
}

3. 単一行ブロックの保持

短いブロックは単一行のまま保持されます:

// 単一行のラムダは保持
arr.map(|x| => x * 2);

// 単一行のif文も保持可能
if (x > 0) { return true; }

4. 空行の正規化

連続する空行は1行に減らされます:

// Before
int main() {
    int x = 10;



    return x;
}

// After
int main() {
    int x = 10;

    return x;
}

使用例

Before

int main(){
int x=10;
  int y   =  20;
if(x>y){
return x;
}else{
return y;
}
}

After

int main() {
    int x = 10;
    int y = 20;
    if (x > y) {
        return x;
    } else {
        return y;
    }
}

CIでの使用

コードスタイルをCIでチェックする場合:

# フォーマットが必要かチェック(差分があれば失敗)
./cm fmt --check src/

関連項目


最終更新: 2026-02-08