हिन्दी
दस्तावेज़
फॉर्मेटर

फॉर्मेटर

OpenCode भाषा-विशिष्ट फॉर्मेटर का उपयोग करता है।

OpenCode फाइलों को लिखने या एडिट करने के बाद भाषा-विशिष्ट फॉर्मेटर का उपयोग करके स्वचालित रूप से फॉर्मेट करता है। यह सुनिश्चित करता है कि जनरेट किया गया कोड आपके प्रोजेक्ट के कोड स्टाइल का पालन करे।

बिल्ट-इन फॉर्मेटर

OpenCode लोकप्रिय भाषाओं और फ्रेमवर्क के लिए कई बिल्ट-इन फॉर्मेटर के साथ आता है। नीचे फॉर्मेटर, समर्थित फाइल एक्सटेंशन और आवश्यक कमांड या कॉन्फ़िग विकल्पों की सूची है।

फॉर्मेटरएक्सटेंशनआवश्यकताएं
gofmt.gogofmt कमांड उपलब्ध
mix.ex, .exs, .eex, .heex, .leex, .neex, .sfacemix कमांड उपलब्ध
prettier.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml और अधिक (opens in a new tab)package.json में prettier डिपेंडेंसी
biome.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml और अधिक (opens in a new tab)biome.json(c) कॉन्फ़िग फाइल
zig.zig, .zonzig कमांड उपलब्ध
clang-format.c, .cpp, .h, .hpp, .ino और अधिक (opens in a new tab).clang-format कॉन्फ़िग फाइल
ktlint.kt, .ktsktlint कमांड उपलब्ध
ruff.py, .pyiruff कमांड कॉन्फ़िग के साथ उपलब्ध
rustfmt.rsrustfmt कमांड उपलब्ध
cargofmt.rscargo fmt कमांड उपलब्ध
uv.py, .pyiuv कमांड उपलब्ध
rubocop.rb, .rake, .gemspec, .rurubocop कमांड उपलब्ध
standardrb.rb, .rake, .gemspec, .rustandardrb कमांड उपलब्ध
htmlbeautifier.erb, .html.erbhtmlbeautifier कमांड उपलब्ध
air.Rair कमांड उपलब्ध
dart.dartdart कमांड उपलब्ध
ocamlformat.ml, .mliocamlformat कमांड उपलब्ध और .ocamlformat कॉन्फ़िग फाइल
terraform.tf, .tfvarsterraform कमांड उपलब्ध
gleam.gleamgleam कमांड उपलब्ध
nixfmt.nixnixfmt कमांड उपलब्ध
shfmt.sh, .bashshfmt कमांड उपलब्ध
pint.phpcomposer.json में laravel/pint डिपेंडेंसी
oxfmt (प्रयोगात्मक).js, .jsx, .ts, .tsxpackage.json में oxfmt डिपेंडेंसी और एक प्रयोगात्मक env वेरिएबल फ्लैग
ormolu.hsormolu कमांड उपलब्ध

इसलिए यदि आपके प्रोजेक्ट में package.json में prettier है, तो OpenCode स्वचालित रूप से इसका उपयोग करेगा।

यह कैसे काम करता है

जब OpenCode कोई फाइल लिखता या एडिट करता है:

  1. सभी सक्षम फॉर्मेटर के विरुद्ध फाइल एक्सटेंशन की जांच करता है।
  2. फाइल पर उपयुक्त फॉर्मेटर कमांड चलाता है।
  3. फॉर्मेटिंग परिवर्तनों को स्वचालित रूप से लागू करता है।

यह प्रक्रिया बैकग्राउंड में होती है, यह सुनिश्चित करते हुए कि आपके कोड स्टाइल बिना किसी मैनुअल स्टेप के बनाए रखे जाएं।

कॉन्फ़िगर करें

आप अपने OpenCode कॉन्फ़िग में formatter सेक्शन के माध्यम से फॉर्मेटर को कस्टमाइज़ कर सकते हैं।

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

प्रत्येक फॉर्मेटर कॉन्फ़िगरेशन निम्नलिखित का समर्थन करता है:

प्रॉपर्टीटाइपविवरण
disabledbooleanफॉर्मेटर को अक्षम करने के लिए true पर सेट करें
commandstring[]फॉर्मेटिंग के लिए चलाने वाला कमांड
environmentobjectफॉर्मेटर चलाते समय सेट करने के लिए एनवायरनमेंट वेरिएबल
extensionsstring[]फाइल एक्सटेंशन जो इस फॉर्मेटर को हैंडल करने चाहिए

आइए कुछ उदाहरण देखें।

फॉर्मेटर अक्षम करना

सभी फॉर्मेटर को ग्लोबली अक्षम करने के लिए, formatter को false पर सेट करें:

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

किसी विशिष्ट फॉर्मेटर को अक्षम करने के लिए, disabled को true पर सेट करें:

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

कस्टम फॉर्मेटर

आप कमांड, एनवायरनमेंट वेरिएबल और फाइल एक्सटेंशन निर्दिष्ट करके बिल्ट-इन फॉर्मेटर को ओवरराइड कर सकते हैं या नए जोड़ सकते हैं:

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"]
    }
  }
}

कमांड में $FILE प्लेसहोल्डर को फॉर्मेट की जा रही फाइल के पाथ से बदल दिया जाएगा।