dotnet/roslyn

Code Style: Code fixes for xml doc comments

Open

#7 070 ouverte le 25 nov. 2015

Voir sur GitHub
 (28 commentaires) (3 réactions) (0 assignés)C# (4 257 forks)batch import
Area-IDEInternalAskhelp wanted

Métriques du dépôt

Stars
 (20 414 stars)
Métriques de merge PR
 (Merge moyen 6j 17h) (256 PRs mergées en 30 j)

Description

We already have the "Insert Comment" command (and /// experience), but we should hook it up as a Code Fix to the compiler warnings about missing XML doc comments.

CSharp

Below are the diagnostics that we could potentially create code fixes for:

  • CS1571: XML comment has a duplicate param tag for '{0}'
  • CS1572: XML comment has a param tag for '{0}', but there is no parameter by that name
  • CS1573: Parameter '{0}' has no matching param tag in XML comment for '{1}' (but other parameters do)
  • CS1591: Missing XML comment for publicly visible type or member '{0}'

Here's code that will exhibit all four diagnostics when the /doc argument is passed to the compiler.

public class C
{
    /// <param name="x"></param>
    /// <param name="x"></param>
    /// <param name="z"></param>
    public void Foo(int x, int y)
    {

    }
}

image

Visual Basic

Below are the diagnostics that we could potentially create code fixes for:

  • BC42301: Only one XML comment block is allowed per language element.
  • BC42303: XML comment cannat appear with a method or a property. XML comment will be ignored.
  • BC42305: XML comment tag '{0}' appears with identical attributes more than once in the same XML comment block.
  • BC42306: XML comment tag '{0}' is not permitted on a 'sub' language element.
  • BC42307: XML comment parameter '{0}' does not match a parameter on the corresponding 'sub' statement.
  • BC42308: XML comment parameter must have 'name' attribute.
  • BC42312: XML documentation comments must precede member or type declarations.
  • BC42313: XML comment tag 'returns' is not permitted on a 'WriteOnly' Property.
  • BC42314: XML comment cannot be applied more than once on a partial class. XML comments for this class will be ignored.
  • BC42315: XML comment tag 'returns' is not permitted on a 'declare sub' language element.
  • BC42317: XML comment type parameter '{0}' does not match a type parameter on the corresponding '{1}' statement.
  • BC42318: XML comment type parameter must have a 'name' attribute.
  • BC42319: XML comment exception must have a 'cref' attribute.

Here's code that will surface each of the above diagnostics.

''' <summary>
''' 
''' </summary>
Partial Class C

End Class

''' <summary>
''' 
''' </summary>
Partial Class C

    '''

    ''' <summary>
    ''' 
    ''' </summary>
    ''' <param name="i"></param>
    ''' <param name="i"></param>
    ''' <param></param>
    ''' <param name="j"></param>
    ''' <typeparam name="T"></typeparam>
    ''' <typeparam></typeparam>
    ''' <returns></returns>
    ''' <exception></exception>
    Public Sub M(i As Integer)

        ''' <summary></summary>

    End Sub

    ''' <returns></returns>
    WriteOnly Property P As Integer
        Set(value As Integer)
        End Set
    End Property

    ''' <returns></returns>
    Declare Sub Foo Lib "User" ()

End Class

''' <summary>
''' </summary>

image

Guide contributeur