# API設計書

## 概要

本ドキュメントは、space-vimプロジェクトのAPI設計書です。space-vimはVim/Neovim向けの設定管理フレームワークであり、**WebベースのHTTP API（REST API、GraphQL、gRPC等）は提供していません**。

本プロジェクトは以下の構成要素で成り立っています:
- Vim scriptによるレイヤーシステム
- シェルスクリプトによるインストール機能
- Python補助スクリプト（ドキュメント生成、YCM設定）

## 解析結果

### プロジェクト概要

| 項目 | 内容 |
| --- | --- |
| プロジェクト名 | space-vim |
| プロジェクトタイプ | Vim/Neovim設定フレームワーク |
| 主要言語 | Vim script |
| 補助言語 | Shell script, Python |

### APIエンドポイント解析

プロジェクト全体を解析した結果、以下のAPI関連ファイルは**検出されませんでした**:

| 検索対象 | 結果 |
| --- | --- |
| OpenAPI/Swagger定義 (`openapi.yaml`, `swagger.json`) | 未検出 |
| GraphQLスキーマ (`*.graphql`, `*.gql`) | 未検出 |
| Protocol Buffers (`*.proto`) | 未検出 |
| API Blueprint (`*.apib`) | 未検出 |
| Express.js / FastAPI / Flask / Django等のルーティング | 未検出 |
| Spring Boot / Ruby on Rails / Laravel等のコントローラー | 未検出 |
| Go / ASP.NET Core等のHTTPハンドラー | 未検出 |

### 検出されたファイル種別

| 拡張子 | 件数 | 用途 |
| --- | --- | --- |
| `.vim` | 100+ | Vim設定・プラグイン定義 |
| `.sh` | 5 | インストール/アンインストールスクリプト |
| `.py` | 2 | 補助スクリプト（ドキュメント生成、YCM設定） |
| `.js`, `.ts`, `.go`, `.java`, `.rb`, `.php` | 0 | 未使用 |

## 共通仕様

### ベースURL

```
該当なし（本プロジェクトはHTTP APIを提供していません）
```

### 認証方式

該当なし

### 共通ヘッダー

該当なし

### 共通エラーレスポンス

該当なし

## API一覧

| カテゴリ | エンドポイント | メソッド | 説明 |
| --- | --- | --- | --- |
| - | - | - | APIエンドポイントは存在しません |

## 各APIエンドポイント定義

該当なし

本プロジェクトにはHTTP APIエンドポイントが存在しないため、API定義はありません。

## プロジェクトの主要機能（参考）

space-vimはAPI提供型のプロジェクトではありませんが、以下の機能を提供しています:

### 1. レイヤーシステム

Vim設定をモジュール化するレイヤーシステムを提供:

| カテゴリ | 説明 |
| --- | --- |
| +checkers | 構文チェック関連 |
| +completion | 補完機能関連 |
| +distributions | ディストリビューション設定 |
| +fun | エンターテイメント機能 |
| +lang | プログラミング言語サポート |
| +misc | その他 |
| +programming | プログラミング支援 |
| +themes | テーマ・外観 |
| +tools | 各種ツール連携 |
| +version-control | バージョン管理連携 |
| +vim | Vim機能拡張 |

### 2. Vim scriptコマンドAPI

space-vimが提供する内部Vimコマンド:

| コマンド | 説明 |
| --- | --- |
| `LayerStatus` | 有効なレイヤーの状態を確認 |
| `LayerCache` | レイヤー情報をキャッシュ |
| `Layer` | レイヤーを有効化 |

### 3. キーバインディング

| キー | 説明 |
| --- | --- |
| `<SPC> ?` | キーバインディング一覧を表示 |
| `<SPC> b` | バッファ操作コマンドプレフィックス |
| `,` (LocalLeader) | メジャーモードコマンドプレフィックス |

## 備考

本プロジェクトはVim/Neovimエディタの設定フレームワークであり、WebサービスやHTTP APIを提供するアプリケーションではありません。そのため、従来のAPI設計書の形式で記載すべきエンドポイントは存在しません。

もしHTTP APIを持つプロジェクトの解析を希望される場合は、以下のようなプロジェクトタイプをご指定ください:
- Node.js + Express.js
- Python + FastAPI / Flask / Django
- Java + Spring Boot
- Go + net/http / Gin / Echo
- Ruby + Rails / Sinatra
- PHP + Laravel / Symfony
- C# + ASP.NET Core
