---
name: elixir-lsp
description: Elixir Language Server Plugin for Claude Code
---

# Elixir LSP Plugin

Expert（Elixir公式LSP）を使用して、Claude CodeでElixir言語サポートを提供します。

## 機能

- **コード補完**: 入力中にコード補完を提案
- **定義へ移動**: シンボルの定義場所にジャンプ
- **参照検索**: シンボルの使用箇所を検索
- **コードアクション**: コードのリファクタリング提案
- **診断**: コンパイルエラーと警告をリアルタイム表示
- **フォーマット**: コードの自動フォーマット
- **ホバードキュメント**: シンボルのドキュメントを表示
- **ワークスペースシンボル**: ワークスペース全体からシンボルを検索

## 対応ファイル

- `.ex` - Elixirソースファイル
- `.exs` - Elixirスクリプトファイル
- `.eex` - Embedded Elixir
- `.leex` - Live EEx
- `.heex` - HTML Embedded Elixir
- `mix.exs` - Mixプロジェクトファイル

## インストール

プラグインを有効にすると、Expert LSPのインストールが自動的に試行されます。

手動インストールの場合:
```bash
.claude-plugin/bin/setup.sh
```

## 設定

Claude Codeの設定で以下のオプションが利用可能です:

| 設定 | 説明 | デフォルト |
|------|------|-----------|
| `expert.enabled` | LSPサーバーを有効化 | `true` |
| `expert.serverPath` | カスタムサーバーパス | - |
| `expert.nightly` | ナイトリービルドを使用 | `false` |
| `expert.logLevel` | ログレベル | `"info"` |

## 使用方法

### 基本的な使い方

1. Elixirプロジェクト（`mix.exs`を含む）を開く
2. `.ex` または `.exs` ファイルを編集
3. LSP機能が自動的に有効化

### コマンド

| コマンド | 説明 |
|---------|------|
| `elixir-lsp.install` | Expertのインストール・更新 |
| `elixir-lsp.restart` | LSPサーバーの再起動 |
| `elixir-lsp.status` | サーバーステータス表示 |

## 要件

- Elixir >= 1.15.3
- OTP >= 25.0
- Mixプロジェクト（`mix.exs`）

## トラブルシューティング

### LSPが起動しない場合

1. Expertがインストールされているか確認:
   ```bash
   ~/.claude/plugins/elixir-lsp/expert/bin/expert --version
   ```

2. 手動でインストール:
   ```bash
   .claude-plugin/bin/setup.sh
   ```

3. ログを確認（`expert.log`と`project.log`）

### Mixプロジェクトが検出されない場合

ワークスペースに`mix.exs`ファイルが含まれていることを確認してください。

## 参考リンク

- [Expert GitHub](https://github.com/elixir-lang/expert)
- [Elixirドキュメント](https://elixir-lang.org/docs.html)
- [Mixドキュメント](https://hexdocs.pm/mix/)
