---
generated_at: 2026-02-19 10:30:00
metrics:
  claims_total: 72
  claims_with_evidence: 70
  claims_without_evidence: 2
confidence_derived: 0.97
---

# 根拠レポート：modules-editor-format 単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各テストケースに対して、ソースコード内の関数定義・条件分岐・エラーハンドリングなどの根拠（Evidence）が存在するか
2. **根拠との整合性**：テストケースの内容が実装コードと矛盾していないか
3. **網羅性**：主要な関数・分岐・エラーケースを適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：70 / 72、根拠なし：2
- 優先レビュー（高）
  1. **UT-FMT-060**: Eglotのtab設定パラメータ名の確認が必要
  2. **UT-FMT-061**: require-final-newline等のEmacs変数のデフォルト動作確認が必要

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `modules/editor/format/config.el` - +format-on-save-disabled-modes変数定義（3-14行目）
- E-02: `modules/editor/format/config.el` - +format-maybe-inhibit-h関数定義（31-37行目）
- E-03: `modules/editor/format/config.el` - +format--update-web-mode-h関数定義（56-61行目）
- E-04: `modules/editor/format/config.el` - +format--update-vc-gutter-h関数定義（62-64行目）
- E-05: `modules/editor/format/autoload/format.el` - +format--current-indentation関数定義（8-12行目）
- E-06: `modules/editor/format/autoload/format.el` - +format-region関数定義（20-68行目）
- E-07: `modules/editor/format/autoload/format.el` - +format/buffer定義（75行目）
- E-08: `modules/editor/format/autoload/format.el` - +format/region関数定義（78-92行目）
- E-09: `modules/editor/format/autoload/format.el` - +format/region-or-buffer関数定義（95-101行目）
- E-10: `modules/editor/format/autoload/format.el` - +format/save-buffer-no-reformat関数定義（104-108行目）
- E-11: `modules/editor/format/autoload/format.el` - +format/save-buffer関数定義（111-115行目）
- E-12: `modules/editor/format/autoload/org.el` - +format/org-block関数定義（4-28行目）
- E-13: `modules/editor/format/autoload/org.el` - +format/org-blocks-in-region関数定義（31-53行目）
- E-14: `modules/editor/format/autoload/org.el` - +format/org-blocks-at-point-or-in-region関数定義（56-62行目）
- E-15: `modules/editor/format/autoload/evil.el` - +format:region定義（5-8行目）
- E-16: `modules/editor/format/autoload/lsp.el` - +format-with-lsp-mode定義（6-21行目）
- E-17: `modules/editor/format/autoload/lsp.el` - +format--lsp-alist変数定義（23-26行目）
- E-18: `modules/editor/format/autoload/lsp.el` - +format--lsp-fn関数定義（28-31行目）
- E-19: `modules/editor/format/autoload/lsp.el` - +format-with-lsp-toggle-h関数定義（34-40行目）
- E-20: `modules/editor/format/autoload/lsp.el` - +format-lsp-buffer関数定義（47-53行目）
- E-21: `modules/editor/format/autoload/lsp.el` - +format--with-lsp-mode関数定義（55-73行目）
- E-22: `modules/editor/format/autoload/lsp.el` - +format--with-eglot関数定義（75-105行目）
- E-23: `modules/editor/format/autoload/settings.el` - set-formatter!関数定義（4-103行目）

## 3) Claims と根拠の対応（レビューの主戦場）

