I'm trying to create documentation for IUPLua to provide full Intellisense support with Lua language server for IUPLua users. I want to describe each element, each dialog and each attribute so users get autocompletion, spell checking and other features in their text editor while typing their code instead of consulting documentation in their browser.
IUP consists of many elements which have many different attributes. Some attributes for different elements have the same name but can take different values (like "ALIGNMENT"). These values are present in the description in plain text which makes them easy to read but difficult to parse. Some elements inherit other elements which is also described as plain text making them as difficult to parse. Some elements (such as IupTree) have their attributes and callbacks described in separate documents. Some elements have restrictions on their attributes which is again described in plain text (for example, IupTree documentation contains this line: "Drag & Drop attributes and callbacks are supported, but SHOWDRAGDROP must be set to NO.").
Resolving all these difficulties by hand not only would be time-consuming but could also lead to mistakes in generated files which would basically provide false documentation to the users. I also would like to be able to generate documentation for IUP 4.0 (which I hope is released sooner or later) the same way.
Is there some kind of UML-like class diagram for IUP that would cover all relationships, callbacks, attributes and their possible values for each element and dialog that would allow parsing it to
an abstract annotation system?