mirror of
https://github.com/RGBCube/serenity
synced 2025-05-20 14:55:08 +00:00

This commit introduces a couple of connected changes that are hard to untangle, unfortunately: - Parse GML into the AST instead of JSON - Change the load_from_json API on Widget to load_from_gml_ast - Remove this same API from Core::Object as it isn't used outside of LibGUI and was a workaround for the object registration detection; by verifying the objects we're getting and casting we can remove this constraint. - Format GML by calling the formating APIs on the AST itself; remove GMLFormatter.cpp as it's not needed anymore. After this change, GML formatting already respects comments :^)
24 lines
418 B
C++
24 lines
418 B
C++
/*
|
|
* Copyright (c) 2021, Linus Groh <linusg@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/Forward.h>
|
|
#include <AK/String.h>
|
|
#include <LibGUI/GML/AST.h>
|
|
#include <LibGUI/GML/Parser.h>
|
|
|
|
namespace GUI::GML {
|
|
|
|
inline String format_gml(StringView string)
|
|
{
|
|
auto ast = parse_gml(string);
|
|
if (ast.is_error())
|
|
return {};
|
|
return ast.value()->to_string();
|
|
}
|
|
|
|
}
|