Compartilhar via


Opções de configuração de regra de qualidade de código

As regras de qualidade de código têm opções de configuração adicionais, além de apenas configurar sua gravidade. Por exemplo, cada analisador de qualidade de código pode ser configurado para aplicar apenas as partes específicas da base de código. Especifique essas opções adicionando pares chave-valor ao mesmo arquivo EditorConfig em que você especifica gravidades de regra e preferências gerais do editor.

Note

Este artigo não detalha como configurar a gravidade de uma regra. A opção .editorconfig para definir a gravidade de uma regra tem um prefixo diferente (dotnet_diagnostic) para as opções descritas aqui (dotnet_code_quality). Além disso, as opções descritas aqui pertencem somente às regras de qualidade de código, enquanto a opção de severidade também se aplica às regras de estilo de código. Como referência rápida, você pode configurar a gravidade de uma regra usando a seguinte sintaxe de opção:

dotnet_diagnostic.<rule ID>.severity = <severity value>

No entanto, para obter informações detalhadas sobre como configurar a gravidade da regra, consulte Nível de gravidade.

Option scopes

Cada opção de refino pode ser configurada para todas as regras, para uma categoria de regras (por exemplo, Segurança ou Design) ou para uma regra específica.

All rules

A sintaxe para configurar uma opção para todas as regras é a seguinte:

Syntax Example
dotnet_code_quality.<OptionName> = <OptionValue> dotnet_code_quality.api_surface = public

Os valores para <OptionName> estão listados em Opções.

Categoria de regras

A sintaxe para configurar uma opção para uma category de regras é a seguinte:

Syntax Example
dotnet_code_quality.<RuleCategory>.<OptionName> = OptionValue dotnet_code_quality.Naming.api_surface = public

A tabela a seguir lista os valores disponíveis para <RuleCategory>.

Design
Documentation
Globalization
Interoperability

Maintainability
Naming
Performance
SingleFile

Reliability
Security
Usage

Specific rule

A sintaxe para configurar uma opção para uma regra específica é a seguinte:

Syntax Example
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> dotnet_code_quality.CA1040.api_surface = public

Opções

Esta seção lista as opções de configuração disponíveis para analisadores de código. Para obter mais informações, consulte Configuração do analisador.

api_surface

Description Allowable values Default value Configurable rules
Que parte da superfície da API a ser analisada public (aplica-se às APIs public e protected)
internal ou friend (aplica-se às APIs internal e private protected)
private (aplica-se às APIs private)
all (aplica-se a todas as API)

Separe vários valores com uma vírgula (,)
public CA1000CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027CA1028CA1030CA1036CA1040CA1041CA1043CA1044CA1045CA1046CA1047CA1051CA1052CA1054CA1055CA1056CA1058CA1062CA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716CA1717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA2225CA2226CA2231CA2234

exclude_async_void_methods

Description Allowable values Default value Configurable rules
Se deve ignorar métodos assíncronos que não retornam um valor true
false
false CA2007

Note

Essa opção foi nomeada skip_async_void_methods em uma versão anterior.

exclude_single_letter_type_parameters

Description Allowable values Default value Configurable rules
Se os parâmetros de tipo de caractere único devem ser excluídos da regra, por exemplo, S em Collection<S> true
false
false CA1715

Note

Essa opção foi nomeada allow_single_letter_type_parameters em uma versão anterior.

output_kind

Description Allowable values Default value Configurable rules
Especifica que o código em um projeto que gera esse tipo de assembly deve ser analisado Um ou mais campos da enumeração OutputKind

Separe vários valores com uma vírgula (,)
Todos os tipos de saída CA1515, CA1516, CA2007

required_modifiers

Description Allowable values Default value Configurable rules
Especifica os modificadores necessários para APIs que devem ser analisadas Um ou mais valores da tabela de modificadores abaixo permitida

Separe vários valores com uma vírgula (,)
Depende de cada regra CA1802
Allowed Modifier Summary
none Nenhum requisito de modificador
static ou Shared Deve ser declarado como static (Shared no Visual Basic)
const Deve ser declarado como const
readonly Deve ser declarado como readonly
abstract Deve ser declarado como abstract
virtual Deve ser declarado como virtual
override Deve ser declarado como override
sealed Deve ser declarado como sealed
extern Deve ser declarado como extern
async Deve ser declarado como async

