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 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.
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
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 |
CA1000CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027CA1028CA1030CA1036CA1040CA1041CA1043CA1044CA1045CA1046CA1047CA1051CA1052CA1054CA1055CA1056CA1058CA1062CA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716CA1717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA2225CA2226CA2231CA2234 |
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 | CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400 |
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 | CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400 |
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 |
CA1812CA1852 |
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de