Question

Lorsque je tape le déclencheur de la fonctionnalité de commentaire automatique dans Visual Studio (en tapant "" "" ou "///"), la plupart des détails de commentaire XML sont ceux que je préfère. Cependant, j’ajoute généralement la balise history à la documentation pour pouvoir suivre les modifications apportées à la méthode au fil du temps.

Existe-t-il un moyen de personnaliser la fonction de commentaire automatique de manière à ajouter la balise d'historique et éventuellement un nom générique Nom - Date - Modifier le texte de substitution?

Était-ce utile?

La solution

Je vous conseillerais d'utiliser GhostDoc . Il génère des commentaires très intelligents en utilisant /// en fonction de vos noms de méthodes et de vos paramètres. En outre, il est entièrement personnalisable.

Autres conseils

Je pense que vous pourriez utiliser un outil comme l'a dit dgarcia, mais essayez de choisir celui qui rend le contrôle de version inséré, Personnellement, je ne suis pas un grand fan de la conservation de "l'historique". ou trace du projet en utilisant des commentaires dans le code.

Si vous aimez cela, vous pouvez créer votre propre version personnalisée de l'extrait de code, cela est plus facile si vous utilisez un outil tel que Snippy

Copier ce fichier à votre

Mes documents \ Visual Studio 2005 \ Extraits de code [Langue] \ Mes extraits de code \

Veillez simplement à modifier le fichier si vous voulez l’utiliser en VB.NET

J'espère que cette aide

Juste pour faire suite au commentaire à Olivier. Voici une copie de la macro maintenant, recherchez la section "Historique" pour voir où j'ai inséré le code.

    ''// InsertDocComments goes through the current document using the VS Code Model
    ''// to add documentation style comments to each function.
    ''
    Sub InsertDocComments()
        Dim projectItem As ProjectItem
        Dim fileCodeModel As FileCodeModel
        Dim codeElement As CodeElement
        Dim codeElementType As CodeType
        Dim editPoint As EditPoint
        Dim commentStart As String

        projectItem = DTE.ActiveDocument.ProjectItem
        fileCodeModel = projectItem.FileCodeModel
        codeElement = fileCodeModel.CodeElements.Item(1)

        ''// For the sample, don't bother recursively descending all code like
        ''// the OutlineCode sample does. Just get a first CodeType in the
        ''// file.
        If (TypeOf codeElement Is CodeNamespace) Then
            codeElement = codeElement.members.item(1)
        End If
        If (TypeOf codeElement Is CodeType) Then
            codeElementType = CType(codeElement, CodeType)
        Else
            Throw New Exception("Didn't find a type definition as first thing in file or find a namespace as the first thing with a type inside the namespace.")
        End If

        editPoint = codeElementType.GetStartPoint(vsCMPart.vsCMPartHeader).CreateEditPoint()

        ''// Make doc comment start.
        commentStart = LineOrientedCommentStart()
        If (commentStart.Length = 2) Then
            commentStart = commentStart & commentStart.Chars(1) & " "
        ElseIf (commentStart.Length = 1) Then
            commentStart = commentStart & commentStart.Chars(0) & commentStart.Chars(0) & " "
        End If

        ''// Make this atomically undo'able.  Use Try...Finally to ensure Undo
        ''// Context is close.
        Try
            DTE.UndoContext.Open("Insert Doc Comments")

            ''// Iterate over code elements emitting doc comments for functions.
            For Each codeElement In codeElementType.Members
                If (codeElement.Kind = vsCMElement.vsCMElementFunction) Then
                    ''// Get Params.
                    Dim parameters As CodeElements
                    Dim codeFunction As CodeFunction
                    Dim codeElement2 As CodeElement
                    Dim codeParameter As CodeParameter

                    codeFunction = codeElement
                    editPoint.MoveToPoint(codeFunction.GetStartPoint(vsCMPart.vsCMPartHeader))
                    ''//editPoint.LineUp()
                    parameters = codeFunction.Parameters

                    ''// Do comment.
                    editPoint.Insert(Microsoft.VisualBasic.Constants.vbCrLf)
                    editPoint.LineUp()
                    editPoint.Insert(Microsoft.VisualBasic.Constants.vbTab & commentStart & "<summary>")
                    editPoint.Insert(Microsoft.VisualBasic.Constants.vbCrLf)
                    editPoint.Insert(Microsoft.VisualBasic.Constants.vbTab & commentStart & "Summary of " & codeElement.Name & ".")
                    editPoint.Insert(Microsoft.VisualBasic.Constants.vbCrLf)
                    editPoint.Insert(Microsoft.VisualBasic.Constants.vbTab & commentStart & "</summary>")
                    editPoint.Insert(Microsoft.VisualBasic.Constants.vbCrLf)
                    editPoint.Insert(Microsoft.VisualBasic.Constants.vbTab & commentStart)

                    For Each codeElement2 In parameters
                        codeParameter = codeElement2
                        editPoint.Insert("<param name=" & codeParameter.Name & "></param>")
                        editPoint.Insert(Microsoft.VisualBasic.Constants.vbCrLf)
                        editPoint.Insert(Microsoft.VisualBasic.Constants.vbTab & commentStart)
                    Next ''//param

                    ''// Do history tag.
                    editPoint.Insert(Microsoft.VisualBasic.Constants.vbCrLf)
                    editPoint.LineUp()
                    editPoint.Insert(Microsoft.VisualBasic.Constants.vbTab & commentStart & "<history>")
                    editPoint.Insert(Microsoft.VisualBasic.Constants.vbCrLf)
                    editPoint.Insert(Microsoft.VisualBasic.Constants.vbTab & commentStart & "Name   MM/DD/YYYY   [Created]")
                    editPoint.Insert(Microsoft.VisualBasic.Constants.vbCrLf)
                    editPoint.Insert(Microsoft.VisualBasic.Constants.vbTab & commentStart & "</history>")
                    editPoint.Insert(Microsoft.VisualBasic.Constants.vbCrLf)
                    editPoint.Insert(Microsoft.VisualBasic.Constants.vbTab & commentStart)

                End If ''//we have a function
            Next ''//code elt member

        Finally
            DTE.UndoContext.Close()
        End Try
    End Sub

Pour une raison quelconque, après l'enregistrement, la reconstruction et le redémarrage de Visual Studio, je ne reçois pas la balise d'historique. Quelqu'un peut-il voir quelque chose ici me manque?

vb utilise un fichier XML pour charger les valeurs par défaut. C'est VBXMLDoc.xml et cela dépend de la version que vous utilisez, ainsi que de l'emplacement du fichier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top