ノード

bca は、ソースファイルの抽象構文木(AST) のノードに関する情報を分析・抽出するコマンドを提供します。

移行しますか? 以下の動詞は、再構成前のフラグによるアクション(-d-f--count など)を置き換えるものです。移行ガイド を参照してください。

エラー検出

コード内の構文エラーを検出するには、次を実行します:

bca find -t ERROR -I "*.ext" /path/to/your/file/or/directory
  • [PATHS]... / -p, --paths:分析対象のファイルまたはディレクトリ(ディレクトリを指定するとすべてのファイルを分析します)。パスは位置引数または --paths で指定でき、両者は和集合になります。フラグはサブコマンドの後に置きます。
  • -t, --type:マッチさせるノード種別。複数の種別を指定するにはフラグを繰り返します(-t function_item -t struct_item)。少なくとも 1 つが必須です。文字列 値はノード種別名に正確にマッチします(例えば function_item)。純粋な 数値 は代わりに生の tree-sitter kind_id として解釈され、内部シンボル ID がその数値に等しいノードにマッチします(したがって -t 0 は末尾 / ERROR センチネルにマッチします)。数値形式は文法検査のための緊急避難口であり、不安定です。kind_id は文法のシンボルテーブルへのインデックスであるため、文法バージョンのバンプ後には同じ数値が別のノードを指します。安定した名前を持たない種別がどうしても必要な場合を除き、文字列形式を優先してください。
  • -I, --include:拡張子でファイルを選択するグロブフィルタ(例:*.js*.rs)。各 -I はちょうど 1 つの値を取るため、後続の位置引数のパスが飲み込まれることはありません。

ノードのカウント

count コマンドで、1 つ以上のノード種別の出現回数をカウントします:

bca count -t <NODE_TYPE> [-t <NODE_TYPE>...] -I "*.ext" \
    /path/to/your/file/or/directory

AST の表示

ソースファイルの AST を可視化するには、dump コマンドを使用します(明示的なパスが必須です。ツリー全体の AST ダンプが有用になることはないためです):

bca dump /path/to/your/file/or/directory

コードの一部の分析

コードの特定の部分だけを分析するには、dump サブコマンドの --line-start--line-end オプションを使用します。例えば、5 行目から 10 行目までの単一の関数の AST を表示するには:

bca dump --line-start 5 --line-end 10 /path/to/your/file/or/directory

これらのフラグは dumpfind に固有のものであるため、サブコマンドの後に置く必要があります。短い綴りの --ls / --le は非推奨のエイリアスとして引き続き機能しますが、次のメジャーバージョンで削除される予定です。

関数の一覧表示

すべての関数またはメソッドとその行範囲の一覧を得るには、次を使用します:

bca functions /path/to/your/file/or/directory