Skip to content

原文(日本語に翻訳)

LSPの findReferences および他のロケーションベースの操作が、gitignoreされたファイル(例: node_modules/venv/)の結果を返していた問題を修正 (anthropics/claude-code#26051)

原文(英語)

Fixed LSP findReferences and other location-based operations returning results from gitignored files (e.g., node_modules/, venv/) (anthropics/claude-code#26051)

概要

Language Server Protocol(LSP)の findReferences や他のロケーションベースの操作(定義への移動、参照検索など)を使用した際に、.gitignore で除外されたファイル(node_modules/venv/ など)の結果が含まれてしまっていました。この修正により、LSP操作の結果からgitignoreされたファイルが適切に除外され、より関連性の高い結果のみが表示されるようになります。

基本的な使い方

bash
# 修正後: Claude CodeのLSP機能がgitignoreを尊重するようになった
# 例えば、関数の参照を検索する際にnode_modulesは除外される

# .gitignoreの設定例
# node_modules/
# venv/
# .env
# dist/

実践例

Node.jsプロジェクトでの参照検索

javascript
// src/utils/logger.js
export function log(message) {
  console.log(message);
}

// src/app.js
import { log } from './utils/logger';
log('アプリ起動');
bash
# 修正前: findReferencesの結果に node_modules/ 内のファイルが含まれていた
# 修正後: .gitignore で除外されたファイルは結果に含まれない

# Claude Codeに参照を検索させる
claude -p "log関数がどこで使われているか調べてください"
# → node_modules/ 内のファイルは除外され、プロジェクト内のファイルのみ表示

Pythonプロジェクトでの仮想環境除外

python
# main.py
from utils.helper import format_data

def process():
    data = format_data({})
    return data
bash
# .gitignore
# venv/
# __pycache__/
# *.pyc

# 修正後: venv/ 内のPythonファイルはLSP参照検索から除外される
claude -p "format_data関数の参照を探してください"
# → venv/ 内のサードパーティコードは除外され、プロジェクトコードのみ表示

大規模プロジェクトでのパフォーマンス改善

gitignore
# .gitignore の適切な設定により、LSP操作が高速化される
node_modules/
.next/
dist/
build/
coverage/
.cache/
venv/
.venv/
__pycache__/

gitignoreを適切に設定することで、LSP操作がgitignoreされたディレクトリをスキャンしなくなり、参照検索などの操作が高速化します。

注意点

  • この修正はv2.1.47以降で有効です
  • LSPが提供する機能(findReferences、goto definition など)に影響します
  • .gitignore ファイルが適切に設定されていることが前提です
  • プロジェクトルートに .gitignore がない場合は、除外ルールが適用されない場合があります
  • node_modules/venv/ のような大きなディレクトリを除外することで、参照検索の速度も改善されます

関連情報