Skip to content

feat: add relationship tracking for GDScript - #62

Merged
bartolli merged 2 commits into
bartolli:mainfrom
nguyenchiencong:main
Oct 30, 2025
Merged

feat: add relationship tracking for GDScript#62
bartolli merged 2 commits into
bartolli:mainfrom
nguyenchiencong:main

Conversation

@nguyenchiencong

Copy link
Copy Markdown
Contributor

Summary

Adds full relationship tracking for GDScript, including call, signal emission, extends, and preload dependency extraction, and wires those relationships into parser and MCP integration tests.

Changes

  • Taught GdscriptParser to collect call targets (including emit_signal) and type/resource uses from extends, preload constants, and script-level loads.
  • Added GDScript fixture scripts that exercise signals, preload constants, and reset behavior for tests.
  • Introduced parser test coverage to ensure find_calls and find_uses report the expected edges.
  • Added an integration test that indexes the fixtures, runs MCP semantic search, and verifies analyze_impact succeeds using the new relationships.

Technical Details

  • Added helpers to strip quotes and extract signal/preload targets, plus recursive walkers that propagate scope context and avoid duplicate preload edges.
  • All constants are registered with a shared <script> scope to align extends/use output with other languages.
  • Integration test enables semantic search, indexes fixtures, and pulls symbol IDs from MCP semantic_search_with_context output before calling analyze_impact.

Test Coverage

  • cargo test tests::parsers_gdscript::test_relationships
  • cargo test --test integration_tests test_gdscript_mcp

@github-actions

github-actions Bot commented Oct 30, 2025

Copy link
Copy Markdown
Contributor

✅ Quick checks success

@bartolli
bartolli merged commit 2002cc2 into bartolli:main Oct 30, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants