diff options
-rw-r--r-- | util/Doxyfile | 3 | ||||
-rw-r--r-- | util/Doxygen_phpvarfilter.php | 18 |
2 files changed, 21 insertions, 0 deletions
diff --git a/util/Doxyfile b/util/Doxyfile index 1bca6cbd4..7be774a81 100644 --- a/util/Doxyfile +++ b/util/Doxyfile @@ -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" diff --git a/util/Doxygen_phpvarfilter.php b/util/Doxygen_phpvarfilter.php new file mode 100644 index 000000000..da6cf1666 --- /dev/null +++ b/util/Doxygen_phpvarfilter.php @@ -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; |