Linter (cm lint)

Cmには静的解析ツール(Linter)が組み込まれています。コードの品質問題を検出し、改善のヒントを提供します。

基本的な使い方

# 単一ファイルをチェック
./cm lint src/main.cm

# ディレクトリ内を再帰的にチェック
./cm lint src/

チェック項目

1. 命名規則

Cmでは以下の命名規則を推奨しています:

対象 規則
変数・関数 snake_case my_variable, calc_sum
型・構造体 PascalCase MyStruct, HttpClient
定数 SCREAMING_SNAKE_CASE MAX_SIZE, PI
// ⚠️ 警告: 変数名はsnake_caseを推奨
int myVariable = 10;  // → my_variable

// ✅ OK
int my_variable = 10;

2. 未使用変数

使用されていない変数を検出します:

int main() {
    int x = 10;  // ⚠️ 警告: 変数 'x' が未使用
    return 0;
}

3. const推奨

変更されない変数にconstを推奨します:

int main() {
    int size = 100;  // ⚠️ 警告: 'size'はconstにできます
    println("Size: {size}");
    return 0;
}

設定ファイル (.cmlint.yml)

プロジェクトルートに.cmlint.ymlを配置してルールを設定できます:

# 命名規則チェックを有効化
naming:
  enabled: true
  variables: snake_case
  types: PascalCase

# 未使用変数チェックを有効化
unused:
  enabled: true
  warn_unused_params: false  # 未使用引数は警告しない

# const推奨を無効化
const_suggestion:
  enabled: false

出力例

warning: variable 'myValue' should use snake_case naming
  --> src/main.cm:5:9
  |
5 |     int myValue = 10;
  |         ^^^^^^^
  |
  = help: consider renaming to 'my_value'

warning: unused variable 'x'
  --> src/main.cm:8:9
  |
8 |     int x = 42;
  |         ^
  |

関連項目


最終更新: 2026-02-08