From 03b05cf9acd69b7eeced919012c215b22cd901ab Mon Sep 17 00:00:00 2001
From: Danil Alexeev <dalexeev12@yandex.ru>
Date: Fri, 22 Nov 2024 14:03:21 +0300
Subject: Core: Fix built-in enum constant bindings

---
 editor/doc_tools.cpp | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

(limited to 'editor')

diff --git a/editor/doc_tools.cpp b/editor/doc_tools.cpp
index 79e0c7ebd1..842c4acce0 100644
--- a/editor/doc_tools.cpp
+++ b/editor/doc_tools.cpp
@@ -908,6 +908,23 @@ void DocTools::generate(BitField<GenerateFlags> p_flags) {
 
 		c.properties.sort();
 
+		List<StringName> enums;
+		Variant::get_enums_for_type(Variant::Type(i), &enums);
+
+		for (const StringName &E : enums) {
+			List<StringName> enumerations;
+			Variant::get_enumerations_for_enum(Variant::Type(i), E, &enumerations);
+
+			for (const StringName &F : enumerations) {
+				DocData::ConstantDoc constant;
+				constant.name = F;
+				constant.value = itos(Variant::get_enum_value(Variant::Type(i), E, F));
+				constant.is_value_valid = true;
+				constant.enumeration = E;
+				c.constants.push_back(constant);
+			}
+		}
+
 		List<StringName> constants;
 		Variant::get_constants_for_type(Variant::Type(i), &constants);
 
-- 
cgit v1.2.3