From 932be63b994f04056cd5ff2c73c379dbfc60085e Mon Sep 17 00:00:00 2001 From: Stephen Celis Date: Mon, 6 Nov 2023 09:38:36 -0800 Subject: [PATCH 1/3] Add MacroExpansionNoteMessage --- .../MacroExpansionDiagnosticMessages.swift | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Sources/SwiftSyntaxMacroExpansion/MacroExpansionDiagnosticMessages.swift b/Sources/SwiftSyntaxMacroExpansion/MacroExpansionDiagnosticMessages.swift index ecb0391bbee..8844b6edbb8 100644 --- a/Sources/SwiftSyntaxMacroExpansion/MacroExpansionDiagnosticMessages.swift +++ b/Sources/SwiftSyntaxMacroExpansion/MacroExpansionDiagnosticMessages.swift @@ -66,3 +66,20 @@ public struct MacroExpansionFixItMessage: FixItMessage { self.message = message } } + +/// The message of a note that is specified by a string literal +/// +/// This type allows macro authors to quickly generate note messages based on +/// a string. For any non-trivial note messages, it is encouraged to define a +/// custom type that conforms to `NoteMessage`. +public struct MacroExpansionNoteMessage: NoteMessage { + public var message: String + + public var fixItID: SwiftDiagnostics.MessageID { + .init(domain: diagnosticDomain, id: "\(Self.self)") + } + + public init(_ message: String) { + self.message = message + } +} From c9e38cd32b495ffbd39c8563db8a75f39d51e149 Mon Sep 17 00:00:00 2001 From: Stephen Celis Date: Thu, 9 Nov 2023 15:13:16 -0800 Subject: [PATCH 2/3] Update MacroExpansionDiagnosticMessages.swift --- .../MacroExpansionDiagnosticMessages.swift | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Sources/SwiftSyntaxMacros/MacroExpansionDiagnosticMessages.swift b/Sources/SwiftSyntaxMacros/MacroExpansionDiagnosticMessages.swift index 852116124eb..77f5884eb94 100644 --- a/Sources/SwiftSyntaxMacros/MacroExpansionDiagnosticMessages.swift +++ b/Sources/SwiftSyntaxMacros/MacroExpansionDiagnosticMessages.swift @@ -68,3 +68,20 @@ public struct MacroExpansionFixItMessage: FixItMessage { self.message = message } } + +/// The message of a note that is specified by a string literal +/// +/// This type allows macro authors to quickly generate note messages based on +/// a string. For any non-trivial note messages, it is encouraged to define a +/// custom type that conforms to `NoteMessage`. +public struct MacroExpansionNoteMessage: NoteMessage { + public var message: String + + public var fixItID: SwiftDiagnostics.MessageID { + .init(domain: diagnosticDomain, id: "\(Self.self)") + } + + public init(_ message: String) { + self.message = message + } +} From e8190f9c4c1e023c504155a4b6531569a8214162 Mon Sep 17 00:00:00 2001 From: Stephen Celis Date: Fri, 10 Nov 2023 13:13:06 -0800 Subject: [PATCH 3/3] Update Sources/SwiftSyntaxMacros/MacroExpansionDiagnosticMessages.swift MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Mateusz Bąk --- .../SwiftSyntaxMacros/MacroExpansionDiagnosticMessages.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/SwiftSyntaxMacros/MacroExpansionDiagnosticMessages.swift b/Sources/SwiftSyntaxMacros/MacroExpansionDiagnosticMessages.swift index 77f5884eb94..833f08630b1 100644 --- a/Sources/SwiftSyntaxMacros/MacroExpansionDiagnosticMessages.swift +++ b/Sources/SwiftSyntaxMacros/MacroExpansionDiagnosticMessages.swift @@ -77,7 +77,7 @@ public struct MacroExpansionFixItMessage: FixItMessage { public struct MacroExpansionNoteMessage: NoteMessage { public var message: String - public var fixItID: SwiftDiagnostics.MessageID { + public var noteID: SwiftDiagnostics.MessageID { .init(domain: diagnosticDomain, id: "\(Self.self)") }