Skip to content

ฟอร์แมตเตอร์

OpenCode ใช้ตัวจัดรูปแบบเฉพาะภาษา

OpenCode จะจัดรูปแบบไฟล์โดยอัตโนมัติหลังจากที่เขียนหรือแก้ไขโดยใช้ตัวจัดรูปแบบเฉพาะภาษา เพื่อให้แน่ใจว่าโค้ดที่สร้างขึ้นเป็นไปตามสไตล์โค้ดของโปรเจ็กต์ของคุณ


บิวท์อิน

OpenCode มาพร้อมกับฟอร์แมตเตอร์ในตัวหลายตัวสำหรับภาษาและเฟรมเวิร์กยอดนิยม ด้านล่างนี้คือรายการฟอร์แมตเตอร์ นามสกุลไฟล์ที่รองรับ และคำสั่งหรือตัวเลือกการกำหนดค่าที่ต้องการ

ฟอร์แมตเตอร์ส่วนขยายความต้องการ
gofmt.gogofmt คำสั่งใช้ได้
mix.ex, .exs, .eex, .heex, .leex, .neex, .sfacemix คำสั่งใช้ได้
prettier.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml และ เพิ่มเติมprettier การพึ่งพาใน package.json
biome.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml และ เพิ่มเติมbiome.json(c) ไฟล์ปรับแต่ง
zig.zig, .zonzig คำสั่งใช้ได้
clang-format.c, .cpp, .h, .hpp, .ino และ เพิ่มเติม.clang-format ไฟล์ปรับแต่ง
ktlint.kt, .ktsktlint คำสั่งใช้ได้
ruff.py, .pyiคำสั่ง ruff ใช้ได้กับ config
rust.rsrustfmt คำสั่งใช้ได้
cargo fmt.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, .mliมีคำสั่ง ocamlformat และไฟล์ปรับแต่ง .ocamlformat
terraform.tf, .tfvarsterraform คำสั่งใช้ได้
gleam.gleamgleam คำสั่งใช้ได้
nix.nixnixfmt คำสั่งใช้ได้
shfmt.sh, .bashshfmt คำสั่งใช้ได้
pint.phplaravel/pint การพึ่งพาใน composer.json
oxfmt (ทดลอง).js, .jsx, .ts, .tsxoxfmt การพึ่งพาใน package.json และ แฟล็กตัวแปร env ทดลอง
ormolu.hsormolu คำสั่งใช้ได้

ดังนั้นหากโปรเจ็กต์ของคุณมี prettier ใน package.json OpenCode จะใช้มันโดยอัตโนมัติ


มันทำงานอย่างไร

เมื่อ OpenCode เขียนหรือแก้ไขไฟล์ มันจะ:

  1. ตรวจสอบนามสกุลไฟล์กับฟอร์แมตเตอร์ที่เปิดใช้งานทั้งหมด
  2. รันคำสั่งฟอร์แมตเตอร์ที่เหมาะสมบนไฟล์
  3. ใช้การเปลี่ยนแปลงการจัดรูปแบบโดยอัตโนมัติ

กระบวนการนี้เกิดขึ้นในเบื้องหลัง ทำให้มั่นใจได้ว่าสไตล์โค้ดของคุณจะถูกรักษาไว้โดยไม่มีขั้นตอนที่ต้องทำเอง


กำหนดค่า

คุณสามารถปรับแต่งฟอร์แมตเตอร์ได้ผ่านทางส่วน formatter ในการกำหนดค่า OpenCode ของคุณ

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

การกำหนดค่าฟอร์แมตเตอร์แต่ละรายการรองรับสิ่งต่อไปนี้:

คุณสมบัติพิมพ์คำอธิบาย
disabledบูลีนตั้งค่านี้เป็น true เพื่อปิดใช้งานฟอร์แมตเตอร์
commandสตริง[]คำสั่งให้เรียกใช้การจัดรูปแบบ
environmentวัตถุตัวแปรสภาพแวดล้อมที่จะตั้งค่าเมื่อรันฟอร์แมตเตอร์
extensionsสตริง[]นามสกุลไฟล์ที่ฟอร์แมตเตอร์นี้ควรรองรับ

ลองดูตัวอย่างบางส่วน


ปิดการใช้งานฟอร์แมตเตอร์

หากต้องการปิดการใช้งาน ทั้งหมด ฟอร์แมตเตอร์ทั่วโลก ให้ตั้งค่า 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 ในคำสั่งจะถูกแทนที่ด้วยเส้นทางไปยังไฟล์ที่กำลังจัดรูปแบบ