浏览代码

LibWeb: Insert commas between serialized CSS selectors

For convenience, we create a Formatter for Selector, so we can use
`StringBuilder.join()`.
Sam Atkins 3 年之前
父节点
当前提交
d775212f19
共有 2 个文件被更改,包括 13 次插入2 次删除
  1. 1 2
      Userland/Libraries/LibWeb/CSS/Selector.cpp
  2. 12 0
      Userland/Libraries/LibWeb/CSS/Selector.h

+ 1 - 2
Userland/Libraries/LibWeb/CSS/Selector.cpp

@@ -231,8 +231,7 @@ String serialize_a_group_of_selectors(NonnullRefPtrVector<Selector> 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();
 }
 

+ 12 - 0
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<Selector> const& selectors);
 
 }
+
+namespace AK {
+
+template<>
+struct Formatter<Web::CSS::Selector> : Formatter<StringView> {
+    void format(FormatBuilder& builder, Web::CSS::Selector const& selector)
+    {
+        Formatter<StringView>::format(builder, selector.serialize());
+    }
+};
+
+}