Writing a "Control" nodes EditorPlugin, need to be able to Theme them.

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By JTE

I am writing an EditorPlugin which uses add_custom_type to add a wide variety of unique Control-derived Nodes. They are highly dependant on Styleboxes and Fonts – things that normally a Theme would be able to provide. Unfortunately, GDScript does not allow you to name your classes, nor does any part of the Theme system seem to provide for custom class settings to be shown in the editor itself (aside from manually defining them in the Theme resource individually – which still doesn’t show them in the node itself for overrides, of course).

GDNative can supposedly provide named classes, but I don’t think an EditorPlugin can even use them, nor do I have any strong desire to compile a NativeScript or custom executable with new C++ Modules for every single platform, given that I was hoping to distribute this and/or reuse it for multiple projects.

Right now, I override all of the get_stylebox (and so on) functions with custom wrappers which explicitly check for values in my desired class name before falling back to the built-in parent class, but even that only works from the side of GDScript calling them itself (for example in _draw).

Is there more I can do, or is this as good as it gets?
Is there any GDScript syntax that can add a custom_styles/style_name value to the editor for that automatic add_style_override somehow?