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.
This commit is contained in:
Yuri Sizov 2023-04-24 21:06:55 +02:00
parent 14c582bca8
commit 3ae282b452
3 changed files with 32 additions and 2 deletions

View file

@ -82,7 +82,7 @@ jobs:
- name: Documentation checks - name: Documentation checks
run: | run: |
doc/tools/make_rst.py --dry-run --color doc/classes modules platforms doc/tools/make_rst.py --dry-run --color doc/classes modules platform
- name: Style checks via clang-format (clang_format.sh) - name: Style checks via clang-format (clang_format.sh)
run: | run: |

View file

@ -33,6 +33,7 @@ BASE_STRINGS = [
"Globals", "Globals",
"Nodes", "Nodes",
"Resources", "Resources",
"Editor-only",
"Other objects", "Other objects",
"Variant types", "Variant types",
"Description", "Description",
@ -74,13 +75,23 @@ CLASS_GROUPS: Dict[str, str] = {
"node": "Nodes", "node": "Nodes",
"resource": "Resources", "resource": "Resources",
"object": "Other objects", "object": "Other objects",
"editor": "Editor-only",
"variant": "Variant types", "variant": "Variant types",
} }
CLASS_GROUPS_BASE: Dict[str, str] = { CLASS_GROUPS_BASE: Dict[str, str] = {
"node": "Node", "node": "Node",
"resource": "Resource", "resource": "Resource",
"object": "Object", "object": "Object",
"variant": "Variant",
} }
# Sync with editor\register_editor_types.cpp
EDITOR_CLASSES: List[str] = [
"AnimationTrackEditPlugin",
"FileSystemDock",
"ScriptCreateDialog",
"ScriptEditor",
"ScriptEditorBase",
]
class State: class State:
@ -635,6 +646,11 @@ def main() -> None:
grouped_classes[group_name] = [] grouped_classes[group_name] = []
grouped_classes[group_name].append(class_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("")
print("Generating the index file...") print("Generating the index file...")
@ -724,6 +740,17 @@ def get_class_group(class_def: ClassDef, state: State) -> str:
return group_name 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. # 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") f.write(f" class_{CLASS_GROUPS_BASE[group_name].lower()}\n")
for class_name in grouped_classes[group_name]: 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(f" class_{class_name.lower()}\n")
f.write("\n") f.write("\n")

View file

@ -9,4 +9,4 @@ if [[ "$py_ver" != "3" ]]; then
PYTHON+=3 PYTHON+=3
fi fi
$PYTHON doc/tools/make_rst.py doc/classes modules --dry-run --color $PYTHON doc/tools/make_rst.py doc/classes modules platform --dry-run --color