Reputation: 2452
There are several doxygen commands whose purpose is to create links in the documentation (@link, @ref).
I am currently using the @ref command to create a link to a custom file, written in a language not supported by doxygen (xml).
I would like to alter this link so that it points to a precise line in the file.
Is there a doxygen command that allows to do that ?
Upvotes: 9
Views: 9203
Reputation: 569
One reliable way to do that is -- at the target line of the file you want to link to, in a Doxygen comment include an
/** \anchor unique_anchor_string */
in a Doxygen comment. (You have to get Doxygen to process the above file.) Then you can use
/** \ref unique_anchor_string "Link Text" */
in another file to link to the anchor defined in the first file. Note that that only works if the target file is part of the list of files that Doxygen "consumes" when it runs (It will need the \file command if it is not already there.) The unique_anchor_string
must be unique among the list of anchors in the files so consumed. This list includes anchors automatically created by Doxygen (you get to control the names) for things like pages, sections, subsections, etc..
Upvotes: 0
Reputation: 46366
I'm not sure that \ref
or \link
can do this. However, if they could, one problem of adopting this approach is that the links will become invalid if you change the contents of the file you are linking to without changing the link. This is one of the problems of separating source code and documentation.
Rather than linking to a particular line in another file why don't you include the particular part of the file you are interested in in the documentation? You could either:
\include
(there is also \includelineno
) and just reference relevant parts of it in the text (e.g. "function xxx in the code below"), or\snippet
.Edit: Alternatively, you could use the \dontinclude
command which, together with the \line
, \skip
, \skipline
, and \until
commands allows you to include specific lines/blocks of a particular file. See the example in the \dontinclude
documentation.
Upvotes: 6