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.
Observação
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 (dotnet_diagnostic
) diferente das 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.
Escopos de opção
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.
Todas as regras
A sintaxe para configurar uma opção para todas as regras é a seguinte:
Sintaxe | Exemplo |
---|---|
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:
Sintaxe | Exemplo |
---|---|
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
Regra específica
A sintaxe para configurar uma opção para uma regra específica é a seguinte:
Sintaxe | Exemplo |
---|---|
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> | dotnet_code_quality.CA1040.api_surface = public |
Opções
Esta seção lista algumas dessas opções disponíveis. Para ver a lista completa de opções disponíveis, consulte Configuração do analisador.
- api_surface
- exclude_async_void_methods
- exclude_single_letter_type_parameters
- output_kind
- required_modifiers
- exclude_extension_method_this_parameter
- null_check_validation_methods
- additional_string_formatting_methods
- excluded_type_names_with_derived_types
- excluded_symbol_names
- disallowed_symbol_names
- exclude_ordefault_methods
- ignore_internalsvisibleto
- try_determine_additional_string_formatting_methods_automatically
- unsafe_DllImportSearchPath_bits
- exclude_aspnet_core_mvc_controllerbase
- dispose_analysis_kind
- dispose_ownership_transfer_at_constructor
- dispose_ownership_transfer_at_method_call
- enum_values_prefix_trigger
- exclude_indirect_base_types
- additional_required_suffixes
- additional_required_generic_interfaces
- additional_inheritance_excluded_symbol_names
- analyzed_symbol_kinds
- use_naming_heuristic
- additional_use_results_methods
- allowed_suffixes
- enable_platform_analyzer_on_pre_net5_target
- exclude_structs
- additional_enum_none_names
- enumeration_methods
- linq_chain_methods
- assume_method_enumerates_parameters
api_surface
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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 |
CA1000 CA1002 CA1003 CA1005 CA1008 CA1010 CA1012 CA1021 CA1024 CA1027 CA1028 CA1030 CA1036 CA1040 CA1041 CA1043 CA1044 CA1045 CA1046 CA1047 CA1051 CA1052 CA1054 CA1055 CA1056 CA1058 CA1062 CA1063 CA1068 CA1070 CA1700 CA1707 CA1708 CA1710 CA1711 CA1714 CA1715 CA1716 CA1717 CA1720 CA1721 CA1725 CA1801 CA1802 CA1815 CA1819 CA1822 CA1859 CA2208 CA2217 CA2225 CA2226 CA2231 CA2234 |
exclude_async_void_methods
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
Se deve ignorar métodos assíncronos que não retornam um valor | true false |
false |
CA2007 |
Observação
Essa opção foi nomeada skip_async_void_methods
em uma versão anterior.
exclude_single_letter_type_parameters
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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 |
Observação
Essa opção foi nomeada allow_single_letter_type_parameters
em uma versão anterior.
output_kind
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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 | CA2007 |
required_modifiers
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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 |
Modificador permitido | Resumo |
---|---|
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
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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: |
Nenhum | CA1062 |
additional_string_formatting_methods
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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: |
Nenhum | CA2241 |
excluded_type_names_with_derived_types
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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: |
Nenhum | CA1001 CA1054 CA1055 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 CA2302 CA2311 CA2312 CA2321 CA2322 CA2327 CA2328 CA2329 CA2330 CA3001 CA3002 CA3003 CA3004 CA3005 CA3006 CA3007 CA3008 CA3009 CA3010 CA3011 CA3012 CA5361 CA5376 CA5377 CA5378 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5399 CA5400 |
excluded_symbol_names
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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 |
Nenhum | CA1001 CA1054 CA1055 CA1056 CA1062 CA1068 CA1303 CA1304 CA1305 CA1508 CA2000 CA2100 CA2301 CA2302 CA2311 CA2312 CA2321 CA2322 CA2327 CA2328 CA2329 CA2330 CA3001 CA3002 CA3003 CA3004 CA3005 CA3006 CA3007 CA3008 CA3009 CA3010 CA3011 CA3012 CA5361 CA5376 CA5377 CA5378 CA5380 CA5381 CA5382 CA5383 CA5384 CA5387 CA5388 CA5389 CA5390 CA5399 CA5400 |
disallowed_symbol_names
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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 |
Nenhum | CA1031 |
exclude_ordefault_methods
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
Exclui os métodos FirstOrDefault e LastOrDefault da análise. |
true ou false |
false |
CA1826 |
ignore_internalsvisibleto
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
Inclui assemblies marcados com InternalsVisibleToAttribute na análise. | true ou false |
true |
CA1812 CA1852 |
try_determine_additional_string_formatting_methods_automatically
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
Excluir ASP.NET Core MVC ControllerBase ao considerar CSRF | true ou false |
true |
CA5391 |
dispose_analysis_kind
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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 |
enum_values_prefix_trigger
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
Excluir tipos de base indiretos | true ou false |
true |
CA1710 |
additional_required_suffixes
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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. |
Nenhum | CA1710 |
additional_required_generic_interfaces
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
Specifies additional required generic interfaces | 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. |
Nenhum | CA1010 |
Exemplos:
Valor de Opção | Resumo |
---|---|
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
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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 do símbolo, com um prefixo M: opcional. |
Nenhum | CA1806 |
allowed_suffixes
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
Especifica sufixos permitidos | Lista (separada por |) de sufixos permitidos. | Nenhum | CA1711 |
enable_platform_analyzer_on_pre_net5_target
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
Especifica se a análise deve ser habilitada para TFMs antes do .NET 5 | true ou false |
false |
CA1416 |
exclude_structs
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
Especifica se os structs devem ser excluídos da análise | true ou false |
false |
CA1051 |
additional_enum_none_names
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
Especifica nomes permitidos adicionais para um campo de enumeração de valor zero | Lista de nomes adicionais (separados por |). | Nenhum | CA1008 |
enumeration_methods
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
Especifica métodos personalizados adicionais que enumeram um IEnumerable | Nomes totalmente qualificados de métodos adicionais (separados por |). | Nenhum | CA1851 |
linq_chain_methods
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
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 |). | Nenhum | CA1851 |
assume_method_enumerates_parameters
Descrição | Valores permitidos | Valor padrão | Regras configuráveis |
---|---|---|---|
Especifica se os métodos personalizados devem enumerar seus parâmetros IEnumerable |
true ou false |
false |
CA1851 |