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
- 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
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 S Collection<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 |
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla