Konfigurációs fájlok kódelemzési szabályokhoz
A kódelemzési szabályok különböző konfigurációs lehetőségeket tartalmaznak. Ezeket a beállításokat kulcs-érték párokként adja meg az alábbi elemző konfigurációs fájlok egyikében:
- EditorConfig fájl: Fájlalapú vagy mappaalapú konfigurációs beállítások.
- Global AnalyzerConfig fájl: Projektszintű konfigurációs beállítások. Akkor hasznos, ha egyes projektfájlok a projektmappán kívül találhatók.
Tipp.
A kódelemzés konfigurációs tulajdonságait a projektfájlban is beállíthatja. Ezek a tulajdonságok tömeges szinten konfigurálják a kódelemzést a teljes be- vagy kikapcsolástól a kategóriaszintű konfigurációig. További információ: EnableNETAnalyzers, AnalysisLevel, AnalysisLevel<Category> és AnalysisMode.
EditorConfig
EditorConfiga fájlok adott forrásfájlokra vagy mappákra vonatkozó beállítások megadására szolgálnak. A beállítások a szakaszfejlécek alá kerülnek a vonatkozó fájlok és mappák azonosításához. Adjon hozzá egy bejegyzést minden konfigurálni kívánt szabályhoz, és helyezze a megfelelő fájlkiterjesztési szakasz alá, [*.cs]
például.
[*.cs]
<option_name> = <option_value>
A fenti példában egy szerkesztőkonfigurációs szakasz fejléce látható, [*.cs]
amely az aktuális mappán belüli fájlkiterjesztéssel rendelkező .cs
összes C#-fájlt kijelöli, beleértve az almappákat is. A következő bejegyzés egy elemzőbeállítás, <option_name> = <option_value>
amely az összes C#-fájlra lesz alkalmazva.
Fájlkonvenciákat alkalmazhat EditorConfig egy mappára, projektre vagy egy teljes adattárra úgy, hogy a fájlt a megfelelő könyvtárba helyezi. Ezeket a beállításokat akkor alkalmazza a rendszer, ha az elemzést a buildeléskor és a Visual Studióban szerkessze.
Feljegyzés
EditorConfig beállítások csak a projektben vagy könyvtárban lévő forrásfájlokra vonatkoznak. A projektben Kiegészítő fájlokként szereplő fájlok nem minősülnek forrásfájloknak, és EditorConfig a beállítások nem vonatkoznak ezekre a fájlokra. Ha szabálybeállítást szeretne alkalmazni a nem forrásfájlokra, adja meg a beállítást egy globális konfigurációs fájlban.
Ha már rendelkezik .editorconfig fájllal a szerkesztő beállításaihoz, például a behúzás méretéhez vagy a záró szóköz kivágásához, a kódelemzési konfigurációs beállításokat ugyanabba a fájlba helyezheti.
Tipp.
A Visual Studio egy .editorconfig elemsablont biztosít, amely megkönnyíti a fájlok egyikének hozzáadását a projekthez. További információ: Fájl hozzáadása EditorConfig projekthez.
Példa
Az alábbiakban egy példafájlt EditorConfig láthat a beállítások és a szabály súlyosságának konfigurálásához:
# Remove the line below if you want to inherit .editorconfig settings from higher directories
root = true
# C# files
[*.cs]
#### Core EditorConfig Options ####
# Indentation and spacing
indent_size = 4
indent_style = space
tab_width = 4
#### .NET Coding Conventions ####
# this. and Me. preferences
dotnet_style_qualification_for_method = true
#### Diagnostic configuration ####
# CA1000: Do not declare static members on generic types
dotnet_diagnostic.CA1000.severity = warning
Global AnalyzerConfig
A .NET 5 SDK-tól kezdve (amelyet a Visual Studio 2019-ben és újabb verziókban is támogatnak) a globális AnalyzerConfig-fájlokkal is konfigurálhatja az elemzői beállításokat. Ezek a fájlok olyan beállítások megadására szolgálnak, amelyek a projekt összes forrásfájljára vonatkoznak, függetlenül a fájlnevektől vagy a fájl elérési útjaitól.
A fájloktól eltérően EditorConfig a globális konfigurációs fájlok nem használhatók az azonosítók szerkesztőstílus-beállításainak konfigurálására, például a behúzás méretére vagy a záró szóköz levágására. Ehelyett kizárólag projektszintű elemzők konfigurációs beállításainak megadására szolgálnak.
Formátum
Ellentétben EditorConfig a fájlokkal, amelyeknek szakaszfejlécekkel kell rendelkezniük, például [*.cs]
a vonatkozó fájlok és mappák azonosításához, a globális AnalyzerConfig-fájlok nem rendelkeznek szakaszfejlécekkel. Ehelyett az űrlap is_global = true
legfelső szintű bejegyzésére van szükségük, hogy megkülönböztessék őket a normál EditorConfig fájloktól. Ez azt jelzi, hogy a fájl összes lehetősége a teljes projektre vonatkozik. Példa:
is_global = true
<option_name> = <option_value>
Elnevezés
A nevezendő .editorconfig
fájloktól eltérően EditorConfig a globális konfigurációs fájloknak nem kell konkrét névvel vagy kiterjesztéssel rendelkezniük. Ha azonban ezeket a fájlokat úgy nevezi el, hogy .globalconfig
azok implicit módon lesznek alkalmazva az aktuális mappában lévő összes C# és Visual Basic-projektre, beleértve az almappákat is. Ellenkező esetben explicit módon hozzá kell adnia az elemet az GlobalAnalyzerConfigFiles
MSBuild projektfájlhoz:
<ItemGroup>
<GlobalAnalyzerConfigFiles Include="<path_to_global_analyzer_config>" />
</ItemGroup>
Vegye figyelembe az alábbi elnevezési javaslatokat:
- A végfelhasználóknak el kell nevezniük a globális konfigurációs fájljaikat .globalconfig néven.
- A NuGet-csomag létrehozóinak a globális konfigurációs fájljaikat <%Package_Name%>.globalconfignak kell nevezniük.
- Az MSBuild tooling által létrehozott globális konfigurációs fájlok neve <%Target_Name%>_Generated.globalconfig vagy hasonló.
Feljegyzés
A legfelső szintű bejegyzés is_global = true
nem szükséges a fájl elnevezésekor .globalconfig
, de az egyértelműség érdekében ajánlott.
Disztribúció NuGet-csomagokban
A Global AnalyzerConfig-fájlok NuGet-csomagokkal terjeszthetők. Ehhez adjon hozzá egy .props fájlt a NuGet-csomaghoz. A .props fájlban adjon hozzá egy GlobalAnalyzerConfigFiles
elemet a Project
csomópont alatt:
<Project>
<ItemGroup>
<GlobalAnalyzerConfigFiles Include="Relative/Path/to/PackageName.globalconfig" />
</ItemGroup>
</Project>
Példa
Az alábbiakban egy globális AnalyzerConfig-fájlt mutatunk be, amely a beállításokat és a szabály súlyosságát konfigurálja a projekt szintjén:
# Top level entry required to mark this as a global AnalyzerConfig file
is_global = true
# NOTE: No section headers for configuration entries
#### .NET Coding Conventions ####
# this. and Me. preferences
dotnet_style_qualification_for_method = true:warning
#### Diagnostic configuration ####
# CA1000: Do not declare static members on generic types
dotnet_diagnostic.CA1000.severity = warning
Prioritás
A fájlok és a globális AnalyzerConfig-fájlok is EditorConfig meghatároznak egy kulcs-érték párot minden beállításhoz. Ütközések akkor fordulnak elő, ha több, azonos kulccsal, de eltérő értékkel rendelkező bejegyzés van. Az ütközések feloldásához az alábbi elsőbbségi szabályok szolgálnak.
Ütköző belépési helyek | Elsőbbségi szabály |
---|---|
Ugyanabban a konfigurációs fájlban | A fájl későbbi részében megjelenő bejegyzés nyer. Ez igaz egy fájlban és egy EditorConfig globális AnalyzerConfig-fájlban lévő ütköző bejegyzésekre is. |
Két EditorConfig fájlban | A fájl azon EditorConfig bejegyzése nyer, amely mélyebb a fájlrendszerben, és így hosszabb a fájl elérési útja. |
Két globális AnalyzerConfig-fájlban | .NET 5: A rendszer egy fordítói figyelmeztetést jelent, és mindkét bejegyzést figyelmen kívül hagyja. .NET 6-os és újabb verziók: A fájl magasabb értékkel global_level rendelkező bejegyzése elsőbbséget élvez. Ha global_level nincs explicit módon definiálva, és a fájl neve .globalconfig, az global_level érték alapértelmezés szerint 100 az ; érték lesz az összes többi globális AnalyzerConfig-fájl esetében, global_level alapértelmezés szerint a 0 . Ha az global_level ütköző bejegyzéseket tartalmazó konfigurációs fájlok értékei egyenlőek, a rendszer egy fordítói figyelmeztetést jelent, és mindkét bejegyzést figyelmen kívül hagyja. |
EditorConfig Egy fájlban és egy Global AnalyzerConfig-fájlban | A fájlban lévő EditorConfig bejegyzés nyer. |
Súlyossági beállítások
A súlyossági konfigurációs beállításokra a következő további elsőbbségi szabályok vonatkoznak:
A parancssorban fordítóbeállításokként (
-nowarn
vagy-warnaserror
) megadott súlyossági beállítások mindig felülbírálják a globális AnalyzerConfig-fájlokban EditorConfig megadott súlyossági konfigurációs beállításokat.A szabálykészletfájl és egy vagy globális AnalyzerConfig-fájlütköző súlyossági bejegyzéseinek elsőbbsége nincs meghatározva.EditorConfig
A szabálykészletfájlok elavultak a globális AnalyzerConfig-fájlok javára EditorConfig . Javasoljuk, hogy a szabálykészletfájlokat konvertálja egyenértékű EditorConfig fájllá.
A különböző kulcsokkal rendelkező kapcsolódó súlyossági beállítások elsőbbségi szabályairól, például ha egy szabályhoz és a szabály alá tartozó kategóriához eltérő súlyosság van megadva, tekintse meg a kódelemzés konfigurációs beállításait.
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: