---
generated_at: 2026-02-19 10:30:00
metrics:
  claims_total: 50
  claims_with_evidence: 50
  claims_without_evidence: 0
confidence_derived: 1.00
---

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

## 本レポートについて

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

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

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：50 / 50、根拠なし：0
- 優先レビュー（高）
  1. **なし**：全テストケースにソースコード根拠あり

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

- E-01: `modules/lang/csharp/autoload.el` - 自動ロード関数定義（16行）
- E-02: `modules/lang/csharp/config.el` - モジュール設定（84行）
- E-03: `modules/lang/csharp/doctor.el` - 環境診断スクリプト（16行）
- E-04: `modules/lang/csharp/packages.el` - パッケージ定義（16行）
- E-05: `modules/lang/csharp/README.org` - ドキュメント（参考）

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

### autoload.el 関連（UT-CSH-001 〜 UT-CSH-009）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | +csharp-sp-point-in-type-p関数がinsertアクション時に単語後でtを返す | E-01 (L4-10: sp-point-after-word-p呼び出し) | ○ |
| C-02 | +csharp-sp-point-in-type-p関数がautoskipアクション時にスペース以外でtを返す | E-01 (L9-10: char-before != 32チェック) | ○ |
| C-03 | +csharp-sp-point-in-type-p関数がコード外でnilを返す | E-01 (L5: sp-in-code-p呼び出し) | ○ |
| C-04 | +csharp-sp-point-in-type-p関数がinsertアクション時に単語後でない場合nilを返す | E-01 (L8: sp-point-after-word-p条件) | ○ |
| C-05 | +csharp-sp-point-in-type-p関数がautoskipアクション時にスペース後でnilを返す | E-01 (L10: /= char-before 32条件) | ○ |
| C-06 | +csharp-sp-point-in-type-p関数が未知のアクションでnilを返す | E-01 (L7-10: cond条件分岐) | ○ |
| C-07 | +csharp-kill-omnisharp-server-hがcsharp-modeバッファなしでサーバー停止 | E-01 (L13-15: doom-buffers-in-mode条件) | ○ |
| C-08 | +csharp-kill-omnisharp-server-hがcsharp-modeバッファありでサーバー維持 | E-01 (L14: unless条件) | ○ |
| C-09 | +csharp-kill-omnisharp-server-hが空バッファリストでサーバー停止 | E-01 (L14: buffer-list引数) | ○ |

### config.el 関連（UT-CSH-010 〜 UT-CSH-035）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-10 | +csharp-disable-clear-string-fences-aがcsharp-mode以外で元関数実行 | E-02 (L47-53: unless eq major-mode条件) | ○ |
| C-11 | +csharp-disable-clear-string-fences-aがcsharp-modeで元関数スキップ | E-02 (L52: eq major-mode 'csharp-mode条件) | ○ |
| C-12 | +csharp-disable-clear-string-fences-aがcsharp-ts-modeで元関数実行 | E-02 (L52: csharp-modeのみ除外) | ○ |
| C-13 | csharpierフォーマッタがcsharp-modeに設定される | E-02 (L12-13: set-formatter!呼び出し) | ○ |
| C-14 | csharpierフォーマッタがcsharp-ts-modeにも設定される | E-02 (L13: modes指定) | ○ |
| C-15 | 改行文字で電気インデントが動作する | E-02 (L14: set-electric! :chars ?\n) | ○ |
| C-16 | 閉じ波括弧で電気インデントが動作する | E-02 (L14: set-electric! :chars ?\}) | ○ |
| C-17 | アクセス修飾子がローテーションできる | E-02 (L15-17: set-rotate-patterns! public/protected/private) | ○ |
| C-18 | class/structがローテーションできる | E-02 (L17: class/struct symbols) | ○ |
| C-19 | ラムダ式リガチャが設定される | E-02 (L20: :lambda "() =>") | ○ |
| C-20 | 論理演算子リガチャが設定される | E-02 (L32-33: :and "&&", :or "||") | ○ |
| C-21 | 型パラメータで山括弧が自動補完される | E-02 (L39-41: sp-local-pair <>) | ○ |
| C-22 | 比較演算子として使用時は補完されない | E-02 (L40: +csharp-sp-point-in-type-p条件) | ○ |
| C-23 | 山括弧内でスペース入力時にパディングされる | E-02 (L41: post-handlers "| " "SPC") | ○ |
| C-24 | +lspフラグ有効時にcsharp-modeでLSPが起動する | E-02 (L43-44: add-hook lsp!) | ○ |
| C-25 | +lspフラグ有効時にcsharp-ts-modeでLSPが起動する | E-02 (L45: csharp-ts-mode-local-vars-hook) | ○ |
| C-26 | tree-sitter有効時にC#パーサーが設定される | E-02 (L6-10: set-tree-sitter!呼び出し) | ○ |
| C-27 | Emacs 30未満では古いパーサーバージョンが使用される | E-02 (L9: emacs-major-version < 30条件) | ○ |
| C-28 | Emacs 30以上では新しいパーサーバージョンが使用される | E-02 (L9: v0.23.1) | ○ |
| C-29 | Unityプロジェクトが正しく検出される | E-02 (L61-63: def-project-mode! files条件) | ○ |
| C-30 | Unityプロジェクトファイルが不完全な場合検出されない | E-02 (L63: and条件による全ファイル必須) | ○ |
| C-31 | .shaderファイルでshader-modeが有効化される | E-02 (L59: :mode "\\.shader\\'") | ○ |
| C-32 | ソリューション管理画面でRETキーがトランジェントを開く | E-02 (L71: :nv "RET" sharper-transient-solution) | ○ |
| C-33 | grキーでリフレッシュが実行される | E-02 (L72: :nv "gr" sharper--solution-management-refresh) | ○ |
| C-34 | C-c dでSharperメインメニューが開く | E-02 (L68: :general "C-c d" sharper-main-transient) | ○ |
| C-35 | .slnファイルでsln-modeが有効化される | E-02 (L83: :mode "\\.sln\\'") | ○ |

