From f18c836b5ffe3338bfc49382a99a915f36a67207 Mon Sep 17 00:00:00 2001
From: Mihail Gribkov <61027276+Misha-133@users.noreply.github.com>
Date: Thu, 12 Jun 2025 13:25:08 +0300
Subject: [PATCH] [CV2] add children component counts to `IComponentContainer`
(#3147)
---
.../MessageComponents/Builders/ActionRowBuilder.cs | 9 +++++++--
.../MessageComponents/Builders/ComponentBuilderV2.cs | 5 +++++
.../MessageComponents/Builders/ContainerBuilder.cs | 4 ++++
.../MessageComponents/Builders/SectionBuilder.cs | 5 +++++
4 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/ActionRowBuilder.cs b/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/ActionRowBuilder.cs
index 4ecda7c7..ad27476a 100644
--- a/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/ActionRowBuilder.cs
+++ b/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/ActionRowBuilder.cs
@@ -1,13 +1,16 @@
using Discord.Utils;
-using System.Collections.Generic;
-using System.Linq;
+
using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
namespace Discord;
///
/// Represents a class used to build Action rows.
///
+[DebuggerDisplay(@"{DebuggerDisplay,nq}")]
public class ActionRowBuilder : IMessageComponentBuilder, IInteractableComponentContainer
{
///
@@ -239,4 +242,6 @@ public class ActionRowBuilder : IMessageComponentBuilder, IInteractableComponent
///
IComponentContainer IComponentContainer.WithComponents(IEnumerable components) => WithComponents(components);
+
+ private string DebuggerDisplay => $"{nameof(ActionRowBuilder)}: {this.ComponentCount()} child components.";
}
diff --git a/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/ComponentBuilderV2.cs b/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/ComponentBuilderV2.cs
index ab1ae7eb..66824e3a 100644
--- a/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/ComponentBuilderV2.cs
+++ b/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/ComponentBuilderV2.cs
@@ -1,9 +1,12 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics;
using System.Linq;
namespace Discord;
+
+[DebuggerDisplay(@"{DebuggerDisplay,nq}")]
public class ComponentBuilderV2 : IStaticComponentContainer
{
///
@@ -98,4 +101,6 @@ public class ComponentBuilderV2 : IStaticComponentContainer
///
IComponentContainer IComponentContainer.WithComponents(IEnumerable components) => WithComponents(components);
+
+ private string DebuggerDisplay => $"{nameof(ComponentBuilderV2)}: {this.ComponentCount()} child components.";
}
diff --git a/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/ContainerBuilder.cs b/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/ContainerBuilder.cs
index a340aa76..645316bb 100644
--- a/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/ContainerBuilder.cs
+++ b/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/ContainerBuilder.cs
@@ -1,10 +1,12 @@
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
+using System.Diagnostics;
using System.Linq;
namespace Discord;
+[DebuggerDisplay(@"{DebuggerDisplay,nq}")]
public class ContainerBuilder : IMessageComponentBuilder, IStaticComponentContainer
{
///
@@ -125,4 +127,6 @@ public class ContainerBuilder : IMessageComponentBuilder, IStaticComponentContai
IComponentContainer IComponentContainer.AddComponents(params IMessageComponentBuilder[] components) => AddComponents(components);
///
IComponentContainer IComponentContainer.WithComponents(IEnumerable components) => WithComponents(components);
+
+ private string DebuggerDisplay => $"{nameof(ContainerBuilder)}: {this.ComponentCount()} child components.";
}
diff --git a/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/SectionBuilder.cs b/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/SectionBuilder.cs
index 82c04da0..1cd799ff 100644
--- a/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/SectionBuilder.cs
+++ b/src/Discord.Net.Core/Entities/Interactions/MessageComponents/Builders/SectionBuilder.cs
@@ -1,10 +1,13 @@
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
+using System.Diagnostics;
using System.Linq;
namespace Discord;
+
+[DebuggerDisplay(@"{DebuggerDisplay,nq}")]
public class SectionBuilder : IMessageComponentBuilder, IStaticComponentContainer
{
///
@@ -128,4 +131,6 @@ public class SectionBuilder : IMessageComponentBuilder, IStaticComponentContaine
IComponentContainer IComponentContainer.AddComponents(params IMessageComponentBuilder[] components) => AddComponents(components);
///
IComponentContainer IComponentContainer.WithComponents(IEnumerable components) => WithComponents(components.ToList());
+
+ private string DebuggerDisplay => $"{nameof(SectionBuilder)}: {this.ComponentCount()} child components.";
}