Die Befehlsgruppe config liest und bearbeitet .codecharter/config.yml für Sie.
Jeder Schreibvorgang erhält Ihre Kommentare, die Schlüsselreihenfolge und die
Formatierung, prüft die Änderung vor dem Schreiben und hinterlässt die Datei nie
halb geschrieben.
codecharter config <unterbefehl> [argumente] [optionen]
Das Format der Konfigurationsdatei selbst (Profile, Parameter, Severities, Regel-Aktivierung und Pfad-Scopes) beschreibt Konfigurationsdatei. Diese Seite behandelt die Befehle, die sie verändern.
Konfiguration inspizieren
codecharter config explain <pfad>zeigt die effektive Konfiguration für eine Quelldatei, samt der Schicht, aus der jeder Wert stammt. Mit--jsongibt es maschinenlesbare Ausgabe.codecharter config validateprüft die Datei auf Strukturfehler, unbekannte Regeln, ungültige Parameterwerte und Einträge, die nie greifen.codecharter config schemagibt ein JSON-Schema für die Editor-Vervollständigung aus. Mit--out <datei>schreiben Sie es auf die Festplatte.codecharter config get <schlüssel>gibt den rohen Wert eines einzelnen Schlüssels aus.codecharter config list [abschnitt]gibt eine Übersicht aller Abschnitte aus oder die Einträge eines Abschnitts (profiles,params,overrides,ignore,include,exclude,scopes,coverage).
get erwartet einen punktierten Schlüssel: params.<regel>.<name>,
overrides.<regel>.severity, profiles.<slug> oder
einen der skalaren Coverage-Schlüssel coverage.minimum-percent,
coverage.snippet-context-lines und coverage.max-parallel-test-projects.
Mit --scope "<glob>" lesen Sie aus dem Scope, dessen match diesem Glob
entspricht, statt aus der Basisschicht.
Werte bearbeiten: set und unset
codecharter config set <schlüssel> <wert> [--scope <glob>] [--local] [--dry-run] [--rules <dir>]
codecharter config unset <schlüssel> [--local] [--dry-run]
set schreibt einen Parameter, einen Severity-Override oder eine
Profil-Version:
codecharter config set params.cyclomatic-complexity.max 15
codecharter config set overrides.magic-number.severity warning
codecharter config set profiles.dotnet-base 1.4.2
codecharter config set coverage.minimum-percent 99.5
Der Wert wird vor dem Schreiben geprüft: eine unbekannte Regel, ein Parameter,
den die Regel nicht anbietet, ein Wert außerhalb des erlaubten Bereichs oder
eine ungültige Severity werden abgelehnt, und die Datei bleibt unverändert
(Exit-Code 10). unset entfernt einen params- oder overrides-Eintrag
wieder.
Um Parameterwerte gegen Ihre Regeln zu prüfen, geben Sie mit --rules ein
Verzeichnis mit .ccr-Dateien an. Ohne diese Angabe greift dieselbe Erkennung
wie bei analyze: ./rules.
Listen verwalten: add und remove
codecharter config add <abschnitt> [wert] [--in <ns>] [--match <glob>] [--path <datei>] [--scope <glob>] [--local] [--dry-run]
codecharter config remove <abschnitt> [wert] [--in <ns>] [--match <glob>] [--path <datei>] [--scope <glob>] [--local]
add und remove verwalten die listenwertigen Abschnitte:
codecharter config add exclude "**/Migrations/**"
codecharter config add profiles security@latest
codecharter config add ignore todo-comment --in Acme.Generated
codecharter config add include todo-comment --match "*Dto"
codecharter config add coverage.exclude "**/*.Designer.cs"
Bei ignore und include schränkt --in den Eintrag auf einen Namespace ein
und --match auf Entitäten, deren gemeldeter Name einem Glob entspricht. Bei
einem Typ, einer Methode, Property oder einem Field ist dieser Name
vollqualifiziert (Namespace plus einfacher Name), und ein Muster ohne
führendes * muss an der Namespace-Wurzel beginnen; Events und Findings auf
Vorkommen-Ebene (Parameter, Member-Zugriffe und Ähnliches) werden stattdessen
mit ihrem einfachen, unqualifizierten Namen gemeldet. Bei profiles
verweisen Sie mit --path auf eine lokale Bundle-Datei statt auf einen Slug.
remove löscht den passenden Eintrag; ein mehrdeutiges Entfernen, das auf
mehrere Einträge passt, wird als Nutzungsfehler gemeldet, statt zu raten.
Coverage-Schlüssel
Das Coverage-Gate konfigurieren Sie auf demselben Weg,
mit zwei Unterschieden. Die drei skalaren Schlüssel minimum-percent,
snippet-context-lines und max-parallel-test-projects laufen über
set/unset/get, die beiden Glob-Listen dagegen als coverage.exclude und
coverage.excluded-directories über
add/remove. Und weil der Abschnitt repositoryweit gilt, wird --scope bei
jedem Coverage-Schlüssel abgelehnt. --local, --dry-run, promote und
demote verhalten sich wie überall sonst.
codecharter config set coverage.max-parallel-test-projects 1
codecharter config add coverage.excluded-directories "vendor/**"
config list coverage gibt die Schlüssel aus, die Ihre Datei tatsächlich setzt,
die Skalare als schlüssel: wert und jeden Glob in einer eigenen
exclude:- oder excluded-directories:-Zeile. In der Übersicht zählt der
Abschnitt gesetzte Schlüssel statt
Einträge, coverage: 2 bedeutet also, dass zwei der fünf Schlüssel konfiguriert
sind. Ein nie gesetzter Schlüssel fehlt in der Ausgabe, statt mit seinem
eingebauten Standardwert zu erscheinen.
Scopes und das lokale Overlay ansteuern
Zwei Optionen bestimmen, wohin ein Schreibvorgang geht; sie gelten für set,
unset, add und remove:
--scope "<glob>"schreibt in den Scope, dessenmatchdiesem Glob entspricht, und legt den Scope am Ende der Datei an, falls er noch nicht existiert. Ohne diese Option gehen Schreibvorgänge in die Basisschicht.--localzielt auf.codecharter/config.local.yml(Ihr persönliches, lokales Overlay) statt auf die eingecheckteconfig.yml.
--dry-run gibt den Unified-Diff der geplanten Änderung aus und schreibt
nichts. Kombinieren Sie es mit jedem Schreibvorgang, um die Änderung vorab zu
sehen.
Gerüst und Aufräumen: init und tidy
codecharter config init [--at <dir>] [--profiles <csv>] [--local] [--force] [--dry-run]
codecharter config tidy [--local] [--dry-run]
init erstellt eine minimale .codecharter/config.yml (nur version: 1). Mit
--profiles "dotnet-base@1.4.2,security@latest" setzen Sie Startprofile, mit
--at wählen Sie das Verzeichnis, mit --local legen Sie stattdessen das lokale
Overlay an, und mit --force überschreiben Sie eine bestehende Datei.
init sorgt außerdem dafür, dass .codecharter/cache/ in der .gitignore
steht (die Datei wird bei Bedarf angelegt, ein passender Eintrag ergänzt),
damit die Disk-Caches mehrerer Tools – darunter der Bundle-Cache von restore
und der Revisions-Snapshot-Cache von graph diff – nicht
versehentlich eingecheckt werden. Ignoriert ein Repo bereits das gesamte
.codecharter/-Verzeichnis oder enthält es den Eintrag schon, bleibt die Datei
unverändert. Dieser Schritt ist Best-Effort: ein I/O-Fehler hier lässt init
selbst nicht scheitern, da die Konfigurationsdatei bereits erfolgreich
angelegt wurde.
tidy entfernt leere Abschnitte, die frühere Bearbeitungen hinterlassen haben,
und hält die Datei sauber.
Das lokale Overlay: config local
codecharter config local clone [--force] [--dry-run]
codecharter config local diff
codecharter config local clear [schlüssel...] [--dry-run]
.codecharter/config.local.yml überschreibt config.yml auf Ihrem Rechner und
wird nie eingecheckt (nehmen Sie es in .gitignore auf). Die Untergruppe
local verwaltet es:
clonekopiert die eingecheckte Konfiguration als Ausgangspunkt nachconfig.local.yml.--forceüberschreibt ein bestehendes Overlay.diffzeigt, was das Overlay aktuell überschreibt.clearentfernt bestimmte punktierte Schlüssel aus dem Overlay oder löscht die gesamte Overlay-Datei, wenn keine Schlüssel angegeben sind.
Einstellungen zwischen Schichten verschieben: promote und demote
codecharter config promote [schlüssel] [--all] [--keep] [--dry-run] [--rules <dir>]
codecharter config demote [schlüssel] [--all] [--dry-run] [--rules <dir>]
promoteverschiebt eine Einstellung aus Ihrem lokalen Overlay in die eingecheckteconfig.yml, wenn eine persönliche Anpassung zum Team-Standard werden soll.--keepkopiert statt zu verschieben (der Eintrag bleibt im Overlay), und--allbefördert das gesamte Overlay und leert es danach.demotekopiert eine eingecheckte Einstellung in Ihr lokales Overlay, sodass Sie lokal davon abweichen können, ohne die geteilte Datei zu ändern.--allkopiert die gesamte eingecheckte Konfiguration ins Overlay.
Ein häufiges Muster: demote profiles.dotnet-base, gefolgt von
set profiles.dotnet-base latest --local, pinnt das Team auf eine exakte Version,
während Sie auf Ihrem Rechner die neueste verfolgen.
Exit-Codes
Die lesenden Befehle get und list verwenden:
0: Erfolg.1: keine.codecharter/config.ymlgefunden.2: Nutzungsfehler (zum Beispiel ein nicht parsbarer Schlüssel).
Die bearbeitenden Befehle (set, unset, add, remove, init, tidy, die
Untergruppe local, promote, demote) verwenden:
0: Erfolg, einschließlich--dry-run-Vorschauen.2: Nutzungsfehler (falsche Argumente oder ein mehrdeutigesremove).10: Validierungsfehler, die Änderung wurde abgelehnt und die Datei blieb unverändert.