Deutsch
Dokumentation
Formatierer

Formatierer

OpenCode verwendet sprachspezifische Formatierer.

OpenCode formatiert Dateien automatisch nach dem Schreiben oder Bearbeiten mit sprachspezifischen Formatierern. Dies stellt sicher, dass der generierte Code den Codestilen Ihres Projekts folgt.

Integrierte Formatierer

OpenCode enthält mehrere integrierte Formatierer für beliebte Sprachen und Frameworks. Unten finden Sie eine Liste der Formatierer, unterstützten Dateierweiterungen und erforderlichen Befehle oder Konfigurationsoptionen.

FormatiererErweiterungenAnforderungen
gofmt.gogofmt Befehl verfügbar
mix.ex, .exs, .eex, .heex, .leex, .neex, .sfacemix Befehl verfügbar
prettier.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml und mehr (opens in a new tab)prettier Abhängigkeit in package.json
biome.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml und mehr (opens in a new tab)biome.json(c) Konfigurationsdatei
zig.zig, .zonzig Befehl verfügbar
clang-format.c, .cpp, .h, .hpp, .ino und mehr (opens in a new tab).clang-format Konfigurationsdatei
ktlint.kt, .ktsktlint Befehl verfügbar
ruff.py, .pyiruff Befehl verfügbar mit Konfiguration
rustfmt.rsrustfmt Befehl verfügbar
cargofmt.rscargo fmt Befehl verfügbar
uv.py, .pyiuv Befehl verfügbar
rubocop.rb, .rake, .gemspec, .rurubocop Befehl verfügbar
standardrb.rb, .rake, .gemspec, .rustandardrb Befehl verfügbar
htmlbeautifier.erb, .html.erbhtmlbeautifier Befehl verfügbar
air.Rair Befehl verfügbar
dart.dartdart Befehl verfügbar
ocamlformat.ml, .mliocamlformat Befehl verfügbar und .ocamlformat Konfigurationsdatei
terraform.tf, .tfvarsterraform Befehl verfügbar
gleam.gleamgleam Befehl verfügbar
nixfmt.nixnixfmt Befehl verfügbar
shfmt.sh, .bashshfmt Befehl verfügbar
pint.phplaravel/pint Abhängigkeit in composer.json
oxfmt (Experimentell).js, .jsx, .ts, .tsxoxfmt Abhängigkeit in package.json und ein experimentelles Umgebungsvariablen-Flag
ormolu.hsormolu Befehl verfügbar

Wenn Ihr Projekt also prettier in Ihrer package.json hat, wird OpenCode es automatisch verwenden.

Funktionsweise

Wenn OpenCode eine Datei schreibt oder bearbeitet:

  1. Prüft die Dateierweiterung gegen alle aktivierten Formatierer.
  2. Führt den entsprechenden Formatierer-Befehl für die Datei aus.
  3. Wendet die Formatierungsänderungen automatisch an.

Dieser Prozess läuft im Hintergrund und stellt sicher, dass Ihre Codestile ohne manuelle Schritte beibehalten werden.

Konfiguration

Sie können Formatierer über den Abschnitt formatter in Ihrer OpenCode-Konfiguration anpassen.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "formatter": {}
}

Jede Formatierer-Konfiguration unterstützt Folgendes:

EigenschaftTypBeschreibung
disabledbooleanAuf true setzen, um den Formatierer zu deaktivieren
commandstring[]Der Befehl zum Formatieren
environmentobjectUmgebungsvariablen beim Ausführen des Formatierers
extensionsstring[]Dateierweiterungen, die dieser Formatierer verarbeiten soll

Schauen wir uns einige Beispiele an.

Formatierer deaktivieren

Um alle Formatierer global zu deaktivieren, setzen Sie formatter auf false:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "formatter": false
}

Um einen bestimmten Formatierer zu deaktivieren, setzen Sie disabled auf true:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "formatter": {
    "prettier": {
      "disabled": true
    }
  }
}

Benutzerdefinierte Formatierer

Sie können die integrierten Formatierer überschreiben oder neue hinzufügen, indem Sie den Befehl, Umgebungsvariablen und Dateierweiterungen angeben:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "formatter": {
    "prettier": {
      "command": ["npx", "prettier", "--write", "$FILE"],
      "environment": {
        "NODE_ENV": "development"
      },
      "extensions": [".js", ".ts", ".jsx", ".tsx"]
    },
    "custom-markdown-formatter": {
      "command": ["deno", "fmt", "$FILE"],
      "extensions": [".md"]
    }
  }
}

Der $FILE Platzhalter im Befehl wird durch den Pfad zur zu formatierenden Datei ersetzt.