Godot Version
4.6.1
Being lazy as I am I would like to leverage as much of the inline code documentation as I can.
I created a cmake script to run doxygen and create xml oputput. It calls a python script that converts the doxygen xml for each class to valid Godot class documentation for bound methods, properties, and constants, writing the output to the doc_classes folder. I have properties and methods working but have hit a snag.
The only document reference I could find was here:
So for current testing I’m using the Summator and TrafficLight examples from the Godotcon 2024
GDExtension video. The traffic light example has some constant enums. Would these be output to the constants node? If so what is the format for the constants nodes?
Code is left panel, reference docs from above link on right
“Lazy”.
Inigo Montoya might have an opinion on that.
Since you like to do engine improvements, you know what piece of automation I’d find really really useful, a (LLM based) tool that turns GDScript resource classes into their C++ equivalents.
That sounds like it would require actual work, see lazy comment above.
I imagine there should be a way though, as the functionality likely already exists in the engine, to provide context for the language server. It would be interesting to do.
Currently I’m just working on a few generic tools that would work for any extension. One of the first things i did was create a new file template for Rider and CLion to generate the boilerplate for a typical class. If you use either, I would be happy to provide them. here’s the Rider version, note Organization is not part of the template but part of my c file header template.

you could use the editor dump commands to output the xml stubs with the format, but I believe(based on output for my own extension) that it it’s something like this:
<constants>
<constant name="NONE" value="0" enum="Version">
Unknown or invalid UUID version.
</constant>
<constant name="TIME_BASED" value="1" enum="Version">
Version 1: Time-based UUID.
</constant>
<constant name="DCE_SECURITY" value="2" enum="Version">
Version 2: DCE Security UUID.
</constant>
<constant name="NAME_BASED_MD5" value="3" enum="Version">
Version 3: Name-based UUID using MD5 hashing.
</constant>
<constant name="RANDOM_NUMBER_BASED" value="4" enum="Version">
Version 4: Randomly generated UUID.
</constant>
<constant name="NAME_BASED_SHA1" value="5" enum="Version">
Version 5: Name-based UUID using SHA-1 hashing.
</constant>
</constants>
is the python script available anywhere? seems like a useful thing to use.
Soon, I’m just re-writing the _bind_methods parser, cleaning up the regex, and de or is it un spaghetti-fying, as It was mostly something to toy with until it wasn’t.
I should have it done tomorrow, when it is I will be sure to let you know.
Thanks for the information about the constants, and the command dump that will be most useful to know.