diff --git a/SourceGenerators/HostingGatewayEventsGenerator/HostingGatewayEventsGenerator.cs b/SourceGenerators/HostingGatewayEventsGenerator/HostingGatewayEventsGenerator.cs
index 535060e4..a46c5b4b 100644
--- a/SourceGenerators/HostingGatewayEventsGenerator/HostingGatewayEventsGenerator.cs
+++ b/SourceGenerators/HostingGatewayEventsGenerator/HostingGatewayEventsGenerator.cs
@@ -117,11 +117,15 @@ private void WriteGatewayHandlerInterfaces(StringWriter stringWriter, IEventSymb
stringWriter.WriteLine("{");
+ var eventType = (INamedTypeSymbol)eventSymbol.Type;
+ var hasArg = eventType.Arity is 2;
+
+ WriteHandleAsyncXmlDoc(stringWriter, false, hasArg);
+
stringWriter.WriteIndentation(1);
stringWriter.Write("public global::System.Threading.Tasks.ValueTask HandleAsync(");
- var eventType = (INamedTypeSymbol)eventSymbol.Type;
- if (eventType.Arity is 2)
+ if (hasArg)
{
stringWriter.Write(eventType.TypeArguments[0].ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat));
stringWriter.Write(" arg");
@@ -141,10 +145,12 @@ private void WriteGatewayHandlerInterfaces(StringWriter stringWriter, IEventSymb
stringWriter.WriteLine("{");
+ WriteHandleAsyncXmlDoc(stringWriter, true, hasArg);
+
stringWriter.WriteIndentation(1);
stringWriter.Write("public global::System.Threading.Tasks.ValueTask HandleAsync(global::NetCord.Gateway.GatewayClient client");
- if (eventType.Arity is 2)
+ if (hasArg)
{
stringWriter.Write(", ");
stringWriter.Write(eventType.TypeArguments[0].ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat));
@@ -157,6 +163,30 @@ private void WriteGatewayHandlerInterfaces(StringWriter stringWriter, IEventSymb
}
}
+ private void WriteHandleAsyncXmlDoc(StringWriter stringWriter, bool hasClient, bool hasArg)
+ {
+ stringWriter.WriteIndentation(1);
+ stringWriter.WriteLine("/// ");
+
+ stringWriter.WriteIndentation(1);
+ stringWriter.WriteLine("/// Handles the gateway event.");
+
+ stringWriter.WriteIndentation(1);
+ stringWriter.WriteLine("/// ");
+
+ if (hasClient)
+ {
+ stringWriter.WriteIndentation(1);
+ stringWriter.WriteLine("/// The gateway client that represents the shard that received the event.");
+ }
+
+ if (hasArg)
+ {
+ stringWriter.WriteIndentation(1);
+ stringWriter.WriteLine("/// The event argument.");
+ }
+ }
+
private string GenerateHandlerRegistrationMethods(IEventSymbol[] events)
{
StringWriter stringWriter = new();