Skip to content

codecharter config

.codecharter/config.yml über die Kommandozeile lesen und bearbeiten — Parameter und Severities setzen, Profile und Ausschlüsse verwalten und das lokale Overlay synchronisieren, ohne YAML von Hand zu editieren.

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 --json gibt es maschinenlesbare Ausgabe.
  • codecharter config validate prüft die Datei auf Strukturfehler, unbekannte Regeln, ungültige Parameterwerte und Einträge, die nie greifen.
  • codecharter config schema gibt 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).

get erwartet einen punktierten Schlüssel: params.<regel>.<name>, overrides.<regel>.severity oder profiles.<slug>. 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

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 .cgr-Dateien an. Ohne diese Angabe werden ./rules und die mitgelieferten Regeln versucht, dieselbe Erkennung wie bei analyze.

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"

Bei ignore und include schränkt --in den Eintrag auf einen Namespace ein und --match auf Entitäten, deren Name einem Glob entspricht. 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.

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, dessen match diesem 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.
  • --local zielt auf .codecharter/config.local.yml (Ihr persönliches, lokales Overlay) statt auf die eingecheckte config.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 "[email protected],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.

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:

  • clone kopiert die eingecheckte Konfiguration als Ausgangspunkt nach config.local.yml. --force überschreibt ein bestehendes Overlay.
  • diff zeigt, was das Overlay aktuell überschreibt.
  • clear entfernt 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>]
  • promote verschiebt eine Einstellung aus Ihrem lokalen Overlay in die eingecheckte config.yml, wenn eine persönliche Anpassung zum Team-Standard werden soll. --keep kopiert statt zu verschieben (der Eintrag bleibt im Overlay), und --all befördert das gesamte Overlay und leert es danach.
  • demote kopiert eine eingecheckte Einstellung in Ihr lokales Overlay, sodass Sie sie anschließend lokal floaten lassen können, ohne die geteilte Datei zu ändern. --all kopiert 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.yml gefunden.
  • 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 mehrdeutiges remove).
  • 10: Validierungsfehler — die Änderung wurde abgelehnt und die Datei blieb unverändert.