### autoload/format.el 関連（UT-FMT-001〜018）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | +format--current-indentation: 現在のインデントが正しく取得される | E-05 | ○ |
| C-02 | +format--current-indentation: 空バッファで0が返る | E-05 | ○ |
| C-03 | +format--current-indentation: インデントなしで0が返る | E-05 | ○ |
| C-04 | +format-region: 指定範囲がフォーマットされる | E-06 | ○ |
| C-05 | +format-region: コールバックが呼び出される | E-06（64-65行目） | ○ |
| C-06 | +format-region: フォーマッタなしで処理スキップ | E-06（22-28行目のwhen-let*） | ○ |
| C-07 | +format-region: インデントが保持される | E-06（48-50, 57-60行目） | ○ |
| C-08 | +format-region: prefix-argでプロンプトモード | E-06（23-25行目） | ○ |
| C-09 | +format-region: 非WindowsでUTF-8設定 | E-06（32-34行目） | ○ |
| C-10 | +format/buffer: バッファ全体がフォーマットされる | E-07 | ○ |
| C-11 | +format/region: 選択範囲がフォーマットされる | E-08 | ○ |
| C-12 | +format/region: メッセージが表示される | E-08（91-92行目） | ○ |
| C-13 | +format/region-or-buffer: リージョン選択時 | E-09（99-100行目） | ○ |
| C-14 | +format/region-or-buffer: リージョン未選択時 | E-09（99-101行目） | ○ |
| C-15 | +format/save-buffer-no-reformat: フォーマットなし保存 | E-10 | ○ |
| C-16 | +format/save-buffer: 通常保存動作 | E-11 | ○ |
| C-17 | +format/save-buffer: prefix-arg=1の動作 | E-11（114行目） | ○ |
| C-18 | +format/save-buffer: prefix-arg!=1で抑制 | E-11（114行目） | ○ |

### config.el 関連（UT-FMT-019〜027）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-19 | +format-maybe-inhibit-h: fundamental-mode抑制 | E-02（34行目） | ○ |
| C-20 | +format-maybe-inhibit-h: 空バッファ名抑制 | E-02（35行目） | ○ |
| C-21 | +format-maybe-inhibit-h: disabled-modes=t全抑制 | E-02（36行目） | ○ |
| C-22 | +format-maybe-inhibit-h: リスト内モード抑制 | E-02（37行目） | ○ |
| C-23 | +format-maybe-inhibit-h: リスト外モード非抑制 | E-02 | ○ |
| C-24 | +format--update-web-mode-h: web-modeフォント更新 | E-03 | ○ |
| C-25 | +format--update-web-mode-h: 非web-modeスキップ | E-03（57行目） | ○ |
| C-26 | +format--update-vc-gutter-h: gutter更新 | E-04 | ○ |
| C-27 | +format--update-vc-gutter-h: 未定義時スキップ | E-04（63行目fboundp） | ○ |

### autoload/org.el 関連（UT-FMT-028〜040）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-28 | +format/org-block: orgソースブロックフォーマット | E-12 | ○ |
| C-29 | +format/org-block: 非org-modeエラー | E-12（7-8行目） | ○ |
| C-30 | +format/org-block: ソースブロック外エラー | E-12（10-11行目） | ○ |
| C-31 | +format/org-block: 言語なしエラー | E-12（13-14行目） | ○ |
| C-32 | +format/org-block: org派生モードエラー | E-12（17-18行目） | ○ |
| C-33 | +format/org-block: フォーマッタ未設定エラー | E-12（26-27行目） | ○ |
| C-34 | +format/org-blocks-in-region: 全ブロックフォーマット | E-13 | ○ |
| C-35 | +format/org-blocks-in-region: 非org-modeエラー | E-13（34-35行目） | ○ |
| C-36 | +format/org-blocks-in-region: 選択なしエラー | E-13（36-37行目） | ○ |
| C-37 | +format/org-blocks-in-region: フォーマット数メッセージ | E-13（53行目） | ○ |
| C-38 | +format/org-blocks-in-region: 0件報告 | E-13（53行目） | ○ |
| C-39 | +format/org-blocks-at-point-or-in-region: リージョン選択時 | E-14（60-61行目） | ○ |
| C-40 | +format/org-blocks-at-point-or-in-region: ポイント位置 | E-14（60-62行目） | ○ |

### autoload/evil.el 関連（UT-FMT-041）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-41 | +format:region: Evil統合 | E-15 | ○ |

