director method - PHP NULL gets returned by the subclassed method
in this case, so the directorout typemap needs to allow that (at
least if an exception is active).
Add %feature("doxygen:ignore:<command>") implementation, documentation and
test case.
This feature allows to use custom tags in C++ Doxygen comments for
C++-specific things that don't make sense in the context of the target
language and also allows to insert contents specific to the target language in
the C++ comments using (different) custom commands, which is very useful in
practice to explain the particularities of the API wrappers.
For some reason, Doxygen comments such as @class or @enum were considered to
be "structural" (whatever this means) and completely removed during the
parsing time. This is wrong as such comments can be attached to their
corresponding declarations and while it would be arguably better to check that
this is indeed the case (e.g. "@class Foo" really appears before or after the
declaration of this class), throwing them away is definitely not the right
thing to do and keeping them without any further checks is a better alternative.
The code wrongly recognized something like "@direction" as a structural "@dir"
comment (why is the latter structural is another question).
Add a check that we've really found the entire tag and not just a prefix of
some other tag.
One Doxygen test file used "#" for comments for some reason, this doesn't work
with the latest SWIG trunk where a lone "#" is considered to be an unknown
preprocessor directive.
Although all standard Doxygen commands are composed from lower case letters
and some special symbols only, custom commands can include upper case letters
and digits too.
Also use a symbolic constant defined once instead of repeating the same set of
characters twice.
DoxygenParser::commandBelongs() returned the same value (0) for simple
commands and unrecognized commands. Fix this by returning a different NONE
value for the latter.
Put them all in a single table instead of describing doxygen:notranslate
separately for Java and Python when it does the same thing for both.
And while doxygen:nolinkranslate and doxygen:nostripparams are currently
Java-specific, it probably won't remain this way and these features would
either be made to work for Python as well or, perhaps, removed entirely.
Silently ignoring unknown Doxygen commands is not a reasonable default
behaviour, it's simple enough to turn off the warning if the command is really
supposed to be just ignored, but it's too easy to not notice a real problem if
it isn't.
Turn WARN_DOXYGEN_UNKNOWN_COMMAND on by default and add a test to the errors
test suite checking that it is indeed given.