Ferramentas para pesquisar pacotes de dardo.
Isenção de responsabilidade: este não é um produto do Google oficialmente suportado.
Essas ferramentas são melhor executadas da fonte. Para obter as fontes, clone o repositório surveyor assim:
$ git clone https://github.com/pq/surveyor.git
A partir daí, você pode executar os examples .
dart run example/api_surveyor.dart <path_to_project>
analisará projetos no caminho fornecido e identificará o uso de algumas APIs específicas.
async dart run example/async_surveyor.dart <path_to_project>
Analisará os projetos no caminho fornecido e identificará locais onde "async" é usado como um identificador simples. Esses lugares produziriam erros se async se tornar uma palavra -chave reservada.
Observe que isso gera muita saída. Para garantir que nada disso esteja perdido, considere redirecionar para um arquivo. Por exemplo:
dart run example/async_surveyor.dart <path> 2>&1 | tee survey_out.txt
dart run example/error_surveyor.dart <path_to_project>
analisará projetos no caminho fornecido, filtrando para erros.
dart run example/lint_surveyor.dart <path_to_project>
Analisará os projetos no caminho fornecido e identificará violações das regras de Lint (regras personalizadas ou as definidas pelo package:linter ).
dart run example/doc_surveyor/lib/main.dart <path_to_project>
Analisará o projeto no caminho fornecido, sinalizando membros públicos que estão ausentes da API DOCs.
Uma corrida de amostra produz saída como esta:
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>
Analisará o projeto no caminho fornecido e apresentará uma lista de 2 gramas de Widget -Widget-Parents.
Uma exibição de amostra produz um arquivo CSV com conteúdo como este:
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
(Observe que, por padrão, as dependências do pacote só serão instaladas se um arquivo .packages estiver ausente do projeto em análise. Se você deseja garantir que as dependências do pacote estejam (re) instaladas, execute com a opção --force-install .)
Veja também package:pub_crawl , que pode ser usado para buscar fontes de pacotes para análise do Pub.
Este é um trabalho em andamento. Por favor, arquive solicitações de recursos, bugs e qualquer feedback no rastreador de problemas.
Obrigado!