Skip to content

gwt-spec: C# LSP・コード編集 #153

@akiojin

Description

@akiojin

Spec

Background

ドメイン仕様書: C# LSP・コード編集

作成日: 2026-04-05
ステータス: active

自己完結型の C# Language Server (LSP) を使用したシンボル検索・参照検索・構造化編集・軽量スニペット編集・リネーム・インデックス管理機能と、apply_patch を不要にするための C# 編集ワークフロー強化を統合するドメイン。Unity 通信に依存せず、ローカルで C# コードを安全に操作する基盤を提供する。

Ubiquitous Language

TODO

User Stories

TODO

Acceptance Scenarios

TODO

Edge Cases

TODO

Functional Requirements

TODO

Non-Functional Requirements

TODO

Success Criteria

TODO


Domain-Specific Details

対象コマンド群

検索・ナビゲーション:

  • find_symbols -- シンボル検索(名前/種別/スコープ)
  • find_refs -- 参照検索(ページング対応)
  • get_symbols -- ファイル内シンボル定義取得

構造化編集:

  • edit_structured -- メソッド本体置換/クラスメンバー挿入
  • edit_snippet -- 軽量スニペット編集(アンカーベース、80 文字以内)
  • refactor_rename -- プロジェクト全体リネーム

ファイル操作(#107 由来):

  • write_csharp_file -- 既存 C# ファイル全文置換(validate + apply)
  • create_csharp_file -- 任意 C# ファイル新規作成
  • apply_csharp_edits -- 複数ファイル atomic 編集

インデックス管理:

  • build_index -- バックグラウンドインデックスビルド
  • get_index_status -- インデックス状態・進捗確認

設定操作(#107 由来):

  • get_project_setting / set_project_setting
  • get_package_setting / set_package_setting

完了済み機能

  • ✅ C# LSP 統合機能: シンボル検索、参照検索、構造化編集、軽量スニペット編集、リネーム、インデックス管理、バックグラウンドビルド、初回起動高速化、LSP プロセス分離、バージョン切替、サーバー識別 (旧 機能仕様書: C# LSP統合機能 #95)
  • ✅ apply_patch 不要化: write 系 default LSP 化、統一レスポンス contract、namePath 整合修正、write_csharp_file / create_csharp_file / apply_csharp_edits、post-write pipeline 共通化、project/package settings API、回帰テスト (旧 機能仕様書: apply_patch不要を目指すC#編集ワークフロー強化 #107)

Plan

#95 の残存未実装項目:

  • US-10 (Worker Threads による非ブロッキングビルド) は Spec に記載あるが未実装。バックグラウンドビルド中の他ツール応答遅延が問題になった場合に着手。

Tasks

  • US-10: Worker Threads による非ブロッキングビルド(優先度低 -- 問題顕在化時に着手)
    • バックグラウンドビルド実行中も ping が 1 秒以内に応答すること
    • worker_threads モジュールでビルドを分離

TDD

  • US-10 着手時: RED -- ビルド中の ping 応答 1 秒超過テスト → GREEN -- Worker Threads 分離 → REFACTOR

旧Issue参照

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions