mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 09:52:44 +00:00 
			
		
		
		
	 41ef4f11dc
			
		
	
	
		41ef4f11dc
		
	
	
	
	
		
			
			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();
 | |
| }
 | |
| 
 | |
| }
 |