Opcje konfiguracji reguły jakości kodu

Reguły jakości kodu mają dodatkowe opcje konfiguracji, oprócz konfigurowania ich ważności. Na przykład każdy analizator jakości kodu można skonfigurować tak, aby dotyczył tylko określonych części bazy kodu. Te opcje można określić, dodając pary klucz-wartość do tego samego EditorConfig pliku, w którym określasz ważność reguły i preferencje edytora ogólnego.

Uwaga

W tym artykule nie opisano szczegółowo sposobu konfigurowania ważności reguły. Opcja .editorconfig ustawiania ważności reguły ma inny prefiks (dotnet_diagnostic) do opcji opisanych tutaj (dotnet_code_quality). Ponadto opisane tutaj opcje odnoszą się tylko do reguł jakości kodu, natomiast opcja ważności ma zastosowanie również do reguł stylu kodu. W ramach krótkiej dokumentacji można skonfigurować ważność reguły przy użyciu następującej składni opcji:

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

Aby uzyskać szczegółowe informacje na temat konfigurowania ważności reguły, zobacz Poziom ważności.

Zakresy opcji

Każdą opcję u rafinacji można skonfigurować dla wszystkich reguł, dla kategorii reguł (na przykład zabezpieczeń lub projektu) lub dla określonej reguły.

Wszystkie reguły

Składnia konfigurowania opcji dla wszystkich reguł jest następująca:

Składnia Przykład
dotnet_code_quality.<OptionName> = <OptionValue> dotnet_code_quality.api_surface = public

Wartości dla <OptionName> są wymienione w obszarze Opcje.

Kategoria reguł

Składnia konfigurowania opcji dla kategorii reguł jest następująca:

Składnia Przykład
dotnet_code_quality.<RuleCategory>.<OptionName> = OptionValue dotnet_code_quality.Naming.api_surface = public

W poniższej tabeli wymieniono dostępne wartości dla elementu <RuleCategory>.

Design
Documentation
Globalization
Interoperability

Maintainability
Naming
Performance
SingleFile

Reliability
Security
Usage

Określona reguła

Składnia konfigurowania opcji dla określonej reguły jest następująca:

Składnia Przykład
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> dotnet_code_quality.CA1040.api_surface = public

Opcje

W tej sekcji wymieniono niektóre dostępne opcje. Aby wyświetlić pełną listę dostępnych opcji, zobacz Konfiguracja analizatora.

api_surface

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Która część powierzchni interfejsu API do przeanalizowania public (dotyczy interfejsów public API i protected )
internal lub friend (dotyczy internal interfejsów API i private protected )
private (dotyczy private Interfejsy API)
all (dotyczy wszystkich interfejsów API)

Oddzielanie wielu wartości przecinkami (,)
public CA1000 CA1002CA1003CA1005CA1008CA1010CA1012 CA1021CA1024CA1027 CA1027CA1028CA1030CA1036 CA10361040CA1041CA1043CA10444CA1045CA1046CA1047CA1051CA1052CA1054CA10555CA1056 CA1058CA1062CA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714 CA1715CA1716 CA1716 CA171717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA22225CA2226CA2231CA2234

exclude_async_void_methods

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Czy ignorować metody asynchroniczne, które nie zwracają wartości true
false
false CA2007

Uwaga

Ta opcja została nazwana skip_async_void_methods we wcześniejszej wersji.

exclude_single_letter_type_parameters

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Czy wykluczyć parametry typu jednoznakowego z reguły, na przykład w SCollection<S> true
false
false CA1715

Uwaga

Ta opcja została nazwana allow_single_letter_type_parameters we wcześniejszej wersji.

output_kind

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Określa, że kod w projekcie, który generuje tego typu zestaw, powinien być analizowany Co najmniej jedno pole OutputKind wyliczenia

Oddzielanie wielu wartości przecinkami (,)
Wszystkie rodzaje danych wyjściowych CA2007

required_modifiers

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Określa wymagane modyfikatory dla interfejsów API, które powinny być analizowane Co najmniej jedna wartość z poniższej tabeli dozwolonych modyfikatorów

