Before the introduction of Swift macros, I had been using Sourcery for some metaprogramming tasks. Sourcery comes with annotation functionality, allowing it to generate highly customized code. However, in Swift macros, I haven't found a similar feature. Currently, I am using a custom supplementary macro to achieve a functionality similar to annotations.
For example, In the macro for automatically generating Codable-related code, I have customized two attached macros to implement custom default values for the Decoder and custom CodingKey.
@autoCodable
struct Test {
@default("lfc")
let name: String
@key("new_age")
let age: Int
}
However, recently, when I attempted to use MemberAttributeMacro to add annotations in bulk, I found that macros generated by MemberAttributeMacro were not recognized by other macros in declaration.attributes.
like this:
This looks like a resolution order issue or something else.
When I don't use MemberAttributeMacro and manually add macros for each member, the result looks like this.
I want to know if there is a more official way for annotation functionality or if better support can be expected in the future.