feat(resolve): optional Godot resource DSL hook + Godot docs (L5)#58
Merged
Conversation
Add an opt-in DSL layer (L5) that reads godot.dsl.resourceFields from the nearest .codegraph/codegraph.json and emits a References edge from a .tres [resource] property to its string-literal value, for each listed field name. Off by default: with no config the field list is empty and zero DSL edges are produced. The field list is entirely project-supplied (nothing hardcoded), the config reader mirrors ext_config (walk-up + mtime cache + tolerant parse), and the edge reuses EdgeKind::References (no new kind). ExtResource handle values continue to resolve via the existing T5 path regardless of config.
Add docs/godot.md: the full Godot extraction inventory (project.godot autoload/ input/plugins, .tscn node tree/script binding/signals/groups/instances, .tres references, GDScript dynamic-dispatch edges), the static-vs-runtime division of labor (CodeGraph = static structure/impact; a runtime tool like godot-mcp = run/compile/screenshot), the no-static-caller-not-dead honesty signals, and the opt-in resource DSL hook (godot.dsl.resourceFields). Cross-link from README (Supported Languages + Godot note), docs/languages.md (Tier 3 now lists GodotScene/GodotResource/GodotProject; GDScript notes the dynamic edges), and the zh-CN README mirror. Docs state only static abilities; no runtime/compile/screenshot claims.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Final Godot static-analysis layer: the opt-in resource DSL hook (L5 / T9) plus the Godot documentation (T10).
T9 — optional detection-gated Godot resource DSL edges
godot_dsl_config.rs: readsgodot.dsl.resourceFields(a string array) from the nearest.codegraph/codegraph.json, mirroring theext_configwalk-up + mtime-cache + tolerant-parse pattern..tres[resource]key = "value"lines whose key is in the configured list emit aReferencesedge to the literal value.EdgeKind::References(no new kind).ExtResource(…)handles still resolve via the existing T5 path regardless of config.T10 — Godot docs
docs/godot.md: full extraction inventory, static-vs-runtime boundary (CodeGraph = static structure/impact; runtime tools like godot-mcp = run/compile/screenshot), "no static caller ≠ dead" honesty signals, and the opt-in DSL hook (documented to match the actualresourceFieldsshape).docs/languages.md(Tier 3 now lists the 3 Godot file types; GDScript notes the dynamic edges).Verification
cargo test --workspace: 0 failures (incl. 6 newgodot_dsltests)cargo clippy --workspace --all-targets -- -D warnings: exit 0cargo fmt --all --check: exit 0bash scripts/guardrail.sh: exit 0 (no-AI)git status --porcelain reference/golden/: clean (no corpus drift)oxfmt --checkon touched docs: cleanScope
codegraph-resolve+ docs.