Browse Source

Merge pull request #76410 from YuriSizov/docs-highligh-editor-only

Create an "Editor-only" section in the online class reference
Rémi Verschelde 2 years ago
parent
commit
fa40b0fdba
3 changed files with 32 additions and 2 deletions
  1. 1 1
      .github/workflows/static_checks.yml
  2. 30 0
      doc/tools/make_rst.py
  3. 1 1
      misc/hooks/pre-commit-make-rst

+ 1 - 1
.github/workflows/static_checks.yml

@@ -82,7 +82,7 @@ jobs:
 
       - name: Documentation checks
         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)
         run: |

+ 30 - 0
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")

+ 1 - 1
misc/hooks/pre-commit-make-rst

@@ -9,4 +9,4 @@ if [[ "$py_ver" != "3" ]]; then
   PYTHON+=3
 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