exhale icon indicating copy to clipboard operation
exhale copied to clipboard

class hierarchy images with graphviz

Open svenevs opened this issue 5 years ago • 6 comments

It is possible to get the graphviz code generated from doxygen and you can use graphviz in sphinx. Needs more investigation, but this would be a really nice feature. Maybe we can even filter the generated ones to make ~better~ different graphs?

Any input welcome, this is a wish-list item. Hopefully build times won't explode.

svenevs avatar Dec 10 '18 11:12 svenevs

This is the main thing that I want out of doxygen to use in Sphinx.

folofjc avatar Dec 19 '18 17:12 folofjc

@folofjc thanks for expressing interest! I'm currently fixing up some unnecessary constraints on Doxygen for a new minor release. I'll take another look at this after because I don't think this will actually be that difficult to obtain a minimal working version of that we can improve upon (change graph style for example). If so this will end up in the next release.

Timeline is hopefully no more than two weeks given upcoming travel and family fun. When I get the prototype out can I ping you for testing?

svenevs avatar Dec 19 '18 19:12 svenevs

@svenevs That would be great, thanks! I looked at trying to strip it out of the html, but it didn't look that straightforward. My current "kludge" was just to edit the Doxygen.xml file so that it only output the trees. Then I just linked to this in my .rst. Being able to natively insert the images would be a huge improvement.

folofjc avatar Dec 19 '18 19:12 folofjc

Hey, @svenevs did you ever come around to do this, or are you still searching for help?

mr-ubik avatar Oct 14 '19 15:10 mr-ubik

Hi @mr-ubik, it definitely fell off the radar. I'm carving out some time to work on exhale tomorrow to try and hack in a quick feature request. Will see if I can get some progress toward this. Thoughts / suggestions very welcome! But before spending time on it let me see if I can get the core logic in since exhale is not written very well for other people to contribute (one of the main goals of the pending rewrite, #62).

I'd be particularly interested to hear if there's any specific styling control desired. node style, edge style, etc. We could allow yet-another-config-variable to enable (untested) digraph styling code that gets injected at the beginning of the graph, falling back on "sensible" defaults. Or we could get fancy with it depending on the level of control wanted here. I found out that full-blown-function objects actually can be passed through exhale_args with an interesting caveat: they cannot be defined in conf.py (because of how Sphinx works).

svenevs avatar Oct 20 '19 03:10 svenevs

I have never given too much thought about configuring it since I am used to the delt Python one. I would guess that the default behavior should be the same one offered in Doxygen by default, so for each class render the parents and children with Graphviz (now is presented only in a piece of textual information)

mr-ubik avatar Oct 21 '19 12:10 mr-ubik