Pular para o conteúdo principal

Configuração

Para configurar o pacote, adicione uma entrada flutterando_metrics ao analysis_options.yaml. Esta configuração é usada tanto pelo CLI quanto pelo plugin do analisador.

analysis_options.yaml
flutterando_metrics:
extends:
- ... # configura a lista de configurações predefinidas
metrics:
- ... # configura a lista de métricas relatadas
metrics-exclude:
- ... # configura a lista de arquivos que devem ser ignorados pelas métricas
rules:
- ... # configura a lista de regras
rules-exclude:
- ... # configura a lista de arquivos que devem ser ignorados pelas regras
anti-patterns:
- ... # configura a lista de anti-padrões

Exemplo básico de configuração:

analysis_options.yaml
flutterando_metrics:
metrics:
cyclomatic-complexity: 20
number-of-parameters: 4
maximum-nesting-level: 5
metrics-exclude:
- test/**
rules:
- newline-before-return
- no-boolean-literal-compare
- no-empty-block
- prefer-trailing-comma
- prefer-conditional-expressions
- no-equal-then-else
anti-patterns:
- long-method
- long-parameter-list

Estendendo uma configuração predefinida​

Para estender uma predefinição existente, adicione uma referência ao arquivo .yaml com a predefinição na entrada extends. Por exemplo:

analysis_options.yaml
flutterando_metrics:
extends:
- package:flutterando_metrics/presets/all.yaml
rules:
- arguments-ordering:
child-last: true
- avoid-banned-imports: false

Todas as predefinições podem ser encontradas aqui.

Configurando uma entrada de métrica​

Para habilitar uma métrica, adicione seu ID à entrada metrics no analysis_options.yaml. Todas as métricas podem receber um valor de limite. Se nenhum valor for fornecido, o valor padrão será usado.

Configurando uma entrada de exclusão de métrica​

Para excluir arquivos de um relatório de métricas, forneça uma lista de expressões regulares para arquivos ignorados. Por exemplo:

analysis_options.yaml
flutterando_metrics:
metrics-exclude:
- test/**
- lib/src/some_file.dart

Configurando uma entrada de regra​

Para habilitar uma regra, adicione seu ID à entrada rules. Todas as regras têm uma severidade que pode ser substituída pela entrada de configuração severity. Por exemplo,

analysis_options.yaml
flutterando_metrics:
rules:
- newline-before-return:
severity: style

definirá a severidade para style. Valores de severidade disponíveis:

  • none
  • style
  • performance
  • warning
  • error

Regras com um distintivo configurable têm configuração adicional; consulte seus documentos para obter mais informações.

Configurando uma entrada de exclusão de regra​

Para excluir arquivos de uma análise de regras, forneça uma lista de expressões regulares para arquivos ignorados. Por exemplo:

analysis_options.yaml
flutterando_metrics:
rules-exclude:
- test/**
- lib/src/some_file.dart

Configurando uma entrada de anti-padrão​

Para habilitar um anti-padrão, adicione seu ID à entrada anti-patterns. Todos os anti-padrões têm uma severidade que pode ser substituída pela entrada de configuração severity. Por exemplo,

analysis_options.yaml
flutterando_metrics:
anti-patterns:
- long-method:
severity: warning

definirá a severidade para warning.

Ignorando uma regra ou anti-padrão​

Se um aviso específico de regra ou anti-padrão deve ser ignorado, ele pode ser sinalizado com um comentário. Por exemplo,

// ignore: no-empty-block
void emptyFunction() {}

informa ao analisador para ignorar esta instância do aviso no-empty-block.

Comentários de fim de linha também são suportados. O seguinte comunica a mesma coisa:

void emptyFunction() {} // ignore: no-empty-block

Para ignorar uma regra em todo o arquivo, use o comentário ignore_for_file. Por exemplo,

// ignore_for_file: no-empty-block
...

void emptyFunction() {}

informa ao analisador para ignorar todas as ocorrências do aviso kebab-case-types neste arquivo.

É a mesma abordagem que o pacote dart linter usa.

Além disso, a entrada exclude para a configuração do analisador pode ser usada para ignorar arquivos. Por exemplo,

analysis_options.yaml
analyzer:
exclude:
- "example/**"
- "build/**"
- "**/*.g.dart"
- "**/*.freezed.dart"

funcionará tanto para o analisador quanto para este plugin.

Se você deseja que uma regra específica ignore arquivos, você pode configurar a entrada exclude para ela. Por exemplo,

analysis_options.yaml
flutterando_metrics:
rules:
- no-equal-arguments:
exclude:
- test/**

e exemplo semelhante para anti-padrão,

analysis_options.yaml
flutterando_metrics:
anti-patterns:
- long-method:
exclude:
- test/**