exclude_extension_method_this_parameter

Description Allowable values Default value Configurable rules
Se deve ignorar a análise para o parâmetro this de métodos de extensão true
false
false CA1062

null_check_validation_methods

Description Allowable values Default value Configurable rules
Nomes de métodos de validação de verificação nula que validam que os argumentos passados para o método não são nulos Formatos de nome de método permitidos (separados por |):
- Somente o nome do método (inclui todos os métodos com o nome, independentemente do tipo ou do namespace contido)
- Nomes totalmente qualificados no formato de ID de documentação do símbolo, com um prefixo opcional M:
None CA1062

additional_string_formatting_methods

Description Allowable values Default value Configurable rules
Nomes de métodos de formatação de cadeia de caracteres adicionais Formatos de nome de método permitidos (separados por |):
- Somente o nome do método (inclui todos os métodos com o nome, independentemente do tipo ou do namespace contido)
- Nomes totalmente qualificados no formato de ID de documentação do símbolo, com um prefixo opcional M:
None CA2241

excluded_type_names_with_derived_types

Description Allowable values Default value Configurable rules
Nomes de tipos, de modo que o tipo e todos os seus tipos derivados sejam excluídos para análise Formatos de nome de símbolo permitidos (separados por |):
- Somente nome do tipo (inclui todos os tipos com o nome, independentemente do tipo ou namespace contido)
- Nomes totalmente qualificados no formato de ID de documentação do símbolo, com um prefixo opcional T:
None CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

excluded_symbol_names

Description Allowable values Default value Configurable rules
Nomes de símbolos excluídos para análise Formatos de nome de símbolo permitidos (separados por |):
- Somente nome de símbolo (inclui todos os símbolos com o nome, independentemente do tipo ou namespace contido)
- Nomes totalmente qualificados no formato de ID de documentação do símbolo. Cada nome de símbolo requer um prefixo do tipo símbolo, como prefixo M: para métodos, prefixo T: para tipos e prefixo N: para namespaces.
- .ctor para construtores e .cctor para construtores estáticos
None CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

disallowed_symbol_names

Description Allowable values Default value Configurable rules
Nomes de símbolos que não são permitidos no contexto da análise Formatos de nome de símbolo permitidos (separados por |):
- Somente nome de símbolo (inclui todos os símbolos com o nome, independentemente do tipo ou namespace contido)
- Nomes totalmente qualificados no formato de ID de documentação do símbolo. Cada nome de símbolo requer um prefixo do tipo símbolo, como prefixo M: para métodos, prefixo T: para tipos e prefixo N: para namespaces.
- .ctor para construtores e .cctor para construtores estáticos
None CA1031

exclude_ordefault_methods

Description Allowable values Default value Configurable rules
Exclui os métodos FirstOrDefault e LastOrDefault da análise. true ou false false CA1826

ignore_internalsvisibleto

Description Allowable values Default value Configurable rules
Inclui assemblies marcados com InternalsVisibleToAttribute na análise. true ou false true CA1812CA1852

try_determine_additional_string_formatting_methods_automatically

Description Allowable values Default value Configurable rules
Opção booliana para habilitar a detecção heurística de métodos de formatação de cadeia de caracteres adicionais.
Um método é considerado um método de formatação de cadeia de caracteres se ele tiver um parâmetro string format seguido por um parâmetro params object[].
true ou false false CA2241

unsafe_DllImportSearchPath_bits

Description Allowable values Default value Configurable rules
Você pode configurar qual valor de DllImportSearchPath não é seguro para a análise Valores Inteiros de System.Runtime.InteropServices.DllImportSearchPath 770 (ou seja: AssemblyDirectory | UseDllDirectoryForDependencies | ApplicationDirectory) CA5393

exclude_aspnet_core_mvc_controllerbase

Description Allowable values Default value Configurable rules
Excluir ASP.NET Core MVC ControllerBase ao considerar CSRF true ou false true CA5391

enum_values_prefix_trigger

Description Allowable values Default value Configurable rules
Especifica o limite para disparar a regra de nomenclatura de valores de enumeração - AnyEnumValue – A regra será disparada se qualquer um dos valores de enumeração começar com o nome do tipo enumerado.
- AllEnumValues – A regra será disparada se todos os valores de enumeração começarem com o nome do tipo enumerado.
- Heuristic – A regra será disparada usando a heurística FxCop padrão, (ou seja, quando pelo menos 75% dos valores de enumeração começam com o nome do tipo enumerado).
Heuristic CA1712