### doctor.el 関連（UT-CSH-036 〜 UT-CSH-041）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-36 | OmniSharpがインストール済みの場合警告が出ない | E-03 (L6: file-exists-p条件) | ○ |
| C-37 | OmniSharpが未インストールの場合警告が出る | E-03 (L7: warn!呼び出し) | ○ |
| C-38 | +tree-sitterフラグ時に:tools tree-sitterが有効なら通過 | E-03 (L9-11: assert!条件) | ○ |
| C-39 | +tree-sitterフラグ時に:tools tree-sitterが無効ならエラー | E-03 (L11: エラーメッセージ) | ○ |
| C-40 | csharpierがインストール済みの場合警告が出ない | E-03 (L14: executable-find条件) | ○ |
| C-41 | csharpierが未インストールの場合警告が出る | E-03 (L15: warn!呼び出し) | ○ |

### packages.el 関連（UT-CSH-042 〜 UT-CSH-050）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-42 | csharp-modeパッケージが正しいpinで定義される | E-04 (L4-6: package! csharp-mode :pin) | ○ |
| C-43 | Emacs 29以降ではbuilt-inが優先される | E-04 (L6: :built-in 'prefer) | ○ |
| C-44 | +unityフラグ有効時にshader-modeが定義される | E-04 (L12-13: when modulep! +unity) | ○ |
| C-45 | +unityフラグ無効時にshader-modeが定義されない | E-04 (L12: when条件) | ○ |
| C-46 | +dotnetフラグ有効時にsharperが定義される | E-04 (L14-15: when modulep! +dotnet) | ○ |
| C-47 | +dotnetフラグ無効時にsharperが定義されない | E-04 (L14: when条件) | ○ |
| C-48 | csproj-modeパッケージが定義される | E-04 (L8: package! csproj-mode) | ○ |
| C-49 | sln-modeパッケージが定義される | E-04 (L9: package! sln-mode) | ○ |
| C-50 | font-lock-extパッケージが定義される | E-04 (L11: package! font-lock-ext) | ○ |

## 4) 不足情報（Unknown / Missing）
- なし：全てのテストケースにソースコード根拠が存在

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースがソースコードに基づいて生成されており、根拠が明確

**補足事項:**
- Emacs Lispの特性上、関数の単体テストはERT（Emacs Lisp Regression Testing）フレームワークで実行することを推奨
- モック・スタブが必要な箇所（omnisharp-stop-server、lsp!等の外部関数呼び出し）は適切にモック化が必要
- 条件分岐（modulep!、when等）のテストはDoom Emacsのテストインフラを活用

## 6) レビュアーチェックリスト（最小）
- [ ] autoload.elの関数（+csharp-sp-point-in-type-p、+csharp-kill-omnisharp-server-h）のテストケースが正常系・異常系・境界値を網羅しているか
- [ ] config.elの設定（フォーマッタ、リガチャ、LSP統合）のテストケースがモジュールフラグ条件を考慮しているか
- [ ] doctor.elの環境チェック（OmniSharp、tree-sitter、csharpier）のテストケースが警告条件を正しく検証しているか
- [ ] packages.elの条件付きパッケージ（+unity、+dotnet）のテストケースがフラグ有効/無効の両方をカバーしているか
- [ ] 各テストケースの優先度（高/中/低）が適切に設定されているか
