doxyrest icon indicating copy to clipboard operation
doxyrest copied to clipboard

Link to source files?

Open strasdat opened this issue 5 years ago • 3 comments

Doxyrest is awesome! I tried various tools including breathe/exhale, but I really like the clean pipeline from XML to rst to html.

However, there is one feature I'm missing: Explicit documentation of files:

  • /file tag seems to be ignored.
  • Classes/structs from multiple files are merged into a single page, which is nice. But for the reader it would be good to know which class is in which files.
  • Links to raw source code, as in doxygen/breathe/exhale would be nice to have.

Are these features already supported, or are there plans to add them in the future?

strasdat avatar May 29 '19 17:05 strasdat

Thank you, I'm glad you like the tool!

There are no settings for what you ask -- file compounds and program listings are currently ignored :( But Doxyrest can be easily modified to produce pages for that, as well. File compounds are essentially the same entities as groups, and program listings use the same structure as regular code snippets. Probably, we will need a setting to show or hide files.

Also, we need to decide where to put detailed documentation for members. Probably, we want to keep it on group/namespace pages (just like now), and file pages will only have links.

But all in all, it can be done, yes. At the moment, I'm occupied with another project, so I can't give a timeframe for this feature. If you want it sooner, you can implement it and send me a pull request.

vovkos avatar May 30 '19 10:05 vovkos

@vovkos, thanks! I don't have an overview over doxyrest yet. Which files would I need to touch to make this PR. Just in frame/cfamily, or would I need to write c++ code?

strasdat avatar May 30 '19 20:05 strasdat

Modifications of C++ is required in this case (file compounds are just not exported to Lua frames at the moment).

Something like m_fileArray should be added to Module, then CompoundDefType should be modified to handle CompoundKind_File during parsing and add it to this m_fileArray, then it should be exported in Generator::luaExport as something like g_fileArray

Then inside index_main.rst we should iterate through this g_fileArray and generate pages for each file compound. A new page frame called something like file.rst.in should be created, too -- based on group.rst.in.

Now that I wrote all the above, this feature is not a one-liner, apparently :)

vovkos avatar May 31 '19 03:05 vovkos