Sfoglia il codice sorgente

CodeGenerators: Port GenerateCSSValueID to new SourceGenerator API

Sam Atkins 2 anni fa
parent
commit
acaf2368ad

+ 19 - 19
Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateCSSValueID.cpp

@@ -1,6 +1,6 @@
 /*
 /*
  * Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
  * Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
- * Copyright (c) 2022, Sam Atkins <atkinssj@serenityos.org>
+ * Copyright (c) 2022-2023, Sam Atkins <atkinssj@serenityos.org>
  *
  *
  * SPDX-License-Identifier: BSD-2-Clause
  * SPDX-License-Identifier: BSD-2-Clause
  */
  */
@@ -43,7 +43,7 @@ ErrorOr<void> generate_header_file(JsonArray& identifier_data, Core::File& file)
 {
 {
     StringBuilder builder;
     StringBuilder builder;
     SourceGenerator generator { builder };
     SourceGenerator generator { builder };
-    generator.append(R"~~~(
+    TRY(generator.try_append(R"~~~(
 #pragma once
 #pragma once
 
 
 #include <AK/StringView.h>
 #include <AK/StringView.h>
@@ -53,19 +53,19 @@ namespace Web::CSS {
 
 
 enum class ValueID {
 enum class ValueID {
     Invalid,
     Invalid,
-)~~~");
+)~~~"));
 
 
     TRY(identifier_data.try_for_each([&](auto& name) -> ErrorOr<void> {
     TRY(identifier_data.try_for_each([&](auto& name) -> ErrorOr<void> {
         auto member_generator = TRY(generator.fork());
         auto member_generator = TRY(generator.fork());
         TRY(member_generator.set("name:titlecase", TRY(title_casify(name.to_deprecated_string()))));
         TRY(member_generator.set("name:titlecase", TRY(title_casify(name.to_deprecated_string()))));
 
 
-        member_generator.append(R"~~~(
+        TRY(member_generator.try_append(R"~~~(
     @name:titlecase@,
     @name:titlecase@,
-)~~~");
+)~~~"));
         return {};
         return {};
     }));
     }));
 
 
-    generator.append(R"~~~(
+    TRY(generator.try_append(R"~~~(
 };
 };
 
 
 Optional<ValueID> value_id_from_string(StringView);
 Optional<ValueID> value_id_from_string(StringView);
@@ -73,7 +73,7 @@ StringView string_from_value_id(ValueID);
 
 
 }
 }
 
 
-)~~~");
+)~~~"));
 
 
     TRY(file.write_until_depleted(generator.as_string_view().bytes()));
     TRY(file.write_until_depleted(generator.as_string_view().bytes()));
     return {};
     return {};
@@ -84,7 +84,7 @@ ErrorOr<void> generate_implementation_file(JsonArray& identifier_data, Core::Fil
     StringBuilder builder;
     StringBuilder builder;
     SourceGenerator generator { builder };
     SourceGenerator generator { builder };
 
 
-    generator.append(R"~~~(
+    TRY(generator.try_append(R"~~~(
 #include <AK/Assertions.h>
 #include <AK/Assertions.h>
 #include <AK/HashMap.h>
 #include <AK/HashMap.h>
 #include <LibWeb/CSS/ValueID.h>
 #include <LibWeb/CSS/ValueID.h>
@@ -92,19 +92,19 @@ ErrorOr<void> generate_implementation_file(JsonArray& identifier_data, Core::Fil
 namespace Web::CSS {
 namespace Web::CSS {
 
 
 HashMap<StringView, ValueID, AK::CaseInsensitiveASCIIStringViewTraits> g_stringview_to_value_id_map {
 HashMap<StringView, ValueID, AK::CaseInsensitiveASCIIStringViewTraits> g_stringview_to_value_id_map {
-)~~~");
+)~~~"));
 
 
     TRY(identifier_data.try_for_each([&](auto& name) -> ErrorOr<void> {
     TRY(identifier_data.try_for_each([&](auto& name) -> ErrorOr<void> {
         auto member_generator = TRY(generator.fork());
         auto member_generator = TRY(generator.fork());
-        member_generator.set("name", name.to_deprecated_string());
+        TRY(member_generator.set("name", TRY(String::from_deprecated_string(name.to_deprecated_string()))));
         TRY(member_generator.set("name:titlecase", TRY(title_casify(name.to_deprecated_string()))));
         TRY(member_generator.set("name:titlecase", TRY(title_casify(name.to_deprecated_string()))));
-        member_generator.append(R"~~~(
+        TRY(member_generator.try_append(R"~~~(
     {"@name@"sv, ValueID::@name:titlecase@},
     {"@name@"sv, ValueID::@name:titlecase@},
-)~~~");
+)~~~"));
         return {};
         return {};
     }));
     }));
 
 
-    generator.append(R"~~~(
+    TRY(generator.try_append(R"~~~(
 };
 };
 
 
 Optional<ValueID> value_id_from_string(StringView string)
 Optional<ValueID> value_id_from_string(StringView string)
@@ -114,27 +114,27 @@ Optional<ValueID> value_id_from_string(StringView string)
 
 
 StringView string_from_value_id(ValueID value_id) {
 StringView string_from_value_id(ValueID value_id) {
     switch (value_id) {
     switch (value_id) {
-)~~~");
+)~~~"));
 
 
     TRY(identifier_data.try_for_each([&](auto& name) -> ErrorOr<void> {
     TRY(identifier_data.try_for_each([&](auto& name) -> ErrorOr<void> {
         auto member_generator = TRY(generator.fork());
         auto member_generator = TRY(generator.fork());
-        member_generator.set("name", name.to_deprecated_string());
+        TRY(member_generator.set("name", TRY(String::from_deprecated_string(name.to_deprecated_string()))));
         TRY(member_generator.set("name:titlecase", TRY(title_casify(name.to_deprecated_string()))));
         TRY(member_generator.set("name:titlecase", TRY(title_casify(name.to_deprecated_string()))));
-        member_generator.append(R"~~~(
+        TRY(member_generator.try_append(R"~~~(
     case ValueID::@name:titlecase@:
     case ValueID::@name:titlecase@:
         return "@name@"sv;
         return "@name@"sv;
-        )~~~");
+        )~~~"));
         return {};
         return {};
     }));
     }));
 
 
-    generator.append(R"~~~(
+    TRY(generator.try_append(R"~~~(
     default:
     default:
         return "(invalid CSS::ValueID)"sv;
         return "(invalid CSS::ValueID)"sv;
     }
     }
 }
 }
 
 
 } // namespace Web::CSS
 } // namespace Web::CSS
-)~~~");
+)~~~"));
 
 
     TRY(file.write_until_depleted(generator.as_string_view().bytes()));
     TRY(file.write_until_depleted(generator.as_string_view().bytes()));
     return {};
     return {};