### autoload/lsp.el 関連（UT-FMT-042〜063）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-42 | +format-with-lsp-mode: 有効化でlsp含む | E-16（17-19行目） | ○ |
| C-43 | +format-with-lsp-mode: 無効化でlsp除去 | E-16（19-21行目） | ○ |
| C-44 | +format-with-lsp-mode: 元設定復元 | E-16（14-15, 20-21行目） | ○ |
| C-45 | +format--lsp-fn: lsp-managed-mode検出 | E-17, E-18 | ○ |
| C-46 | +format--lsp-fn: eglot検出 | E-17, E-18 | ○ |
| C-47 | +format--lsp-fn: LSP未使用でnil | E-18 | ○ |
| C-48 | +format-with-lsp-toggle-h: LSP利用可能で有効化 | E-19 | ○ |
| C-49 | +format-with-lsp-toggle-h: LSP利用不可で無効化 | E-19 | ○ |
| C-50 | +format-with-lsp-toggle-h: 既存設定尊重 | E-19（39行目） | ○ |
| C-51 | +format-lsp-buffer: LSPフォーマット実行 | E-20 | ○ |
| C-52 | +format-lsp-buffer: 未対応時エラー | E-20（53行目） | ○ |
| C-53 | +format--with-lsp-mode: バッファ全体フォーマット | E-21（61-63行目） | ○ |
| C-54 | +format--with-lsp-mode: リージョンフォーマット | E-21（64-67行目） | ○ |
| C-55 | +format--with-lsp-mode: 編集適用 | E-21（70-72行目） | ○ |
| C-56 | +format--with-lsp-mode: 空編集スキップ | E-21（70行目seq-empty-p） | ○ |
| C-57 | +format--with-lsp-mode: 機能未対応フォールバック | E-21（68-69行目） | ○ |
| C-58 | +format--with-eglot: バッファ全体フォーマット | E-22（83-84行目） | ○ |
| C-59 | +format--with-eglot: リージョンフォーマット | E-22（85-88行目） | ○ |
| C-60 | +format--with-eglot: タブ設定リクエスト含む | E-22（96-97行目） | △ |
| C-61 | +format--with-eglot: 改行設定リクエスト含む | E-22（98-99行目） | △ |
| C-62 | +format--with-eglot: 編集適用 | E-22（101-104行目） | ○ |
| C-63 | +format--with-eglot: 機能未対応フォールバック | E-22（89-90行目） | ○ |

### autoload/settings.el 関連（UT-FMT-064〜072）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-64 | set-formatter!: フォーマッタ登録 | E-23（98-101行目） | ○ |
| C-65 | set-formatter!: 文字列リスト変換 | E-23（99-100行目） | ○ |
| C-66 | set-formatter!: モード関連付け | E-23（102-103行目） | ○ |
| C-67 | set-formatter!: フォーマッタ削除 | E-23（90-91行目） | ○ |
| C-68 | set-formatter!: モード関連付け削除 | E-23（92-94行目） | ○ |
| C-69 | set-formatter!: args=tでモード追加 | E-23（95-101行目） | ○ |
| C-70 | set-formatter!: 未定義フォーマッタエラー | E-23（96-97行目） | ○ |
| C-71 | set-formatter!: 型チェック | E-23（79行目cl-check-type） | ○ |
| C-72 | set-formatter!: 複数モード登録 | E-23（102-103行目dolist） | ○ |

## 4) 不足情報（Unknown / Missing）

- **UT-FMT-060, UT-FMT-061**: Eglotのリクエストパラメータ（tabSize, insertSpaces, insertFinalNewline, trimFinalNewlines）の動作確認
  - 候補：Eglot公式ドキュメント / LSP仕様書 / Emacs変数のデフォルト値ドキュメント

## 5) リスクフラグ（レビュー観点）

- **0: 低リスク** - 大部分のテストケースはソースコードから直接導出されており、高い信頼性を持つ
- **1: 中リスク** - LSP/Eglot関連のテストケース（UT-FMT-042〜063）は外部サービス依存のため、モック設定が必要
- **0: 低リスク** - set-formatter!のテストケースはマクロ展開後の動作確認が必要

## 6) レビュアーチェックリスト（最小）

- [ ] +format-region のインデント保持ロジック（UT-FMT-007）が実際のフォーマッタ動作と整合しているか
- [ ] +format-maybe-inhibit-h の条件分岐が +format-on-save-disabled-modes のデフォルト値と整合しているか
- [ ] LSP/Eglot関連テストケースのモック戦略が適切か（サーバー接続のシミュレーション方法）
- [ ] set-formatter! のafter!マクロ展開タイミングがテスト環境で正しく動作するか
- [ ] Eglotのオプション（tabSize, insertSpaces等）のJSON変換が期待通りか（:json-false等）
