summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Sizov <yuris@humnom.net>2023-04-24 21:06:55 +0200
committerYuri Sizov <yuris@humnom.net>2023-04-26 14:47:56 +0200
commit289d551fbb1efe02b65139a07eb5e35374cbaf96 (patch)
tree67a15084ccefde1820bd6889195c8ceddaf46de1
parent112677c39efd2fdf8623a4aca7056c9b4d2f058a (diff)
Create an "Editor-only" section in the online class reference
This helps to find such classes without digging through the rest of the class reference. Editor-only classes can still be found under your normal "Node" and "Resource" types. This also fixes a typo and a missed case from the recent platform docs PR. (cherry picked from commit 3ae282b452c1b35015cf327b376ef635b08393b5)
-rwxr-xr-xdoc/tools/make_rst.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/doc/tools/make_rst.py b/doc/tools/make_rst.py
index 1f71b77cbd..98412eca58 100755
--- a/doc/tools/make_rst.py
+++ b/doc/tools/make_rst.py
@@ -33,6 +33,7 @@ BASE_STRINGS = [
"Globals",
"Nodes",
"Resources",
+ "Editor-only",
"Other objects",
"Variant types",
"Description",
@@ -74,13 +75,23 @@ CLASS_GROUPS: Dict[str, str] = {
"node": "Nodes",
"resource": "Resources",
"object": "Other objects",
+ "editor": "Editor-only",
"variant": "Variant types",
}
CLASS_GROUPS_BASE: Dict[str, str] = {
"node": "Node",
"resource": "Resource",
"object": "Object",
+ "variant": "Variant",
}
+# Sync with editor\register_editor_types.cpp
+EDITOR_CLASSES: List[str] = [
+ "AnimationTrackEditPlugin",
+ "FileSystemDock",
+ "ScriptCreateDialog",
+ "ScriptEditor",
+ "ScriptEditorBase",
+]
class State:
@@ -635,6 +646,11 @@ def main() -> None:
grouped_classes[group_name] = []
grouped_classes[group_name].append(class_name)
+ if is_editor_class(class_def):
+ if "editor" not in grouped_classes:
+ grouped_classes["editor"] = []
+ grouped_classes["editor"].append(class_name)
+
print("")
print("Generating the index file...")
@@ -724,6 +740,17 @@ def get_class_group(class_def: ClassDef, state: State) -> str:
return group_name
+def is_editor_class(class_def: ClassDef) -> bool:
+ class_name = class_def.name
+
+ if class_name.startswith("Editor"):
+ return True
+ if class_name in EDITOR_CLASSES:
+ return True
+
+ return False
+
+
# Generator methods.
@@ -1472,6 +1499,9 @@ def make_rst_index(grouped_classes: Dict[str, List[str]], dry_run: bool, output_
f.write(f" class_{CLASS_GROUPS_BASE[group_name].lower()}\n")
for class_name in grouped_classes[group_name]:
+ if group_name in CLASS_GROUPS_BASE and CLASS_GROUPS_BASE[group_name].lower() == class_name.lower():
+ continue
+
f.write(f" class_{class_name.lower()}\n")
f.write("\n")