Skip to content

原文(日本語訳)

サブディレクトリから実行した際に @ ファイル補完が誤った相対パスを表示していた問題を修正しました

原文(英語)

Fixed @ file completion showing incorrect relative paths when running from a subdirectory

概要

サブディレクトリから Claude Code を実行した際、@ によるファイル補完機能が誤った相対パスを表示していた不具合が修正されました。これにより、どのディレクトリから実行しても正確なパスが表示されるようになります。

問題の詳細

以前の動作では、サブディレクトリから Claude Code を実行した際に、ファイル補完のパスが正しく表示されませんでした。

修正前の問題

bash
# プロジェクト構造
myproject/
├── src/
   ├── components/
   └── Button.tsx
   └── utils/
       └── helpers.ts
└── tests/

# src/ ディレクトリから実行
cd myproject/src
claude

> このファイルを確認してください @comp
# 補完候補が表示されるが、パスが誤っている
# 表示: @components/Button.tsx(正しくない)
# 期待: @../components/Button.tsx または絶対パス

修正後の動作

bash
# src/ ディレクトリから実行
cd myproject/src
claude

> このファイルを確認してください @comp
# 正しい相対パスまたは絶対パスが表示される
# 表示: @components/Button.tsx(正しいパス)

基本的な使い方

@ を入力することで、プロジェクト内のファイルを補完できます。修正により、どのディレクトリから実行しても正確なパスが表示されます。

bash
# プロジェクトルートから実行
cd myproject
claude
> @src/components/Button.tsx を確認

# サブディレクトリから実行(修正後は正しく動作)
cd myproject/src/components
claude
> @Button.tsx を確認  # 現在のディレクトリのファイル
> @../utils/helpers.ts を確認  # 親ディレクトリのファイル

実践例

モノレポ環境での作業

モノレポの特定パッケージディレクトリから作業する場合でも、正確なファイルパスが補完されます。

bash
# モノレポ構造
workspace/
├── packages/
   ├── frontend/
   └── src/
       └── App.tsx
   └── backend/
       └── src/
           └── server.ts

# frontend パッケージで作業
cd workspace/packages/frontend
claude
> @src/App.tsx を確認してください
# 正しいパスが補完される

ネストされたディレクトリからの実行

深くネストされたディレクトリから実行しても、正確な補完が得られます。

bash
cd myproject/src/components/ui/buttons
claude
> @Button.tsx のコードを確認
> @../../../../utils/helpers.ts も見てください
# 相対パスが正しく計算される

複数ファイルの指定

複数のファイルを指定する際も、パスが正確に表示されます。

bash
cd myproject/src
claude
> @components/Button.tsx と @utils/helpers.ts を比較してください
# 両方のファイルが正しいパスで補完される

プロジェクトファイルの検索

@ 補完を使ってプロジェクト内のファイルを検索できます。

bash
cd myproject/src/deeply/nested/directory
claude
> @config と入力
# プロジェクト内の config 関連ファイルが正しいパスで表示される

修正の恩恵を受けるシーン

サブディレクトリでの開発

特定のモジュールやコンポーネントディレクトリで集中的に作業する際:

bash
cd frontend/src/features/authentication
claude
> @LoginForm.tsx を改善してください
# 正しいパスが補完され、スムーズに作業できる

テストファイルとソースファイルの参照

テストディレクトリから対応するソースファイルを参照する際:

bash
cd tests/unit
claude
> @../../src/utils/validator.ts のテストを追加してください
# 正確な相対パスで補完される

マルチプロジェクト環境

複数のプロジェクトを横断して作業する際:

bash
cd project-a/backend/api
claude --add-dir ../../../project-b
> @handlers/user.js を確認
# 各プロジェクトのファイルが正しいパスで補完される

補完機能の活用

ファイル名の一部で検索

bash
> @butt
# Button.tsx, SubmitButton.tsx などが候補として表示される

ディレクトリを指定して絞り込み

bash
> @src/comp
# src/components/ 以下のファイルが候補として表示される

拡張子での絞り込み

bash
> @*.test.ts
# テストファイルのみが候補として表示される

注意点

  • 相対パスと絶対パス: 補完結果は実行ディレクトリに応じた相対パスまたは絶対パスで表示されます
  • シンボリックリンク: シンボリックリンクを含むディレクトリ構造では、パスの表示が実際のファイルシステム構造と異なる場合があります
  • 大規模プロジェクト: ファイル数が多いプロジェクトでは、補完候補の表示に時間がかかることがあります
  • .gitignore の考慮: .gitignore で除外されているファイルは補完候補に表示されない場合があります
  • パフォーマンス: サブディレクトリから実行しても、パフォーマンスへの影響はほとんどありません

トラブルシューティング

補完が表示されない場合

bash
# プロジェクトルートを確認
git rev-parse --show-toplevel

# または
pwd

Claude Code がプロジェクトルートを正しく認識していることを確認してください。

パスが依然として誤っている場合

最新バージョンの Claude Code にアップデートしてください:

bash
# npm の場合
npm update -g claude-code

# または claude-cli の場合
claude --version
# 2.1.32 以降であることを確認

関連情報