Deutsch
Dokumentation
Formatierer

Formatierer

OpenCode verwendet sprachspezifische Formatierer.

OpenCode kann Dateien nach dem Schreiben oder Bearbeiten mithilfe sprachspezifischer Formatierer formatieren. Formatierer sind standardmäßig deaktiviert; aktivieren Sie sie in Ihrer Konfiguration, bevor OpenCode sie ausführt.


Integriert

OpenCode wird mit mehreren integrierten Formatierern für beliebte Sprachen und Frameworks ausgeliefert. Nachfolgend finden Sie eine Liste der Formatierer, der unterstützten Dateierweiterungen und der benötigten Befehle oder Konfigurationsoptionen.

FormatiererErweiterungenVoraussetzungen
air.RBefehl air verfügbar
biome.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml und mehr (opens in a new tab)Konfigurationsdatei biome.json(c)
cargofmt.rsBefehl cargo fmt verfügbar
clang-format.c, .cpp, .h, .hpp, .ino und mehr (opens in a new tab)Konfigurationsdatei .clang-format
cljfmt.clj, .cljs, .cljc, .ednBefehl cljfmt verfügbar
dart.dartBefehl dart verfügbar
dfmt.dBefehl dfmt verfügbar
gleam.gleamBefehl gleam verfügbar
gofmt.goBefehl gofmt verfügbar
htmlbeautifier.erb, .html.erbBefehl htmlbeautifier verfügbar
ktlint.kt, .ktsBefehl ktlint verfügbar
mix.ex, .exs, .eex, .heex, .leex, .neex, .sfaceBefehl mix verfügbar
nixfmt.nixBefehl nixfmt verfügbar
ocamlformat.ml, .mliBefehl ocamlformat verfügbar und Konfigurationsdatei .ocamlformat
ormolu.hsBefehl ormolu verfügbar
oxfmt (experimentell).js, .jsx, .ts, .tsxAbhängigkeit oxfmt in package.json und ein experimentelles Umgebungsvariablen-Flag
pint.phpAbhängigkeit laravel/pint in composer.json
prettier.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml und mehr (opens in a new tab)Abhängigkeit prettier in package.json
rubocop.rb, .rake, .gemspec, .ruBefehl rubocop verfügbar
ruff.py, .pyiBefehl ruff mit Konfiguration verfügbar
rustfmt.rsBefehl rustfmt verfügbar
shfmt.sh, .bashBefehl shfmt verfügbar
standardrb.rb, .rake, .gemspec, .ruBefehl standardrb verfügbar
terraform.tf, .tfvarsBefehl terraform verfügbar
uv.py, .pyiBefehl uv verfügbar
zig.zig, .zonBefehl zig verfügbar

Wenn Formatierer aktiviert sind, verwendet OpenCode prettier für passende Dateien, sofern Ihr Projekt prettier in der package.json enthält.


Funktionsweise

Wenn OpenCode eine Datei schreibt oder bearbeitet und Formatierer aktiviert sind, führt es Folgendes aus:

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

Dieser Vorgang läuft für aktivierte Formatierer im Hintergrund ab.


Konfigurieren

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

Um alle integrierten Formatierer zu aktivieren, setzen Sie formatter auf true.

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

Verwenden Sie ein Objekt, um die integrierten Formatierer aktiviert zu lassen, während Sie Überschreibungen oder benutzerdefinierte Formatierer konfigurieren.

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

Jede Formatierer-Konfiguration unterstützt Folgendes:

EigenschaftTypBeschreibung
disabledbooleanSetzen Sie dies auf true, um den Formatierer zu deaktivieren
commandstring[]Der Befehl, der zur Formatierung ausgeführt wird. Erforderlich für benutzerdefinierte Formatierer; optional für integrierte.
environmentobjectUmgebungsvariablen, die beim Ausführen des Formatierers gesetzt werden
extensionsstring[]Dateierweiterungen, die dieser Formatierer behandeln soll

Sehen wir uns einige Beispiele an.


Formatierer deaktivieren

Wenn formatter weggelassen wird, sind alle Formatierer deaktiviert. Um alle Formatierer zu deaktivieren, nachdem eine andere Konfiguration sie aktiviert hat, 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 integrierte Formatierer mit Optionen wie environment oder extensions konfigurieren. Um einen benutzerdefinierten Formatierer hinzuzufügen, geben Sie einen command und extensions an:

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 Platzhalter $FILE im Befehl wird durch den Pfad zur zu formatierenden Datei ersetzt.