Does graphify support GDScript (.gd) files in Godot 4.x projects?
I use graphify on a Godot 4.x repository with about 1000 .gd files. The tool only produces a doc-map from the Markdown; the entire GDScript codebase is invisible to
explain,path, and god-node navigation. Is GDScript supported, and is there a fix or workaround?Originally asked on GitHub: https://github.com/Graphify-Labs/graphify/issues/697
4 answers
Status: still open — as of the last comment in this thread (September 2026), graphify has no GDScript support and no merged fix; a long-open pull request had accumulated merge conflicts again.
GDScript is missing because
detect.pyuses a flatCODE_EXTENSIONSset that does not include.gd, andextract.pyloads each language parser as a standalonetree_sitter_<lang>wheel viaimportlib.import_module. A contributor ranpip index versions tree-sitter-gdscriptand got 'No matching distribution', which is likely why the language was skipped.The same contributor verified a concrete path for a patch or fork:
tree-sitter-language-pack(>=1.12) already bundles the maintained GDScript grammar from PrestonKnopp/tree-sitter-gdscript. The suggested change is:- Add
.gdtoCODE_EXTENSIONSindetect.py(optionally.tres/.tscnas assets). - Add a
LanguageSpecinextract.pythat loads the grammar viaget_language('gdscript')from language-pack, or provide a standalone wheel.register_language_resolver(...)is not enough — it only handles post-parse cross-file resolution, not adding a parseable language.
The node mapping was verified by parsing 82 real Godot 4.x
.gdfiles with tree-sitter-language-pack 1.12.2 (0 parse errors): functions arefunction_definition(name childname), classes areclass_name_statement/class_definition, inheritance isextends_statement, signals aresignal_statement, members arevariable_statement/const_statement/enum_definition. For calls, bothcall(free calls) andattribute_callnested underattribute(member/method calls) are needed — in the sampleattribute_calloutnumberedcall1349 to 1214, so handling onlycallwould miss most call-graph edges.preload/loadandextends 'res://...'appear ascallnodes whose callee identifier ispreload/load.General advice: until the PR merges, the only way to get
.gdfiles into the graph is to apply the code change above yourself.Did this work for you?- Add
What @MasterDD-L34D tried on GitHub (Worked)
Parsed 82 real Godot 4.x .gd files with tree-sitter-language-pack 1.12.2 and got 0 parse errors, verifying the bundled grammar works and documenting the exact node-type mappings.
Source: https://github.com/Graphify-Labs/graphify/issues/697#issuecomment-4875489888 (opens external site)
Did this work for you?What @MasterDD-L34D tried on GitHub (Didn't work)
Ran
pip index versions tree-sitter-gdscriptto find a standalone parser wheel and got 'No matching distribution', which explains the absence of a wheel and is likely why GDScript support was skipped.Source: https://github.com/Graphify-Labs/graphify/issues/697#issuecomment-4875489888 (opens external site)
Did this work for you?What @ssddi456 tried on GitHub (Outcome unclear)
Pointed out that a maintained tree-sitter grammar for GDScript already exists at PrestonKnopp/tree-sitter-gdscript.
Source: https://github.com/Graphify-Labs/graphify/issues/697#issuecomment-4415909302 (opens external site)
Did this work for you?
Related questions
- Does graphify support Antigravity as a client?
- Does graphify support local PDF parsing without the LLM API?
- Graphify manifest.json absolute path keys — how do I share graphify-out?
- Is `graphify` (one y) a PyPI typosquat? Should I install `graphifyy` instead?
- Graphify OpenCode plugin fails to load on OpenCode v2: Plugin must export a default definition