doxygen icon indicating copy to clipboard operation
doxygen copied to clipboard

C#'s seealso tags are not supported (Origin: bugzilla #423779)

Open doxygen opened this issue 7 years ago • 11 comments

status RESOLVED severity normal in component general for --- Reported in version 1.5.3-SVN on platform Other Assigned to: Dimitri van Heesch

On 2007-03-28 15:22:23 +0000, Jürgen Bayer wrote:

C#'s seealso are missing in the created documentation

On 2007-06-04 19:55:34 +0000, Dimitri van Heesch wrote:

Can you provide an example, so I can verify if this is fixed along with the other C# see related fixes?

On 2009-01-19 18:43:19 +0000, Christoph Wurm wrote:

Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for. Thanks!

doxygen avatar Jul 01 '18 22:07 doxygen

I'm providing some examples. Currently, with 1.9.3, the links to the members are not created properly. I've whipped up a sample that I've could think of as a typical use-case of the seealso tag. The following sample can go in one file.

using Other.Name.Space

namespace My.Name.Space
{
    public class MyClass
    {
        /// <summary>Place holder</summary>
        /// <remarks>Place holder documentation to make it possible to make the link</remarks>
        public EventHandler MyEvent;

        /// <summary>This is the member providing a demo for the <c>seealso</c> tag.</summary>
        /// <seealso cref="MyEvent"/>
        /// <seealso cref="MyEnum"/>
        /// <seealso cref="MyEnum.MyValue"/>
        /// <seealso cref="TheirClass.SomeMethod()"/>
        public void Method() { }
    }

    /// <summary>Place holder</summary>
    /// <remarks>Place holder documentation to make it possible to make the link</remarks>
    public enum MyEnum
    {
        /// <summary>Place holder</summary>
        MyValue,
    }
}

namespace Other.Name.Space
{
    /// <summary>Place holder</summary>
    /// <remarks>Place holder documentation to make it possible to make the link</remarks>
    public class TheirClass
    {
        /// <summary>Place holder</summary>
        /// <remarks>Place holder documentation to make it possible to make the link</remarks>
        public void SomeMethod() { }
    }
}

jadaml avatar Jul 26 '22 08:07 jadaml

I've just looked up how the XML tag is specified, and it apparently supports specifying custom link text in the content of the tag, while also supporting links to other URL, like so:

/// <seealso href="link">Link Text</seealso>

I was not aware of that, up until now. I do not know if cref+"Link Text" works, but would not be surprised if it does.

jadaml avatar Jul 26 '22 09:07 jadaml

The seealso tag in C# has 2 definitions:

/// <seealso cref="member"/>

and

/// <seealso href="link">Link Text</seealso>

When looking at the code I see that for the seealso only the cref is supported and not the href. In the original standard (and still the only official standard as far as I know, though at some places the mentioned page is also regarded as standard) only the cref was mentioned and hence the href is not supported in the current doxygen version.

albert-github avatar Jul 26 '22 10:07 albert-github

I've later read that Doxygen follows the ECMA-334 standard, but did not wanted to spam the comments with apologies, rather I wanted to read more on the topic before coming back; sorry about that.

The 6th edition does mention the href attribute (was not aware of it before) but from the provided example I could understand why some of these tags not fully implemented.

Regardless, I believe it is a good idea to read the MS Docs in conjunction with ECMA-334 so it becomes clearer what they want to achieve, and a documentation on a class also shows what output they intended together with the reference source could help?

jadaml avatar Jul 26 '22 16:07 jadaml

Looks like after numerous years a new version of the C# Language Definition (Standard ECMA-334 6th Edition i.e. https://www.ecma-international.org/wp-content/uploads/ECMA-334_6th_edition_june_2022.pdf) has been released.

albert-github avatar Dec 23 '22 11:12 albert-github