コンテンツにスキップ

Globパターンフィルターの動作原理

Code2Prompt は glob パターンを使用してファイルとディレクトリを含めたり除外したりし、tree や grep などのツールと同様に動作します。2 つの独立したリストの glob パターンを渡すことができます:

  • インクルードリスト (--include または -i) - “これらのパターンはファイルを許可する”
  • エクスクルードリスト (--exclude または -e) - “これらのパターンはファイルを禁止する”

Code2prompt は、プロジェクト内のすべてのファイルについて、それを保持するか破棄するかを決定する必要があります。このページでは、ルールとその背後にある設計選択について説明します。


説明全体を通して、通常の集合記法を使用します

記号意味
少なくとも 1 つのインクルードパターンに一致するファイルの集合
少なくとも 1 つのエクスクルードパターンに一致するファイルの集合
プロジェクトツリー全体(宇宙
両方のリストに一致するファイル(重複
どちらのリストにも一致しないファイル

インクルードリストエクスクルードリスト保持されるファイル
A = ∅B = ∅Ω
A = ∅B ≠ ∅¬B
A ≠ ∅B = ∅A
A ≠ ∅B ≠ ∅A \ B
  1. インクルードリストなし、エクスクルードリストなし

    パターンが指定されていない場合、すべてのファイルが保持されます(Ω)。

  2. エクスクルードリストのみ

    この場合、Code2Prompt はブラックリストとして機能し、除外されたパターンに一致するファイルを削除します( Ω \ B = ¬B)。

  3. インクルードリストのみ

    インクルードリストのみが指定されている場合、Code2Prompt はホワイトリストとして機能し、含まれるパターンに一致するファイルのみを保持します(A)。

  4. インクルードおよびエクスクルードリスト

    両方のリストが指定されている場合、Code2Prompt はインクルードパターンに一致するファイルを保持しますが、エクスクルードパターンに一致するものは削除します(A \ B)。


両方のリストが存在する場合(A ≠ ∅B ≠ ∅)、重複Cと残りDについて 4 つの論理的可能性があります。

Cが欲しい?Dが欲しい?合理的?
いいえいいえデフォルトの動作(A \ B
はいいいえケース 3 と同じ動作(A
いいえはい驚き(“要求したCを破棄し、要求しなかったものを保持する”)
はいはいケース 1 と同じ動作(Ω

このため、--include-priorityオプションが削除されました。なぜなら、インクルードリストのみを持つ場合(ケース 3)と同じ結果になるからです。

4. クイックリファレンステーブル

Section titled “4. クイックリファレンステーブル”
保持したいもの…使用する
すべて-iなし、-eなし
いくつかのパターン以外のすべて-eのみ
パターンに一致するもののみ-iのみ
-iに一致するもの、マイナス-eに一致するもの-iおよび-e

この設計はメンタルモデルをシンプルに保ちます:

  • インクルードリストは存在するとすぐにホワイトリストになります。
  • エクスクルードリストはその上に重ねられたブラックリストです。
  • 重複はデフォルトで破棄されます