Create a custom index in doxygen - doxygen

I would like create a index of ".h" files in my doxygen-ed project in addition of the default index.
Is there a way to do this automatically ?

I have do this by adding a \addtogroup in every headers like this :
/** \addtogroup Headers
* - oge-mutex.h
* \copybrief oge-mutex.h
*/
This will create a page with a list of all marked headers and her brief description.

Related

doxygen: nest subpage titles inside section title in treeview

I would like to customise the appearance of the navigation tree column to have subpages' title nested inside the section's title they are referenced in. For instance, this simple example
/**
* #mainpage Mainpage
* #section section_1 Section 1
* Description of section 1
*
* #section section_2 Section 2
* Section 2 is composed of the following modules:
* - #subpage module_1_page
* - #subpage module_2_page
*/
/**
* #page module_1_page Module 1
* Module 1 description
*/
/**
* #page module_2_page Module 2
* Module 2 description
*/
results in the following output:
What I would like to achieve is something like this (I manually edited the HTML result):
I had a look at the page Customizing the output of the Doxygen documentation, but I was not able to find anything that seems helpful in this case.
Also, I had a look at grouping as an alternative to pages, but it does not really fit my purposes - I use groups for actual APIs documentation, whereas I'd like to use pages for more "descriptive" documentation.
Is this possible to achieve? For the sake of completeness, I am using doxygen v1.8.13.

Doxygen: extract specific doxygen defines into separate documentaion

I have some source code (STM32 Peripherial Lib) with existing doxygen parameters which my Doxygen Builds without Problems.
For my project I want to generate a document with all functions in each file and a specific information which I want to add to the functions. But I want to keep the old informations for another doxygen configuration.
Is that possible?
I already added this for testing:
\ifnot "SECTION_DEFINE"
<normal Doxygen Parameters from original Source Code>
\elsif "SECTION_DEFINE"
#brief Function Check TODO
\endif
With this I could deactivate the existing documentation, but I need to write this \ifnot \elsif \endif to every function.
Can I just declare a Tag and only generate the documentation for this specific tag?
Kind regards
Andi
You may create a "related page" where only your additional information will be displayed with the \xrefitem command. As \xrefitem will also create a special text section within your original documentation you may want to combine it with your original idea of using section labels and conditional documentation. To top this concept off, use aliases in order to make your documentation more readable.
Consider this example code:
/** ST documentation
* foobar
* \exclusive for andi's function \endif
*/
void andreas(void);
/** ST documentation
* foobar
* \exclusive for beni's function \endif
*/
void benjamin(void);
You may use this alias in your Doxyfile: exclusive=\if SECTION_DEFINE \xrefitem viparea "Exclusive" "VIPs".
As long as SECTION_DEFINE is not defined, the "exclusive" information will not be included in your documentation. As soon as this section is defined, a "related page" (here: viparea.html) is created in your HTML documentation containing your documented items (here: andreas and benjamin) with the exclusive paragraph behind the command. The result:

Extbase view variable not getting

/**
* New post form
* #param \Vendor\My\Domain\Model\Post|null $newPost New post
* #return void
* #dontvalidate $newPost
*/
public function newAction(\Vendor\My\Domain\Model\Post $newPost = NULL) {
$this->view->assign('test', 'hello');
$this->view->assign('categoryList', $this->categoryRepository->findAllByBlog(0));
$this->view->assign('postObject', $newPost);
}
public function editAction() {
$this->view->assign('categoryList', $this->categoryRepository->findAllByBlog(0));
$postObject = $this->postRepository->findOneByUid($this->request->getArgument('id'));
$this->view->assign('postObject', $postObject);
}
this is my script and my problem is that I have a categoryList array, its is only getting in edit view. I want to use that category list on newaction. When I tried to foreach that array in new action view file it is getting empty. and i can get it after saving the postObject. Any idea about this particular problem? and variable test from newaction also not visible in the newAction Template file.
Am using Typo3 7.6.11
Declare arguments you want to receive, as arguments for your controller action. Reference this argument name correctly in Fluid templates when you build links to your controller action. Do not access arguments from the Request directly. Add correct PDPdoc comments for it, too.
Basically: do the correct thing with your arguments instead of bypassing the framework. This advise applies to anything you do in Extbase.
NB: New and Edit actions should never, ever share the same template (this further indicates you bypass the framework's expected behavior). Create and New, yes. But not New and Edit. If necessary, put the form fields in a partial and the form itself in separate templates so you can control the action building and object/object-name setup correctly.
If a $this->***Repository method returns NULL, it may be that the repository had no StoragePid defined.
Make sure both newAction and editAction have the same storagePid defined in TypoScript or your Backend Plugin Settings (Flexform).
The TypoScript for this would look something like this:
plugin.tx_extension.persistence.storagePid = 100

Consolidating Documentation Fragments on one page

I would like to consolidate documentation fragments on one page.
My use case is I have two different source modules where I want to put a doxygen fragment. Then in a third source module I want to put a #page that references the fragments.
My hope is that when the doc is generated I will see those 5 fragments consolidated onto one .html page.
The page/subpage system does not work because that just puts links on a page to the documentation fragments. I want the fragments consolidated onto one page.
This is the first .c file:
/*! #setfrag FRAG1
** this is some text for fragment 1
*/
This is a second file:
/*! #setfrag FRAG2
** This is some text for fragment 2.
*/
This is a third file:
/*! #page SOMEPAGE Page demonstrates consolidating fragments.
** #getfrag FRAG1
** #getfrag FRAG2
*/
I'm not sure if I understood your question right, but this should be exactly what grouping does. You can define a "group" using the tag #defgroup groupname description and then add the fragments to the group using the tag #addtogroup groupname.
Then you would define your group in any file (e.g. you could create a seperate file "groups.dox"):
/**
* #defgroup myGroup My Group
* #brief A brief description of \"My Group\"
* #details A more detailed description of \"My Group\".
*/
Them you can add fragments or complete files to this group by adding the following to the files:
/**
* #addtogroup myGroup
* #{
*/
// any contents you want to add to the group
/**
* #}
*/
This results in a tab called "Modules" where each group is listed as a "Module" with its own page. If you want to add the whole file documentation to the group ensure that you also enclose the #file tag with the #{ and #} tags.

Eclipse template for comment not working (cursor positioning)

I have set the template for "Types" to be:
/** $$Id$$
* $$Author$$
* $$Revision$$
*
* ${cursor}
*/
However the ${cursor} isn't working as it ought to, you can see here ( http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Fconcepts%2Fconcept-template-variables.htm - top of the first table) how ${cursor} should work.
When I use this template (by typing /** and then pressing enter) I get the following (where | denotes the cursor position)
/**
* |$Id$
* $Author$
* $Revision$
*
*
*/
How can I fix this, or if I am at fault, how can I get the desired behaviour?
The help does not make it very clear but the variables list you reference only applies to the 'Java > Editor > Templates' templates and not to the 'Java > Code Style > Code Templates'.
There is a much more restricted list for variables for the Code Templates which does not include ${cursor}.
Only the variables shown by the 'Insert Variable...' button of the Edit Template dialog are available.