From 4a29e660b212c00af2c2384956e04d7efe9b6973 Mon Sep 17 00:00:00 2001 From: Marcel Bochtler Date: Wed, 2 Jul 2025 15:28:48 +0200 Subject: [PATCH] feat(formatter): Add detekt as Kotlin formatter detekt [1] can be used as a wrapper for ktlint [2]. When using detekt as a formatter, the ktlint CLI is not required and might not be installed. To offer formatting in this case, define `detekt --auto-format` as formatter for Kotlin source files. [1]: https://detekt.dev [2]: https://detekt.dev/docs/rules/formatting --- packages/opencode/src/format/formatter.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/opencode/src/format/formatter.ts b/packages/opencode/src/format/formatter.ts index 60ca6a32c6f7..d4f741f231a6 100644 --- a/packages/opencode/src/format/formatter.ts +++ b/packages/opencode/src/format/formatter.ts @@ -114,6 +114,15 @@ export const clang: Info = { }, } +export const detekt: Info = { + name: "detekt", + command: ["detekt", "-ac", "-i", "$FILE"], + extensions: [".kt", ".kts"], + async enabled() { + return Bun.which("detekt") !== null + }, +} + export const ktlint: Info = { name: "ktlint", command: ["ktlint", "-F", "$FILE"],