2009-01-08 13 views
9

Po wpisaniu wyzwalacza funkcji automatycznego komentarza w Visual Studio (przez wpisanie "" "" lub "///") większość szczegółów komentarza XML pokazuje, że podoba mi się. Zazwyczaj jednak dodajemy znacznik historii do dokumentacji, dzięki czemu mogę śledzić i wprowadzać zmiany, które są wprowadzane do tej metody w czasie.Jak dostosować tekst do automatycznego komentowania w Visual Studio?

Czy mogę w dowolny sposób dostosować funkcję automatycznego komentowania, aby dodać znacznik historii i potencjalnie jakiś ogólny tekst zastępczy Nazwa - Data - Zmiana?

Odpowiedz

11

Proponuję użyć GhostDoc. Generuje bardzo inteligentne komentarze za pomocą /// w oparciu o nazwy i parametry metody. Ponadto jest w pełni konfigurowalny.

+0

Doskonałe źródło! Niestety, jesteśmy tu sklepem VB, a GhostDoc jest "eksperymentalny" dla kodu VB.NET. Zachowuję to zakładki do moich własnych projektów C# w domu. Dzięki! –

+0

Doh> _ DavGarcia

+0

Dzięki aktualizacji GhostDoc 2.5 w pełni obsługuje komentowanie w VB.NET. Po prostu poszedłem do Opcji GhostDoc i dodałem mój znacznik historii (ze zmienną, aby wprowadzić aktualną datę) i wszystko gotowe. –

3

Myślę, że można użyć narzędzia, jak powiedział dgarcia, ale spróbuj wybrać taki, który sprawia, że ​​kontrola wersji jest insetad, osobiście nie jestem wielkim fanem utrzymywania "historii" lub ścieżki projektu za pomocą komentarzy w kod.

Jeśli podoba Ci się ten sposób można utworzyć własny wersję fragmencie, to jest łatwiejsze, jeśli użyć narzędzia takie jak Snippy

Copy this file do

My Documents \ Visual Studio 2005 \ fragmenty kodu [Język] \ Moje fragmenty kodu \

Tylko bądź ostrożny, aby zmienić plik, jeśli masz zamiar używać go w VB.NET

nadzieję, że ta pomoc

1

Tak jak kontynuacja komentarza do Oliviera. Oto teraz kopia makra, poszukaj sekcji "Do historii", aby zobaczyć, gdzie wstawiłem kod.

''// 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 

Z jakiegoś powodu, po obronie, odbudować, a ponowne uruchomienie programu Visual Studio, ja nie dostaję tag historii. Czy ktoś może tu coś zobaczyć?

+0

Nie sądzę, że to makro jest tym, czego używa IDE Visual Studio podczas wpisywania "" przed Sub. Możesz uruchomić zmodyfikowane makro, klikając je prawym przyciskiem myszy w Eksploratorze makr i wybierając Uruchom. Wstawia komentarze przed każdą procedurą, niezależnie od tego, czy zostały już skomentowane. –

+0

Hmm, brzmi jak coś do wypróbowania. Masz pojęcie, jak działa aktualna nazwa makra? –

1

vb używa pliku xml do ładowania defultów. Jest to plik VBXMLDoc.xml i zależy od wersji, z której korzystasz, od lokalizacji pliku.

Powiązane problemy