A settings file:
{
"version": 1,
"multilineTrailingCommaBehavior": "alwaysUsed"
}
Insists on adding , at the @attached() macro parameters, which doesn't actually parse:
// --- BEFORE swift-format (compiles) ---
public protocol AnyJavaObject {}
@attached(
member,
names: named(fullJavaClassName),
named(javaHolder),
named(init(javaHolder:)),
named(JavaSuperclass),
named(`as`),
)
@attached(extension, conformances: AnyJavaObject)
public macro JavaClass(
_ fullClassName: String,
extends: (any AnyJavaObject.Type)? = nil
) = #externalMacro(module: "MyMacros", type: "JavaClassMacro")
Then apply swift-format with the above setting:
// --- AFTER swift-format (does NOT compile) ---
//
// @attached(
// member,
// names: named(fullJavaClassName),
// named(javaHolder),
// named(init(javaHolder:)),
// named(JavaSuperclass),
// named(`as`), // <-- trailing comma added, breaks compilation
// )
// @attached(extension, conformances: AnyJavaObject)
// public macro JavaClass(
// _ fullClassName: String,
// extends: (any AnyJavaObject.Type)? = nil, // <-- trailing comma added
// ) = #externalMacro(module: "MyMacros", type: "JavaClassMacro")
/tmp/swift-format-trailing-comma-bug.swift:30:1: error: unexpected ',' separator
28 | named(JavaSuperclass),
29 | named(`as`),
30 | )
| `- error: unexpected ',' separator
31 | @attached(extension, conformances: AnyJavaObject)
32 | public macro JavaClass(
A settings file:
{ "version": 1, "multilineTrailingCommaBehavior": "alwaysUsed" }Insists on adding
,at the@attached()macro parameters, which doesn't actually parse:Then apply swift-format with the above setting: