Skip to content

原文(日本語に翻訳)

不正なファイルURIのためにWindowsでLSPサーバーが動作しない問題を修正

原文(英語)

Fixed LSP servers not working on Windows due to malformed file URIs

概要

Windows環境でClaude Codeに組み込まれたLSP(Language Server Protocol)サーバーが、ファイルURIの形式不正により動作しない問題が修正されました。WindowsではファイルURIに特有の形式(file:///C:/path/to/file)が必要ですが、この形式が正しく生成されていなかったため、コード補完や定義ジャンプなどのLSP機能が機能しませんでした。修正後はWindowsユーザーもLSP機能を正常に利用できます。

基本的な使い方

このバグ修正はユーザー操作不要で自動的に適用されます。Windowsでのファイル操作がLSPツールで正常に動作するようになります。

実践例

LSPツールが正しく動作する例(修正後)

# Windowsパスを含む操作
# 修正前: C:\Users\username\project\src\index.ts を認識できない
# 修正後: file:///C:/Users/username/project/src/index.ts として正しく処理

# コードの定義ジャンプ
# 修正前: エラーまたは無応答
# 修正後: 正常に定義位置にジャンプ

LSP設定の確認

bash
# Windows での Claude Code 設定確認
claude --lsp-status

# または設定ファイルで LSP を確認
# %APPDATA%\Claude\settings.json

LSPサーバーのデバッグ

bash
# LSP通信のデバッグログを有効化(Windows PowerShell)
$env:CLAUDE_LSP_DEBUG = "1"
claude

# ログファイルの確認
# %APPDATA%\Claude\logs\lsp.log

Windows パス形式の違い

# Windows ファイルシステムパス
C:\Users\username\project\src\index.ts

# 正しいファイルURI形式(修正後に正しく生成)
file:///C:/Users/username/project/src/index.ts

# 修正前に生成されていた不正な形式の例
file://C:\Users\username\project\src\index.ts  # バックスラッシュが問題

WSL2環境での注意点

WSL2(Windows Subsystem for Linux)を使用している場合:

bash
# WSL2 内での Claude Code は Linux パスを使用
# これは別のコードパスで修正が不要
claude --version  # WSL2 内なら Linux バイナリが使用される

# Windows ネイティブ版が必要な場合は PowerShell/CMD から実行

注意点

  • この修正はWindowsネイティブ環境(PowerShell、コマンドプロンプト)に影響します
  • WSL2内でClaude Codeを実行している場合は影響ありません
  • Git Bash等のUNIXライクな環境でもWindowsパスを使う場合に影響がある可能性があります
  • LSPサーバーは言語ごとに独立しているため、影響を受ける言語は設定によって異なります

関連情報