# F# Visual Studio 統合 画面遷移図

本ドキュメントでは、F# Visual Studio 統合における画面遷移を図示します。

## 全体概要

F# Visual Studio 統合は主に以下の3つの画面カテゴリで構成されています:

1. **Visual Studio オプション画面** - F# 言語サービスの設定を行うオプションページ群
2. **Visual Studio ツールウィンドウ** - F# Interactive セッションを実行するためのツールウィンドウ
3. **プロジェクトプロパティ画面** - F# プロジェクトの設定を行うプロパティページ群

## 画面遷移図

### Visual Studio オプション画面の遷移

```mermaid
flowchart TB
    subgraph VS["Visual Studio"]
        Menu["ツール メニュー"]
        Options["オプション ダイアログ"]

        subgraph FSharpOptions["F# オプション"]
            IS["IntelliSense オプション設定画面"]
            QI["QuickInfo オプション設定画面"]
            CF["Code Fixes オプション設定画面"]
            AO["詳細設定オプション画面"]
            LP["言語サービスパフォーマンスオプション画面"]
            FO["フォーマットオプション画面"]
        end
    end

    Menu -->|"オプション"| Options
    Options -->|"テキストエディター > F# > IntelliSense"| IS
    Options -->|"テキストエディター > F# > Quick Info"| QI
    Options -->|"テキストエディター > F# > Code Fixes"| CF
    Options -->|"テキストエディター > F# > Advanced"| AO
    Options -->|"テキストエディター > F# > Performance"| LP
    Options -->|"テキストエディター > F# > Formatting"| FO

    IS <-->|"タブ切替"| QI
    QI <-->|"タブ切替"| CF
    CF <-->|"タブ切替"| AO
    AO <-->|"タブ切替"| LP
    LP <-->|"タブ切替"| FO
```

### F# Interactive ツールウィンドウの遷移

```mermaid
flowchart TB
    subgraph VS["Visual Studio"]
        ViewMenu["表示 メニュー"]
        OtherWindows["その他のウィンドウ"]
        FSIWindow["F# Interactive ツールウィンドウ"]

        subgraph Editor["エディターウィンドウ"]
            Code["F# コード"]
        end
    end

    ViewMenu -->|"その他のウィンドウ"| OtherWindows
    OtherWindows -->|"F# Interactive"| FSIWindow
    Code -->|"選択部分を送信 (Alt+Enter)"| FSIWindow
    Code -->|"行を送信"| FSIWindow
    FSIWindow -->|"結果表示"| FSIWindow
```

### プロジェクトプロパティ画面の遷移

```mermaid
flowchart TB
    subgraph VS["Visual Studio"]
        SE["ソリューション エクスプローラー"]
        Project["F# プロジェクト"]

        subgraph PropPages["プロジェクト プロパティ"]
            App["アプリケーションプロパティページ"]
            Build["ビルドプロパティページ"]
            Debug["デバッグプロパティページ"]
            BE["ビルドイベントプロパティページ"]
            Ref["参照パスプロパティページ"]
        end

        subgraph Dialogs["ダイアログ"]
            BEDialog["ビルドイベントコマンドラインダイアログ"]
            PPHost["プロパティページホストダイアログ"]
        end
    end

    SE -->|"右クリック > プロパティ"| Project
    Project -->|"プロパティ"| PropPages

    App <-->|"タブ切替"| Build
    Build <-->|"タブ切替"| Debug
    Debug <-->|"タブ切替"| BE
    BE <-->|"タブ切替"| Ref

    BE -->|"ビルド前/後イベント編集"| BEDialog
    BEDialog -->|"OK/キャンセル"| BE

    PropPages -.->|"ダイアログ表示時"| PPHost
```

## 画面間の関係性

| 起点画面 | 遷移先画面 | 遷移条件 |
|---------|----------|---------|
| ツールメニュー | オプションダイアログ | 「オプション」選択 |
| オプションダイアログ | F# IntelliSense オプション | 「テキストエディター > F# > IntelliSense」選択 |
| オプションダイアログ | F# QuickInfo オプション | 「テキストエディター > F# > Quick Info」選択 |
| オプションダイアログ | F# Code Fixes オプション | 「テキストエディター > F# > Code Fixes」選択 |
| オプションダイアログ | F# 詳細設定オプション | 「テキストエディター > F# > Advanced」選択 |
| オプションダイアログ | F# パフォーマンスオプション | 「テキストエディター > F# > Performance」選択 |
| オプションダイアログ | F# フォーマットオプション | 「テキストエディター > F# > Formatting」選択 |
| 表示メニュー | F# Interactive | 「その他のウィンドウ > F# Interactive」選択 |
| エディター | F# Interactive | 選択部分を送信 (Alt+Enter) |
| ソリューションエクスプローラー | プロジェクトプロパティ | プロジェクト右クリック > プロパティ |
| ビルドイベントプロパティページ | コマンドラインダイアログ | 「ビルド前/後イベント」編集ボタン |

## 備考

- 本プロジェクトはF#コンパイラおよびVisual Studio統合のリポジトリであり、Webアプリケーションやモバイルアプリケーションのような複雑な画面遷移は存在しません
- 各オプション画面はVisual Studioのオプションダイアログ内でタブとして表示され、相互に遷移可能です
- プロジェクトプロパティの各ページもタブとして表示され、相互に遷移可能です
- F# Interactiveはツールウィンドウとして常時表示され、エディターから直接コードを送信できます
