Skip to content

原文(日本語に翻訳)

LSPサーバーの startupTimeout 設定のサポートが追加されました。

原文(英語)

Added support for startupTimeout configuration for LSP servers

概要

LSP(Language Server Protocol)サーバーの起動タイムアウト時間をプロジェクト設定から制御できるようになりました。ネットワーク環境や大規模プロジェクトでLSPサーバーの起動に時間がかかる場合に、タイムアウト値を調整することでセッション開始時のエラーを防げます。

基本的な使い方

claude_code_config.json または設定ファイルでLSPサーバーの startupTimeout を指定します。

json
{
  "lsp": {
    "servers": [
      {
        "name": "typescript-language-server",
        "command": "typescript-language-server --stdio",
        "startupTimeout": 10000
      }
    ]
  }
}

startupTimeout の単位はミリ秒です。デフォルト値はLSPサーバーの実装依存となります。

実践例

ユースケース1: 大規模TypeScriptプロジェクトでのタイムアウト延長

大規模なTypeScriptプロジェクトではLSPサーバーの初期化に時間がかかることがあります。

json
{
  "lsp": {
    "servers": [
      {
        "name": "typescript-language-server",
        "command": "typescript-language-server --stdio",
        "startupTimeout": 30000
      }
    ]
  }
}

30秒のタイムアウトを設定することで、大規模プロジェクトでもLSPが起動完了するまで待機します。

ユースケース2: 低速ネットワーク環境でのRust Analyzer設定

リモート開発やWSL環境でRust Analyzerを使用する場合。

json
{
  "lsp": {
    "servers": [
      {
        "name": "rust-analyzer",
        "command": "rust-analyzer",
        "startupTimeout": 60000
      }
    ]
  }
}

ユースケース3: 複数LSPサーバーの個別タイムアウト設定

プロジェクトで複数の言語を扱う場合、LSPごとに適切なタイムアウトを設定できます。

json
{
  "lsp": {
    "servers": [
      {
        "name": "typescript-language-server",
        "command": "typescript-language-server --stdio",
        "startupTimeout": 15000
      },
      {
        "name": "pylsp",
        "command": "pylsp",
        "startupTimeout": 10000
      },
      {
        "name": "rust-analyzer",
        "command": "rust-analyzer",
        "startupTimeout": 45000
      }
    ]
  }
}

注意点

  • startupTimeout はLSPサーバーが起動完了を通知するまでの最大待機時間です。この時間を超えると起動失敗とみなされます。
  • 値が小さすぎると大規模プロジェクトでLSPが起動できない場合があります。環境に合わせて調整してください。
  • タイムアウト値を大きくしすぎると、LSPサーバーが実際に起動不能な場合に長時間待機することになります。
  • LSPサーバーのログでタイムアウト発生の有無を確認できます。

関連情報