added handling for tag ref in Java

This commit is contained in:
Marko Klopcic 2013-03-16 10:53:48 +01:00
commit 4e2c1e3ac3
5 changed files with 71 additions and 9 deletions

View file

@ -269,12 +269,16 @@ int func07(int a)
*
* \protectedsection
*
* \anchor someAnchor
* Text after anchor.
* \protocol someProtocol header.h "Header name"
*
* \public
*
* \publicsection
*
* \ref someAnchor Anchor description
*
* \ref someAnchor
*
* \related toSomething

View file

@ -111,11 +111,15 @@ public class doxygen_translate_all_tags_runme {
" @param a the first param\n");
wantedComments.put("doxygen_translate_all_tags.doxygen_translate_all_tags.func08(int)",
" Remarks: Some remark text \n" +
" Remarks: Another remarks section \n" +
" @return Whatever \n" +
" @return it \n" +
" @return may return \n");
"<a id=\"#someAnchor\"></a>\n" +
"Text after anchor.\n" +
"<i>Anchor description</i>\n" +
"<i>someAnchor</i>\n" +
" Remarks: Some remark text \n" +
" Remarks: Another remarks section \n" +
" @return Whatever \n" +
" @return it \n" +
" @return may return \n");
wantedComments.put("doxygen_translate_all_tags.doxygen_translate_all_tags.func09(int)",
" This will only appear in RTF \n" +

View file

@ -692,10 +692,12 @@ int DoxygenParser::addCommandUnique(const std::string &theCommand,
"No key followed " + theCommand + " command. Not added");
return 0;
}
std::string text = getNextWord();
aNewList.push_back(DoxygenEntity("plainstd::string", name));
if (!text.empty())
aNewList.push_back(DoxygenEntity("plainstd::string", text));
DoxygenEntityList aNewList;
TokenListCIt endOfLine = getOneLine(tokList);
if (endOfLine != m_tokenListIt) {
aNewList = parse(endOfLine, tokList);
}
aNewList.push_front(DoxygenEntity("plainstd::string", name));
doxyList.push_back(DoxygenEntity(theCommand, aNewList));
}
// \subpage <name> ["(text)"]

View file

@ -88,6 +88,7 @@ void JavaDocConverter::fillStaticTables()
tagHandlers["::"] = make_pair(&JavaDocConverter::handleTagChar, "");
// these commands are stripped out
tagHandlers["attention"] = make_pair(&JavaDocConverter::handleParagraph, "");
tagHandlers["anchor"] = make_pair(&JavaDocConverter::handleTagAnchor, "");
tagHandlers["brief"] = make_pair(&JavaDocConverter::handleParagraph, "");
tagHandlers["bug"] = make_pair(&JavaDocConverter::handleParagraph, "");
tagHandlers["date"] = make_pair(&JavaDocConverter::handleParagraph, "");
@ -112,6 +113,7 @@ void JavaDocConverter::fillStaticTables()
tagHandlers["package"] = make_pair(&JavaDocConverter::handleTagSame, "");
tagHandlers["param"] = make_pair(&JavaDocConverter::handleTagParam, "");
tagHandlers["tparam"] = make_pair(&JavaDocConverter::handleTagParam, "");
tagHandlers["ref"] = make_pair(&JavaDocConverter::handleTagRef, "");
tagHandlers["result"] = make_pair(&JavaDocConverter::handleTagSame, "return");
tagHandlers["return"] = make_pair(&JavaDocConverter::handleTagSame, "");
tagHandlers["returns"] = make_pair(&JavaDocConverter::handleTagSame,
@ -402,6 +404,15 @@ void JavaDocConverter::translateEntity(DoxygenEntity &tag,
}
}
void JavaDocConverter::handleTagAnchor(DoxygenEntity& tag,
std::string& translatedComment,
std::string &)
{
translatedComment += "<a id=\"#" + translateSubtree(tag) + "\"></a>";
}
void JavaDocConverter::handleTagHtml(DoxygenEntity& tag,
std::string& translatedComment,
std::string &arg)
@ -573,6 +584,7 @@ void JavaDocConverter::handleTagPar(DoxygenEntity& tag,
translatedComment += "</p>";
}
void JavaDocConverter::handleTagParam(DoxygenEntity& tag,
std::string& translatedComment,
std::string&)
@ -590,6 +602,35 @@ void JavaDocConverter::handleTagParam(DoxygenEntity& tag,
handleParagraph(tag, translatedComment, dummy);
}
void JavaDocConverter::handleTagRef(DoxygenEntity& tag,
std::string& translatedComment,
std::string&)
{
std::string dummy;
// translatedComment += "1111";
if (!tag.entityList.size())
return;
// translatedComment += "2222";
//if (!paramExists(tag.entityList.begin()->data))
// return;
// we don't translate to link, since \page is not supported in Java, but we
// make text in italic, so that reader at least knows what to look at.
// translatedComment += "<i>";
// tag.entityList.pop_front();
// translatedComment += translateSubtree(tag);
// translatedComment += "</i>";
string anchor = tag.entityList.begin()->data;
tag.entityList.pop_front();
string anchorText = translateSubtree(tag);
if (anchorText.find_first_not_of(" \t") == string::npos) {
anchorText = anchor;
}
translatedComment += "<a href=\"#" + anchor + "\">" + anchorText + "</a>";
}
string JavaDocConverter::convertLink(string linkObject)
{
if (GetFlag(currentNode, "feature:doxygen:nolinktranslate"))

View file

@ -61,6 +61,11 @@ protected:
*/
void handleTagVerbatim(DoxygenEntity& tag, std::string& translatedComment, std::string &arg);
/** Creates anchor link. */
void handleTagAnchor(DoxygenEntity& tag,
std::string& translatedComment,
std::string &arg);
/*
* Wrap the command data with the html tag
* arg - html tag, with no braces
@ -125,6 +130,12 @@ protected:
* Insert \@param command, if it is really a function param
*/
void handleTagParam(DoxygenEntity &tag, std::string &translatedComment, std::string &arg);
/*
* Writes text of \ref tag in italic. Does not produce link, because javadoc
* does not support page and section tags.
*/
void handleTagRef(DoxygenEntity& tag, std::string& translatedComment,
std::string&);
/*
* Insert {@link...} command, and handle all the <link-object>s correctly
* (like converting types of params, etc)