ServiceStack marks rest paths for web services using c# attributes.
For example
[RestService("/hello1")]
[RestService("/hello2")]
public class Hello
I would like to make Doxygen include values of the RestService attribute in the doxygen output for the Hello class. I'm not concerned too much with pretty formattin if the full line with brackets is included in the output document.
Any suggestions?
A quick and dirty trick would be a preferable to writing a Doxygen extension ;)
Cheers
Tymek
====EDIT
The Python version (so will work on Windows easily) of doxygen user's answer would be:
#!/usr/bin/env python
import sys
import re
if (len(sys.argv) < 2):
print "No input file"
else:
f = open(sys.argv[1])
line = f.readline()
while line:
re1 = re.compile("\[RestService\(\"(.*)\",.*\"(.*)\"\)]")
re1.search(line)
sys.stdout.write(re1.sub(r"/** \\b RestService: \2 \1\\n */\n", line))
#sys.stdout.write(line)
line = f.readline()
f.close()
and the DOXYFILE would have:
INPUT_FILTER = "doxygenFilter.py"
You could make an input filter that converts a line with
[RestService("/hello1")]
to
/** \b RestService: "/hello1"\n */
like for instance by putting following piece of perl magic in a file called filter.pl
:
open(F, "<", $ARGV[0]);
while(<F>) { /^\s*\[RestService\((.*)\)\]\s*$/ ?
print "/** \\b RestService: $1\\n */\n" : print $_; }
and use that with the INPUT_FILTER
tag in the Doxyfile:
INPUT_FILTER = "perl filter.pl"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With