Como posso personalizar o texto comentando auto no Visual Studio?
-
06-07-2019 - |
Pergunta
Quando eu digito o gatilho da auto recurso de comentário no Visual Studio (digitando " '' '" ou '///'), a maior parte do XML comentando detalhes mostram-se de que eu gosto. No entanto, eu normalmente adicionar a tag história a documentação para que eu possa rastrear e alterações que são feitas ao método ao longo do tempo.
Existe alguma maneira eu posso personalizar a auto recurso comentando para que ele irá adicionar a tag história, e, potencialmente, um nome genérico - Data -? Alterar texto do espaço reservado
Solução
Eu sugiro usar GhostDoc . Ele gera comentários muito inteligentes usando /// com base em seus nomes de métodos e parâmetros. Além disso, é totalmente personalizável.
Outras dicas
Eu acho que você pode usar uma ferramenta como dgarcia disse, mas tente escolher um que faz com que o insetad controle de versão, Pessoalmente, eu não sou um grande fã de manter a "história" ou a faixa do projeto usando comentários no código .
Se você gosta de que maneira você pode criar sua própria versão personalizada do trecho, isso é mais fácil se você usar uma ferramenta como Snippy
copiar este arquivo à sua
Meus Documentos \ Visual Studio 2005 \ Code Snippets [Idioma] \ Meus Trechos de código \
Apenas tenha cuidado para alterar o arquivo se você vai usá-lo em VB.NET
Espero que isso ajuda
Assim como followup ao comentário de Olivier. Aqui está uma cópia da macro agora, olhar para o 'seção' Do Histórico para ver onde eu inserido código.
''// 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
Por alguma razão, depois de um salvamento, reconstruir, e um reinício do Visual Studio, eu não estou recebendo a tag história. Alguém pode ver algo aqui que eu estou ausente?
vb usa um arquivo xml para carregar os defults. É VBXMLDoc.xml e depende de qual versão você está executando como para o local do arquivo.