Merge branch 'doxy/commands'

* doxy/commands:
  Update documentation for doxygen tags
  Fix doxygen translation of \p command for python
  Fix doxygen handling of \em tag for python
  Minor formatting updates to doxygen docs
  Reformat tag lists in doxygen documentation
  Add doxygen_code_blocks_runme.java
  Special handling for python doctest code blocks
  Add new doxygen test doxygen_code_blocks
  Handle doxygen code command with language option
  Improve doxygen parser handling of \code content
  Flag optional arguments in doxygen pydoc output
  Add parameter direction to doxygen pydoc output
  Support doxygen \param[] commands
This commit is contained in:
William S Fulton 2020-01-14 18:36:50 +00:00
commit 00b47d4d1d
19 changed files with 699 additions and 437 deletions

View file

@ -0,0 +1,83 @@
import doxygen_code_blocks.*;
import com.sun.javadoc.*;
import java.util.HashMap;
public class doxygen_code_blocks_runme {
static {
try {
System.loadLibrary("doxygen_code_blocks");
} catch (UnsatisfiedLinkError e) {
System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
System.exit(1);
}
}
public static void main(String argv[])
{
/*
Here we are using internal javadoc tool, it accepts the name of the class as paramterer,
and calls the start() method of that class with parsed information.
*/
CommentParser parser = new CommentParser();
com.sun.tools.javadoc.Main.execute("doxygen_code_blocks runtime test",
"CommentParser",
new String[]{"-quiet", "doxygen_code_blocks"});
HashMap<String, String> wantedComments = new HashMap<String, String>();
wantedComments.put("doxygen_code_blocks.doxygen_code_blocks.function()",
" Test for code blocks\n \n" +
" \n \n" +
" {@code \n" +
" simple code block \n" +
" }\n \n" +
" \n \n" +
" More advanced usage with C++ characters:\n \n" +
" {@code \n" +
" std::vector<int> first; // empty vector of ints \n" +
" std::vector<int> second (4,100); // four ints with value 100 \n" +
" std::vector<int> third (second.begin(),second.end()); // iterating through second \n" +
" std::vector<int> fourth (third); // a copy of third \n" +
" // the iterator constructor can also be used to construct from arrays: \n" +
" int myints[] = {16,2,77,29}; \n" +
" std::vector<int> fifth (myints, myints + sizeof(myints) / sizeof(int) ); \n" +
" \n" +
" std::cout << \"The contents of fifth are:\"; \n" +
" for (std::vector<int>::iterator it = fifth.begin(); it != fifth.end(); ++it) \n" +
" std::cout << \' \' << *it; \n" +
" std::cout << \'\\n\'; \n" +
" }\n \n" +
" \n \n" +
" A code block for C:\n \n" +
" {@code \n" +
" printf(\"hello world\"); \n" +
" }\n \n" +
" \n \n" +
" A code block for Java:\n \n" +
" {@code \n" +
" public class HelloWorld { \n" +
" public static void main(String[] args) { \n" +
" // Prints \"Hello, World\" to the terminal window. \n" +
" System.out.println(\"Hello, World\"); \n" +
" } \n" +
" } \n" +
" }\n \n" +
" \n \n" +
" A code block for python:\n \n" +
" {@code \n" +
" print(\'hello world\') \n" +
" }\n \n" +
" \n \n" +
" A python doctest example:\n \n" +
" {@code \n" +
" >>> 1 + 1 \n" +
" 2 \n" +
" } \n" +
" \n" +
"");
// and ask the parser to check comments for us
System.exit(parser.check(wantedComments));
}
}

View file

@ -96,7 +96,7 @@ public class doxygen_translate_all_tags_runme {
" {@link someMember Some description follows }\n" +
" This will only appear in man\n");
wantedComments.put("doxygen_translate_all_tags.doxygen_translate_all_tags.func07(int)",
wantedComments.put("doxygen_translate_all_tags.doxygen_translate_all_tags.func07(int, int, int, int)",
" Comment for <b>func07()</b>.\n" +
" Note: Here \n" +
" is the note! \n" +
@ -107,7 +107,10 @@ public class doxygen_translate_all_tags_runme {
" The paragraph text. \n" +
" Maybe even multiline \n" +
" </p>\n" +
" @param a the first param\n");
" @param a the first param\n" +
" @param b parameter with intent(in)\n" +
" @param c parameter with intent(out)\n" +
" @param d parameter with intent(in,out)\n");
wantedComments.put("doxygen_translate_all_tags.doxygen_translate_all_tags.func08(int)",
"<a id=\"someAnchor\"></a>\n" +