# 画面設計書 15-Lightline（ステータスライン）

## 概要

本ドキュメントは、space-vimにおけるLightline（ステータスライン）画面の設計を記述したものである。lightline.vimプラグインによって提供される軽量なステータスライン表示機能について、その構成・機能・操作方法を詳細に解説する。

### 本画面の処理概要

Lightline画面（正確には「ステータスライン表示」）は、vim-airlineの軽量な代替として機能するステータスラインプラグインである。シンプルな設定で高速に動作し、カスタマイズ性も備えている。現在のモード、ファイル名、ファイルタイプなど、基本的なエディタ情報を表示する。

**業務上の目的・背景**：vim-airlineは多機能だが、その分起動時間やメモリ使用量に影響を与える場合がある。lightline.vimは、よりシンプルで高速なステータスライン表示を求める開発者向けの代替オプションとして提供される。特にスペックの低い環境や、シンプルな表示を好むユーザーに適している。

**画面へのアクセス方法**：
- 自動表示：lightlineレイヤー有効化時、Vim起動時から常時表示
- 設定：`.spacevim`で`Layer 'lightline'`を指定（airlineの代わりに使用）

**主要な操作・処理内容**：
1. **モード表示**：現在の編集モード（NORMAL/INSERT/VISUAL等）を表示
2. **ファイル情報表示**：ファイル名、ファイルタイプ
3. **位置情報表示**：行番号、カラム位置
4. **カラースキーム連携**：wombatテーマによる配色

**画面遷移**：
- ステータスラインは常時表示され、独立した画面遷移は存在しない

**権限による表示制御**：本画面に権限による表示制御は存在しない。

## 関連機能

| 機能No | 機能名 | 関連種別 | 関連する操作・処理 |
|--------|--------|----------|------------------|
| 24 | lightline連携 | 主機能 | lightline.vimによる軽量ステータスライン表示 |
| 22 | space-vim-theme | 補助機能 | space-vim-themeとの連携 |

## 画面種別

常時表示UI（ステータスライン）

## URL/ルーティング

自動表示（設定による制御）：
- ステータスライン：常時ウィンドウ下部に表示

## 入出力項目

| 項目名 | 入出力 | データ型 | 説明 |
|--------|--------|----------|------|
| 現在のモード | 入力（自動） | 文字列 | Vimの編集モード |
| ファイル情報 | 入力（自動） | 構造体 | ファイル名、タイプ等 |
| ステータスライン | 出力 | 文字列 | 整形されたステータス表示 |

## 表示項目

### ステータスライン（下部）

| セクション | 位置 | 表示内容 |
|------------|------|----------|
| mode | 左端 | 編集モード（NORMAL, INSERT, VISUAL等） |
| filename | 左 | ファイル名 |
| filetype | 右 | ファイルタイプ |
| lineinfo | 右端 | 行番号、カラム位置 |

## イベント仕様

### 1-モード変更時の表示更新

編集モードが変更されると、ステータスラインのモード部分の色と表示が更新される。

```
[トリガー] InsertEnter / InsertLeave / VisualEnter等
        ↓
[lightline.vim] モード変更検出
        ↓
[画面更新] モード部分の色・テキストが変更
```

### 2-バッファ切り替え時の更新

バッファを切り替えると、ファイル情報が更新される。

```
[トリガー] BufEnter
        ↓
[lightline.vim] ステータスライン再描画
        ↓
[画面更新] ファイル名、タイプが更新
```

## データベース更新仕様

本画面は表示専用であり、データの更新は行わない。

## メッセージ仕様

Lightline自体はメッセージを表示しない。ステータスライン上の情報表示のみ。

## 例外処理

| 例外状態 | 対処 | ユーザーへの通知 |
|---------|------|-----------------|
| カラースキーム未対応 | デフォルトの配色を使用 | 特になし |

## 備考

- lightline.vimはitchyny氏によって開発された軽量ステータスラインプラグインである
- vim-airlineと比較してシンプルで高速な動作が特徴
- space-vimではwombatカラースキームがデフォルト設定
- airlineレイヤーとは排他的に使用する（両方を有効にしない）
- space-vim-themeとの連携が設定されている

---

## コードリーディングガイド

本画面を理解するために参照すべきファイルと、推奨する読み解き順序を以下に示す。

### 推奨読解順序

#### Step 1: プラグイン登録を理解する

まず、lightline.vimがどのように登録されているかを理解する。

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 1-1 | packages.vim | `layers/+themes/lightline/packages.vim` | lightline.vimの登録 |

**読解のコツ**: airlineとは異なり、遅延読み込み設定がない（常時読み込み）。

**主要処理フロー**:
1. **1行目**: `MP 'itchyny/lightline.vim'` - プラグイン登録

#### Step 2: Lightline設定を理解する

ステータスラインの設定を確認する。

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 2-1 | config.vim | `layers/+themes/lightline/config.vim` | カラースキーム設定 |

**主要処理フロー**:
1. **2-4行目**: `let g:lightline = { 'colorscheme': 'wombat' }` - wombatテーマ設定

### プログラム呼び出し階層図

```
Vim起動
    │
    └─ lightline.vim（即時読み込み）
           │
           ├─ ステータスライン初期化
           │      ├─ mode（モード表示）
           │      ├─ filename（ファイル名）
           │      ├─ filetype（ファイルタイプ）
           │      └─ lineinfo（位置情報）
           │
           └─ カラースキーム適用
                  └─ wombatテーマ
```

### データフロー図

```
[入力]                    [処理]                         [出力]

Vimモード変更 ──▶ lightline.vim ─────────▶ ステータスライン更新
                          │
                          └─▶ モード色・テキスト変更

ファイル切替 ───▶ lightline.vim ─────────▶ ファイル情報更新
                          │
                          └─▶ ファイル名・タイプ表示
```

### 関連ファイル一覧

| ファイル | パス | 種別 | 役割 |
|---------|------|------|------|
| packages.vim | `layers/+themes/lightline/packages.vim` | ソース | lightline.vimプラグイン登録 |
| config.vim | `layers/+themes/lightline/config.vim` | ソース | カラースキーム設定 |
| 画面一覧.csv | `docs/code-to-docs/画面一覧/画面一覧.csv` | データ | 画面No.15の定義 |
