From d775212f19baeec557f8183240af993673f4fd5e Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Fri, 15 Oct 2021 11:57:13 +0100 Subject: [PATCH] LibWeb: Insert commas between serialized CSS selectors For convenience, we create a Formatter for Selector, so we can use `StringBuilder.join()`. --- Userland/Libraries/LibWeb/CSS/Selector.cpp | 3 +-- Userland/Libraries/LibWeb/CSS/Selector.h | 12 ++++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibWeb/CSS/Selector.cpp b/Userland/Libraries/LibWeb/CSS/Selector.cpp index 425a7f9cac..34229d574e 100644 --- a/Userland/Libraries/LibWeb/CSS/Selector.cpp +++ b/Userland/Libraries/LibWeb/CSS/Selector.cpp @@ -231,8 +231,7 @@ String serialize_a_group_of_selectors(NonnullRefPtrVector const& selec { // To serialize a group of selectors serialize each selector in the group of selectors and then serialize a comma-separated list of these serializations. StringBuilder builder; - for (auto& selector : selectors) - builder.append(selector.serialize()); + builder.join(", ", selectors); return builder.to_string(); } diff --git a/Userland/Libraries/LibWeb/CSS/Selector.h b/Userland/Libraries/LibWeb/CSS/Selector.h index b144ca42de..1db74b89bd 100644 --- a/Userland/Libraries/LibWeb/CSS/Selector.h +++ b/Userland/Libraries/LibWeb/CSS/Selector.h @@ -146,3 +146,15 @@ constexpr StringView pseudo_class_name(Selector::SimpleSelector::PseudoClass::Ty String serialize_a_group_of_selectors(NonnullRefPtrVector const& selectors); } + +namespace AK { + +template<> +struct Formatter : Formatter { + void format(FormatBuilder& builder, Web::CSS::Selector const& selector) + { + Formatter::format(builder, selector.serialize()); + } +}; + +}