ฟอร์แมตเตอร์
OpenCode ใช้ตัวจัดรูปแบบเฉพาะภาษา
OpenCode จะจัดรูปแบบไฟล์โดยอัตโนมัติหลังจากที่เขียนหรือแก้ไขโดยใช้ตัวจัดรูปแบบเฉพาะภาษา เพื่อให้แน่ใจว่าโค้ดที่สร้างขึ้นเป็นไปตามสไตล์โค้ดของโปรเจ็กต์ของคุณ
บิวท์อิน
OpenCode มาพร้อมกับฟอร์แมตเตอร์ในตัวหลายตัวสำหรับภาษาและเฟรมเวิร์กยอดนิยม ด้านล่างนี้คือรายการฟอร์แมตเตอร์ นามสกุลไฟล์ที่รองรับ และคำสั่งหรือตัวเลือกการกำหนดค่าที่ต้องการ
| ฟอร์แมตเตอร์ | ส่วนขยาย | ความต้องการ |
|---|---|---|
| gofmt | .go | gofmt คำสั่งใช้ได้ |
| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | mix คำสั่งใช้ได้ |
| 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, .zon | zig คำสั่งใช้ได้ |
| clang-format | .c, .cpp, .h, .hpp, .ino และ เพิ่มเติม | .clang-format ไฟล์ปรับแต่ง |
| ktlint | .kt, .kts | ktlint คำสั่งใช้ได้ |
| ruff | .py, .pyi | คำสั่ง ruff ใช้ได้กับ config |
| rust | .rs | rustfmt คำสั่งใช้ได้ |
| cargo fmt | .rs | cargo fmt คำสั่งใช้ได้ |
| uv | .py, .pyi | uv คำสั่งใช้ได้ |
| rubocop | .rb, .rake, .gemspec, .ru | rubocop คำสั่งใช้ได้ |
| standardrb | .rb, .rake, .gemspec, .ru | standardrb คำสั่งใช้ได้ |
| htmlbeautifier | .erb, .html.erb | htmlbeautifier คำสั่งใช้ได้ |
| air | .r | air คำสั่งใช้ได้ |
| dart | .dart | dart คำสั่งใช้ได้ |
| ocamlformat | .ml, .mli | มีคำสั่ง ocamlformat และไฟล์ปรับแต่ง .ocamlformat |
| terraform | .tf, .tfvars | terraform คำสั่งใช้ได้ |
| gleam | .gleam | gleam คำสั่งใช้ได้ |
| nix | .nix | nixfmt คำสั่งใช้ได้ |
| shfmt | .sh, .bash | shfmt คำสั่งใช้ได้ |
| pint | .php | laravel/pint การพึ่งพาใน composer.json |
| oxfmt (ทดลอง) | .js, .jsx, .ts, .tsx | oxfmt การพึ่งพาใน package.json และ แฟล็กตัวแปร env ทดลอง |
| ormolu | .hs | ormolu คำสั่งใช้ได้ |
ดังนั้นหากโปรเจ็กต์ของคุณมี prettier ใน package.json OpenCode จะใช้มันโดยอัตโนมัติ
มันทำงานอย่างไร
เมื่อ OpenCode เขียนหรือแก้ไขไฟล์ มันจะ:
- ตรวจสอบนามสกุลไฟล์กับฟอร์แมตเตอร์ที่เปิดใช้งานทั้งหมด
- รันคำสั่งฟอร์แมตเตอร์ที่เหมาะสมบนไฟล์
- ใช้การเปลี่ยนแปลงการจัดรูปแบบโดยอัตโนมัติ
กระบวนการนี้เกิดขึ้นในเบื้องหลัง ทำให้มั่นใจได้ว่าสไตล์โค้ดของคุณจะถูกรักษาไว้โดยไม่มีขั้นตอนที่ต้องทำเอง
กำหนดค่า
คุณสามารถปรับแต่งฟอร์แมตเตอร์ได้ผ่านทางส่วน formatter ในการกำหนดค่า OpenCode ของคุณ
{ "$schema": "https://opencode.ai/config.json", "formatter": {}}การกำหนดค่าฟอร์แมตเตอร์แต่ละรายการรองรับสิ่งต่อไปนี้:
| คุณสมบัติ | พิมพ์ | คำอธิบาย |
|---|---|---|
disabled | บูลีน | ตั้งค่านี้เป็น true เพื่อปิดใช้งานฟอร์แมตเตอร์ |
command | สตริง[] | คำสั่งให้เรียกใช้การจัดรูปแบบ |
environment | วัตถุ | ตัวแปรสภาพแวดล้อมที่จะตั้งค่าเมื่อรันฟอร์แมตเตอร์ |
extensions | สตริง[] | นามสกุลไฟล์ที่ฟอร์แมตเตอร์นี้ควรรองรับ |
ลองดูตัวอย่างบางส่วน
ปิดการใช้งานฟอร์แมตเตอร์
หากต้องการปิดการใช้งาน ทั้งหมด ฟอร์แมตเตอร์ทั่วโลก ให้ตั้งค่า formatter เป็น false:
{ "$schema": "https://opencode.ai/config.json", "formatter": false}หากต้องการปิดใช้งานฟอร์แมตเตอร์ เฉพาะ ให้ตั้งค่า disabled เป็น true:
{ "$schema": "https://opencode.ai/config.json", "formatter": { "prettier": { "disabled": true } }}ตัวจัดรูปแบบที่กำหนดเอง
คุณสามารถแทนที่ฟอร์แมตเตอร์ที่มีอยู่แล้วภายในหรือเพิ่มฟอร์แมตใหม่ได้โดยการระบุคำสั่ง ตัวแปรสภาพแวดล้อม และนามสกุลไฟล์:
{ "$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 ในคำสั่งจะถูกแทนที่ด้วยเส้นทางไปยังไฟล์ที่กำลังจัดรูปแบบ