コンテンツにスキップ

Learn Context Filtering with Code2Prompt

チュートリアルの概要

このチュートリアルでは、code2prompt CLIのglobパターン ツールを使用して、ファイルやディレクトリをフィルタリングし、管理する方法を説明します。

Globパターンは、treegrepなどのツールと同様に、強力なフィルタリング機能を提供します。詳細な説明は、こちらをご覧ください。


code2promptがインストールされていることを確認してください。まだインストールしていない場合は、インストールガイドを参照してください。


インクルードおよびエクスクルードパターンの理解

Section titled “インクルードおよびエクスクルードパターンの理解”

Globパターンは、ファイルやディレクトリのフィルタリングルールを指定できます。

  • インクルードパターン (--include): 含めたいファイルやディレクトリを指定します。
  • エクスクルードパターン (--exclude): 除外したいファイルやディレクトリを指定します。
  • 優先度 (--include-priority): インクルードパターンとエクスクルードパターンの競合を解決します。

Globパターンを使って練習するために、サンプルフォルダー構造とファイルを作成しましょう。

テスト構造を生成するBashスクリプト

Section titled “テスト構造を生成するBashスクリプト”

以下のスクリプトを実行して、一時的なディレクトリ構造を設定します。

#!/bin/bash
# ベースディレクトリを作成
mkdir -p test_dir/{lowercase,uppercase,.secret}
# 構造内のファイルを作成
echo "content foo.py" > "test_dir/lowercase/foo.py"
echo "content bar.py" > "test_dir/lowercase/bar.py"
echo "content baz.py" > "test_dir/lowercase/baz.py"
echo "content qux.txt" > "test_dir/lowercase/qux.txt"
echo "content corge.txt" > "test_dir/lowercase/corge.txt"
echo "content grault.txt" > "test_dir/lowercase/grault.txt"
echo "CONTENT FOO.py" > "test_dir/uppercase/FOO.PY"
echo "CONTENT BAR.py" > "test_dir/uppercase/BAR.PY"
echo "CONTENT BAZ.py" > "test_dir/uppercase/BAZ.PY"
echo "CONTENT QUX.txt" > "test_dir/uppercase/QUX.TXT"
echo "CONTENT CORGE.txt" > "test_dir/uppercase/CORGE.TXT"
echo "CONTENT GRAULT.txt" > "test_dir/uppercase/GRAULT.TXT"
echo "top secret" > "test_dir/.secret/secret.txt"

後で構造をクリーンアップするには、次のコマンドを実行します。

Terminal window
rm -rf test_dir

以下のディレクトリ構造が作成されます。

  • test_dir - lowercase - foo.py - bar.py - baz.py - qux.txt - corge.txt - grault.txt - uppercase - FOO.PY - BAR.PY - BAZ.PY - QUX.txt - CORGE.txt - GRAULT.txt - .secret - secret.txt

例: インクルードおよびエクスクルードパターンを使用したファイルのフィルタリング

Section titled “例: インクルードおよびエクスクルードパターンを使用したファイルのフィルタリング”

ケース1: インクルードなし、エクスクルードなし

Section titled “ケース1: インクルードなし、エクスクルードなし”

コマンド:

Terminal window
code2prompt test_dir

すべてのファイルが含まれます:

  • lowercase/foo.py
  • lowercase/bar.py
  • uppercase/FOO.py
  • .secret/secret.txt

ケース2: 特定のファイルタイプをエクスクルードする

Section titled “ケース2: 特定のファイルタイプをエクスクルードする”

.txtファイルをエクスクルードします:

Terminal window
code2prompt test_dir --exclude="*.txt"

エクスクルード:

  • すべての.txtファイル

インクルード:

  • lowercase/foo.py
  • lowercase/bar.py
  • uppercase/FOO.py

ケース3: 特定のファイルタイプをインクルードする

Section titled “ケース3: 特定のファイルタイプをインクルードする”

Pythonファイルのみを含めます:

Terminal window
code2prompt test_dir --include="*.py"

インクルード:

  • すべての.pyファイル

エクスクルード:

  • .secret/secret.txt

ケース4: インクルードとエクスクルードを優先度で制御する

Section titled “ケース4: インクルードとエクスクルードを優先度で制御する”

.pyファイルを含めますが、uppercaseフォルダ内のファイルをエクスクルードします:

Terminal window
code2prompt test_dir --include="*.py" --exclude="**/uppercase/*" --include-priority=true

インクルード:

  • lowercase内のすべての.py拡張子のファイル

エクスクルード:

  • すべてのuppercaseファイル
  • .secret/secret.txt

code2promptのglobパターン ツールを使用すると、以下のようにファイルやディレクトリを効果的にフィルタリングできます。

  • --includeでインクルードするファイルを指定
  • --excludeでエクスクルードするファイルを指定
  • --include-priorityでパターン間の競合を解決

練習として、サンプルディレクトリを設定し、コマンドを実行して、ツールがファイルを動的にフィルタリングする様子を確認してください。

このページは便宜上、自動的に翻訳されています。元のコンテンツについては英語版を参照してください。