فهرست منبع

allow disabling formatter

Dax Raad 6 ماه پیش
والد
کامیت
04e3e83db3
2فایلهای تغییر یافته به همراه11 افزوده شده و 0 حذف شده
  1. 8 0
      packages/opencode/src/config/config.ts
  2. 3 0
      packages/opencode/src/format/index.ts

+ 8 - 0
packages/opencode/src/config/config.ts

@@ -278,6 +278,14 @@ export namespace Config {
         .optional()
         .describe("Custom provider configurations and model overrides"),
       mcp: z.record(z.string(), Mcp).optional().describe("MCP (Model Context Protocol) server configurations"),
+      formatter: z
+        .record(
+          z.string(),
+          z.object({
+            disabled: z.boolean().optional(),
+          }),
+        )
+        .optional(),
       instructions: z.array(z.string()).optional().describe("Additional instruction files or patterns to include"),
       layout: Layout.optional().describe("@deprecated Always uses stretch layout."),
       permission: z

+ 3 - 0
packages/opencode/src/format/index.ts

@@ -5,6 +5,7 @@ import { Log } from "../util/log"
 import path from "path"
 
 import * as Formatter from "./formatter"
+import { Config } from "../config/config"
 
 export namespace Format {
   const log = Log.create({ service: "format" })
@@ -28,9 +29,11 @@ export namespace Format {
   }
 
   async function getFormatter(ext: string) {
+    const cfg = await Config.get()
     const result = []
     for (const item of Object.values(Formatter)) {
       if (!item.extensions.includes(ext)) continue
+      if (cfg.formatter?.[item.name]?.disabled) continue
       if (!(await isEnabled(item))) continue
       result.push(item)
     }