Oddzielanie wielu wartości przecinkami (,)
Zależy od każdej reguły CA1802
Dozwolony modyfikator Podsumowanie
none Brak wymagania modyfikatora
static lub Shared Musi być zadeklarowany jako static (Shared w Visual Basic)
const Należy zadeklarować jako const
readonly Należy zadeklarować jako readonly
abstract Należy zadeklarować jako abstract
virtual Należy zadeklarować jako virtual
override Należy zadeklarować jako override
sealed Należy zadeklarować jako sealed
extern Należy zadeklarować jako extern
async Należy zadeklarować jako async

exclude_extension_method_this_parameter

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Czy pominąć analizę this parametru metod rozszerzeń true
false
false CA1062

null_check_validation_methods

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Nazwy metod weryfikacji sprawdzania wartości null, które weryfikują, czy argumenty przekazywane do metody są inne niż null Dozwolone formaty nazw metod (oddzielone |):
- Tylko nazwa metody (zawiera wszystkie metody o nazwie, niezależnie od typu zawierającego lub przestrzeni nazw)
- W pełni kwalifikowane nazwy w formacie identyfikatora dokumentacji symbolu z opcjonalnym M: prefiksem
Brak CA1062

additional_string_formatting_methods

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Nazwy dodatkowych metod formatowania ciągów Dozwolone formaty nazw metod (oddzielone |):
- Tylko nazwa metody (zawiera wszystkie metody o nazwie, niezależnie od typu zawierającego lub przestrzeni nazw)
- W pełni kwalifikowane nazwy w formacie identyfikatora dokumentacji symbolu z opcjonalnym M: prefiksem
Brak CA2241

excluded_type_names_with_derived_types

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Nazwy typów, tak aby typ i wszystkie jego typy pochodne zostały wykluczone do analizy Dozwolone formaty nazw symboli (oddzielone |):
- Nazwa typu (zawiera tylko wszystkie typy o nazwie, niezależnie od typu zawierającego lub przestrzeni nazw)
- W pełni kwalifikowane nazwy w formacie identyfikatora dokumentacji symbolu z opcjonalnym T: prefiksem
Brak CA1001CA1054CA1055 CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003 CA3004CA3005 CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377 CA5377CA53378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390 CA5390CA5400

excluded_symbol_names

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Nazwy symboli, które są wykluczone do analizy Dozwolone formaty nazw symboli (oddzielone |):
- Tylko nazwa symboli (zawiera wszystkie symbole o nazwie, niezależnie od typu zawierającego lub przestrzeni nazw)
- W pełni kwalifikowane nazwy w formacie identyfikatora dokumentacji symbolu. Każda nazwa symboli wymaga prefiksu typu symboli, takiego jak M: prefiks dla metod, T: prefiks dla typów i N: prefiks dla przestrzeni nazw.
- .ctor dla konstruktorów i .cctor konstruktorów statycznych
Brak CA1001CA1054CA1055 CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003 CA3004CA3005 CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377 CA5377CA53378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390 CA5390CA5400

disallowed_symbol_names

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Nazwy symboli, które są niedozwolone w kontekście analizy Dozwolone formaty nazw symboli (oddzielone |):
- Tylko nazwa symboli (zawiera wszystkie symbole o nazwie, niezależnie od typu zawierającego lub przestrzeni nazw)
- W pełni kwalifikowane nazwy w formacie identyfikatora dokumentacji symbolu. Każda nazwa symboli wymaga prefiksu typu symboli, takiego jak M: prefiks dla metod, T: prefiks dla typów i N: prefiks dla przestrzeni nazw.
- .ctor dla konstruktorów i .cctor konstruktorów statycznych
Brak CA1031

exclude_ordefault_methods

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
FirstOrDefault Wyklucza metody i LastOrDefault z analizy. true lub false false CA1826

ignore_internalsvisibleto

opis Dozwolone wartości Domyślna wartość Konfigurowalne reguły
Zawiera zestawy oznaczone InternalsVisibleToAttribute w analizie. true lub false true CA1812CA1852