exclude_indirect_base_types

Description Allowable values Default value Configurable rules
Excluir tipos de base indiretos true ou false true CA1710

additional_required_suffixes

Description Allowable values Default value Configurable rules
Especifica sufixos adicionais necessários Lista de nomes de tipo (separados por |) com o sufixo necessário (separado por ->). Formatos de nome de tipo permitidos:
– Somente nome de tipo (inclui todos os tipos com o nome, independentemente do tipo ou namespace que o contém).
– Nomes totalmente qualificados no formato de ID de documentação, com um prefixo T: opcional.
None CA1710

additional_required_generic_interfaces

Description Allowable values Default value Configurable rules
Especifica interfaces genéricas adicionais necessárias Você pode configurar a lista de nomes de interface (separados por |) com sua interface genérica totalmente qualificada exigida (separada por ->). Formatos de interface permitidos:
– Somente nome da interface (inclui todas as interfaces com o nome, independentemente do tipo ou namespace que a contém).
– Nomes totalmente qualificados no formato de ID de documentação, com um prefixo T: opcional.
None CA1010

Examples:

Option Value Summary
dotnet_code_quality.CA1010.additional_required_generic_interfaces = ISomething->System.Collections.Generic.IEnumerable`1 Espera-se que todos os tipos que implementam ISomething, independentemente de seu namespace, também implementem System.Collections.Generic.IEnumerable\`1.
dotnet_code_quality.CA1010.additional_required_generic_interfaces = T:System.Collections.IDictionary->T:System.Collections.Generic.IDictionary`2 Todos os tipos que implementam System.Collections.IDictionary também devem implementar System.Collections.Generic.IDictionary`2.

additional_inheritance_excluded_symbol_names

Description Allowable values Default value Configurable rules
Especifica tipos ou namespaces a serem excluídos da árvore de hierarquia de herança Formatos de nome de tipo permitidos:
– Nome do tipo ou namespace (inclui todos os tipos com o nome, independentemente do tipo ou namespace que contém e todos os tipos cujo namespace contém o nome).
– Nome do tipo ou namespace que termina com um símbolo curinga (inclui todos os tipos cujo nome começa com o nome fornecido, independentemente do tipo ou namespace que contém, e todos os tipos cujo namespace contém o nome).
– Nomes totalmente qualificados no formato de ID da documentação do símbolo com um prefixo T: opcional para tipos ou prefixoN: para namespaces.
– Tipo totalmente qualificado ou nome de namespace com um prefixo T:opcional para tipo ou prefixo N: para namespace e terminando com o símbolo curinga (inclui todos os tipos cujo nome totalmente qualificado começa com o nome de tipo fornecido, ou todos os tipos cujo nome totalmente qualificado começa com o nome do namespace fornecido).
N:System.* (Esse valor é sempre adicionado automaticamente ao valor fornecido) CA1501

analyzed_symbol_kinds

Description Allowable values Default value Configurable rules
Especifica os tipos de símbolo a serem analisados Um ou mais campos de SymbolKind como uma lista separada por vírgulas. Namespace, NamedType, Method, Property, Event, Parameter CA1716

use_naming_heuristic

Description Allowable values Default value Configurable rules
Configura se os parâmetros ou nomes de propriedade que contêm Text, Message ou Caption disparam essa regra true ou false false CA1303

additional_use_results_methods

Description Allowable values Default value Configurable rules
Especifica APIs personalizadas adicionais cujos resultados devem ser usados Nomes de métodos adicionais (separados por |). Formatos de nome de método permitidos:
– Apenas nome de método (inclui todos os métodos com o nome, independentemente do tipo ou namespace que o contém).
– Nomes totalmente qualificados no formato de ID de documentação, com um prefixo M: opcional.
None CA1806

allowed_suffixes

Description Allowable values Default value Configurable rules
Especifica sufixos permitidos Lista (separada por |) de sufixos permitidos. None CA1711

enable_platform_analyzer_on_pre_net5_target

Description Allowable values Default value Configurable rules
Especifica se a análise deve ser habilitada para TFMs antes do .NET 5 true ou false false CA1416

exclude_structs

Description Allowable values Default value Configurable rules
Especifica se os structs devem ser excluídos da análise true ou false false CA1051

additional_enum_none_names

Description Allowable values Default value Configurable rules
Especifica nomes permitidos adicionais para um campo de enumeração de valor zero Lista de nomes adicionais (separados por |). None CA1008

enumeration_methods

Description Allowable values Default value Configurable rules
Especifica métodos personalizados adicionais que enumeram um IEnumerable Nomes totalmente qualificados de métodos adicionais (separados por |). None CA1851

linq_chain_methods

Description Allowable values Default value Configurable rules
Especifica outros métodos de cadeia LINQ personalizados (ou seja, os métodos assumem um argumento IEnumerable e retornam uma nova instância IEnumerable) Nomes totalmente qualificados de métodos adicionais (separados por |). None CA1851

assume_method_enumerates_parameters

Description Allowable values Default value Configurable rules
Especifica se os métodos personalizados devem enumerar seus parâmetros IEnumerable true ou false false CA1851

Opções de análise de fluxo de dados

As opções nesta seção configuram as regras de análise de fluxo de dados. As opções são:

Para obter mais informações sobre análise de fluxo de dados, consulte Escrevendo analisadores baseados em análise de fluxo de dados.

dispose_analysis_kind

Description Allowable values Default value Configurable rules
Especifica quais caminhos analisar para violações de descarte - AllPaths – Acompanhar e relatar violações de descarte ausentes em todos os caminhos (caminhos sem exceção e exceção). Além disso, também sinalize o uso de padrões de descarte não recomendados que podem causar possíveis vazamentos de descarte.
- AllPathsOnlyNotDisposed – Acompanhar e relatar violações de descarte ausentes em todos os caminhos (caminhos sem exceção e exceção). Não sinalize o uso de padrões de descarte não recomendados que possam causar possíveis vazamentos de descarte.
- NonExceptionPaths – Acompanhar e relatar violações de descarte ausentes somente em caminhos de programa sem exceção. Além disso, também sinalize o uso de padrões de descarte não recomendados que podem causar possíveis vazamentos de descarte.
- NonExceptionPathsOnlyNotDisposed – Acompanhar e relatar violações de descarte ausentes somente em caminhos de programa sem exceção. Não sinalize o uso de padrões de descarte não recomendados que possam causar possíveis vazamentos de descarte.
NonExceptionPaths CA2000

dispose_ownership_transfer_at_constructor

Description Allowable values Default value Configurable rules
Configurar a transferência de propriedade de descarte para argumentos passados para invocação do construtor true ou false false CA2000

dispose_ownership_transfer_at_method_call

Description Allowable values Default value Configurable rules
Configurar a transferência de propriedade de descarte para objetos descartáveis passados como argumentos para chamadas de método true ou false false CA2000

interprocedural_analysis_kind

Description Allowable values Default value Configurable rules
Especifica se a análise interprocedural deve ser executada para invocações de método de origem None, , NonContextSensitiveContextSensitive Específico para cada regra configurável CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

max_interprocedural_method_call_chain

Description Allowable values Default value Configurable rules
Especifica o comprimento máximo da cadeia de chamadas do método a ser analisado para análise de fluxo de dados interprocedural Unsigned integer 3 CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

max_interprocedural_lambda_or_local_function_call_chain

Description Allowable values Default value Configurable rules
Especifica o comprimento máximo da cadeia de chamadas de função local ou lambda para a análise de fluxo de dados entre procedimentos. Unsigned integer 3 CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

points_to_analysis_kind

Description Allowable values Default value Configurable rules
Especifica se PointsToAnalysis deve ser executado None, , PartialWithoutTrackingFieldsAndPropertiesComplete Específico para cada regra CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

copy_analysis

Description Allowable values Default value Configurable rules
Especifica se a análise de cópia deve ser executada (rastreia cópias de valor e de referência) true ou false true para a maioria das regras CA1062, CA1303, CA1508, CA2000, CA2100, CA2213

sufficient_IterationCount_for_weak_KDF_algorithm

Description Allowable values Default value Configurable rules
Configura uma contagem de iteração suficiente ao usar um algoritmo KDF (função de derivação de chave fraca) Integer 100000 para a maioria das regras CA1062, CA1303, CA1508, CA2000, CA2100, CA2213