-
Notifications
You must be signed in to change notification settings - Fork 93
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Doxygen: @param / @return / @retval / @exception ignored on typdef function pointer #85
Comments
Hi, the Doxygen XML exposes parameters of function pointer typedefs only as a long string, not as separate parameters (so I can't match the One option is patching Doxygen so it parses and exposes function pointer typedef parameters the same it does for functions. Then I could show the typedefs the same way I'm showing the functions and also correctly match the documentation to each parameter, preserve the order, warn about missing or superfluous ones etc. But someone has to do this, this is one area of Doxygen sources that I'm very afraid to touch :) Another possibility is just printing the parameter docs in a table, without trying to match them to real parameters. This means no validity checks would be done and it's completely in the full responsibility of the user to ensure the parameters match (meaning, in the example above you could have |
Something would be better than nothing, even if it can't be validated, and even if the order might be wrong. I'd say these are user bugs anyway. Looking at the XML for typedef: <memberdef kind="typedef" id="setmatch_8h_1a56e42e8057ff87b6bde14c17e8b50066" prot="public" static="no">
<type>void(*</type>
<definition>typedef void(* setmatch_LogCallback) (setmatch_LogLevel level, const char *message)</definition>
<argsstring>)(setmatch_LogLevel level, const char *message)</argsstring>
<name>setmatch_LogCallback</name>
<!-- snip -->
<parameternamelist>
<parametername>level</parametername>
</parameternamelist>
<parameterdescription>
<para>one of the values of the #semtach_LogLevel enumeration, specifying the importance of the message. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>message</parametername>
</parameternamelist>
<parameterdescription>
<para>a null-terminated string containing the message to write. this buffer is only valid for the length of the call, so if you plan to use it afterwards, you must make a copy of it. </para></parameterdescription>
</parameteritem>
</parameterlist> And for an actual function: <memberdef kind="function" id="setmatch_8h_1a1ac4b223c648a8c882266873c74b8c88" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
<type>void</type>
<definition>void setmatch_setLogCallback</definition>
<argsstring>(setmatch_LogCallback logCallback)</argsstring>
<name>setmatch_setLogCallback</name>
<param>
<type><ref refid="setmatch_8h_1a56e42e8057ff87b6bde14c17e8b50066" kindref="member">setmatch_LogCallback</ref></type>
<declname>logCallback</declname>
</param>
<briefdescription>
<para>Sets the log function called by the library when it wants to report something. </para> </briefdescription>
<detaileddescription>
<para>If you set this to NULL, the default behaviour of reporting to stdout will be used. Therefore, if you want to suppress all log messages, you must create a no-op function and pass it here.</para><para>This is global and will affect all databases and threads.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>logCallback</parametername>
</parameternamelist>
<parameterdescription>
<para>the log function to call. </para></parameterdescription>
</parameteritem>
</parameterlist> The validation isn't a big concern, but it seems the actual problem is that the types (and type ID references) are missing. |
I agree. Will add this support. I'm quite busy now, so it might take a while. Hope that's okay :)
Oh, haha, yes :/ I think the lack of |
Easiest way to repro this is to make a file with this:
When running dox2html5.py, it gives:
The text was updated successfully, but these errors were encountered: