💡 Add Doxygen fix for @var member variable documentation.

Add an input filter to Doxygen to parse @var class member variable
documentation, so it is bit more compatible how anybody else interpretes
it.
This commit is contained in:
Klaus Weidenbach 2017-05-04 00:43:55 +02:00
parent 5c7acf4807
commit 1f6386bd60
2 changed files with 21 additions and 0 deletions

View file

@ -32,3 +32,6 @@ DOT_IMAGE_FORMAT = svg
INTERACTIVE_SVG = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = NO
# fix @var (https://bugzilla.gnome.org/show_bug.cgi?id=626105)
#INPUT_FILTER = "sed -e 's/@var\s/@see /'"
INPUT_FILTER = "php util/Doxygen_phpvarfilter.php"

View file

@ -0,0 +1,18 @@
<?php
/**
* @file Doxygen_phpvarfilter.php
* @brief A Doxygen INPUT_FILTER to parse \@var member variable documentation.
*
* An input filter for Doxygen to parse \@var class member variable documentation,
* so it is a bit more compatible how anybody else interpretes it.
*
* @see http://stackoverflow.com/questions/4325224/doxygen-how-to-describe-class-member-variables-in-php/8472180#8472180
*/
$source = file_get_contents($argv[1]);
$regexp = '#\@var\s+([^\s]+)([^/]+)/\s+(var|public|protected|private)\s+(\$[^\s;=]+)#';
$replac = '${2} */ ${3} ${1} ${4}';
$source = preg_replace($regexp, $replac, $source);
echo $source;