Add a possibility to flexibly ignore custom Doxygen tags.

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.
This commit is contained in:
Vadim Zeitlin 2014-09-03 15:57:56 +02:00
commit 05b5ed11bc
7 changed files with 360 additions and 0 deletions

View file

@ -39,6 +39,7 @@ private:
COMMANDUNIQUE,
COMMAND_HTML,
COMMAND_HTML_ENTITY,
COMMAND_IGNORE,
END_LINE,
PARAGRAPH_END,
PLAINSTRING,
@ -98,6 +99,17 @@ private:
std::string m_fileName;
int m_fileLineNo;
/*
* Return the end command for a command appearing in "ignore" feature or empty
* string if this is a simple command and not a block one.
*/
std::string getIgnoreFeatureEndCommand(const std::string& theCommand) const;
/*
* Helper for getting the value of doxygen:ignore feature or its argument.
*/
String* getIgnoreFeature(const std::string& theCommand, const char* argument = NULL) const;
/*
* Whether to print lots of debug info during parsing
*/
@ -334,6 +346,14 @@ private:
const TokenList &tokList,
DoxygenEntityList &doxyList);
/*
* Simply ignore the given command, possibly with the word following it or
* until the matching end command.
*/
int ignoreCommand(const std::string& theCommand,
const TokenList &tokList,
DoxygenEntityList &doxyList);
/*
* The actual "meat" of the doxygen parser. Calls the correct addCommand...()
* function.