DARTパッケージを調査するためのツール。
免責事項:これは公式にサポートされているGoogle製品ではありません。
これらのツールは、ソースから最適に実行されます。ソースを取得するには、このようにsurveyorリポジトリをクローンします。
$ git clone https://github.com/pq/surveyor.git
そこからexamplesを実行できます。
dart run example/api_surveyor.dart <path_to_project>
指定されたパスでプロジェクトを分析し、いくつかの特定のAPIの使用を特定します。
async識別子の使用を調査します dart run example/async_surveyor.dart <path_to_project>
指定されたパスでプロジェクトを分析し、 "async"単純な識別器として使用される場所を識別します。これらの場所は、 async予約済みのキーワードになるとエラーを生成します。
これにより、多くの出力が生成されることに注意してください。失われないようにするには、ファイルにリダイレクトすることを検討してください。例えば:
dart run example/async_surveyor.dart <path> 2>&1 | tee survey_out.txt
dart run example/error_surveyor.dart <path_to_project>
指定されたパスでのプロジェクトを分析し、エラーをフィルタリングします。
dart run example/lint_surveyor.dart <path_to_project>
指定されたパスでプロジェクトを分析し、糸くずのルール(カスタムルールまたはpackage:linter )の違反を特定します。
dart run example/doc_surveyor/lib/main.dart <path_to_project>
APIドキュメントが欠落しているパブリックメンバーにフラグを立てる指定されたパスでプロジェクトを分析します。
サンプルの実行により、次のような出力が生成されます。
122 public members
Members without docs:
Void • <path-to-provider-repo>/packages/provider/lib/src/proxy_provider.dart • 107:1
NumericProxyProvider • <path-to-provider-repo>/packages/provider/lib/src/proxy_provider.dart • 177:1
Score: 0.98
dart run example/widget_surveyor/lib/widget_surveyor.dart <path_to_project>
指定されたパスでプロジェクトを分析し、見つかったWidget子親2グラムのリストを提示します。
サンプル実行により、このような内容を持つCSVファイルが生成されます。
AppBar -> Text, 1
Center -> Column, 1
Column -> Text, 3
FloatingActionButton -> Icon, 1
MaterialApp -> MyHomePage, 1
Scaffold -> AppBar, 1
Scaffold -> Center, 1
Scaffold -> FloatingActionButton, 1
null -> MaterialApp, 1
null -> MyApp, 1
null -> Scaffold, 1
(デフォルトでは、 .packagesファイルが分析中のプロジェクトに存在しない場合にのみパッケージ依存関係がインストールされることに注意してください。パッケージの依存関係が(再)インストールされていることを確認する場合は、 --force-installオプションで実行されます。)
package:pub_crawlも参照してください。これは、Pubからの分析のためにパッケージソースを取得するために使用できます。
これは非常に進行中の作業です。問題トラッカーの機能リクエスト、バグ、およびフィードバックを提出してください。
ありがとう!